Corey Donohoe
|
4bf49a5163
|
allow picking your appserver type via a configuration option, not discovering framework specific files in the current working directory. also start rack apps with the application port parameter
|
2009-02-11 11:17:43 -07:00 |
Corey Donohoe
|
8fbcbef180
|
better handling for starting/stopping the server
|
2009-02-11 10:09:23 -07:00 |
Corey Donohoe
|
82eabc31ee
|
small fixup for sinatra + selenium, use rackup instead of mongrel_rails if config.ru exists
|
2009-02-11 09:25:39 -07:00 |
Peter Jaros
|
24eab77ecd
|
Accept do/end blocks in matchers. [#157 state:resolved]
|
2009-02-09 00:31:17 -05:00 |
Bryan Helmkamp
|
7fe667da73
|
Removing HashWithIndifferentAccess
Doesn't seem to be required, according to our integraton specs
|
2009-02-09 00:13:41 -05:00 |
Bryan Helmkamp
|
7fc6a79bee
|
Merge commit 'teejayvanslyke/master' into lh_159
|
2009-02-08 21:03:40 -05:00 |
Bryan Helmkamp
|
4769a5f90b
|
Detect infinite redirects and raise a Webrat::InfiniteRedirectError (Daniel Lucraft)
|
2009-02-08 20:54:00 -05:00 |
Bryan Helmkamp
|
e5ae16367c
|
Prep for 0.4.1 release
|
2009-01-31 17:58:17 -05:00 |
Lee Bankewitz
|
56e6d15811
|
add uncheck to selenium_session
|
2009-01-30 15:15:22 -05:00 |
T.J. VanSlyke
|
ea8e1910d1
|
Added single-quotes around --chdir argument to mongrel_rails call, as
webrat bombs with a file not found error if RAILS_ROOT contains a space.
|
2009-01-30 11:37:43 -08:00 |
Noah Davis
|
49e86d103f
|
comment out have_tag from selenium matcher which overrides rails' have_tag
partially reverts 483559f279
|
2009-01-28 14:34:24 -05:00 |
Bryan Helmkamp
|
7f9df54838
|
Merge commit 'lenalena/master' into lh_139
|
2009-01-27 19:13:53 -05:00 |
Bryan Helmkamp
|
33509ef575
|
Remove stray require of ruby-debug
|
2009-01-25 19:50:58 -05:00 |
Mike Gaffney
|
8d9d907e73
|
have_tag is built into rails and rspec and we don't want to overload those.
Please use assert_contain or assert_select
Revert "Make have_tag work in rails as well as Merb"
This reverts commit 6e7609e01c .
|
2009-01-24 13:01:41 -06:00 |
Noah Davis
|
f956bea7dd
|
Adding rescue from Webrat::TimeoutError in selenium matchers which allows NegativeMatchers to behave correctly
|
2009-01-24 01:44:05 -05:00 |
Mike Gaffney
|
f4f0e3b6a7
|
Merge branch 'master' of git@github.com:brynary/webrat
|
2009-01-23 22:35:46 -06:00 |
Amos King
|
483559f279
|
Makes have_tag work outside of Merb.
|
2009-01-23 21:32:54 -06:00 |
Amos King
|
6e7609e01c
|
Make have_tag work in rails as well as Merb
|
2009-01-23 21:13:13 -06:00 |
Amos King
|
118b522662
|
moved have content
|
2009-01-23 21:03:19 -06:00 |
Amos King
|
3a5d34e759
|
Moved have selector
|
2009-01-23 21:01:21 -06:00 |
Amos King
|
5a91f10a99
|
Began moving selenium matchers to their own files to be consistent with core matchers and for maintainability.
|
2009-01-23 20:59:30 -06:00 |
mike.gaffney
|
cbddebd01c
|
Merge branch 'lh_82' of git@github.com:gaffo/webrat
|
2009-01-23 16:23:12 -06:00 |
Noah Davis
|
996eedb0d2
|
Switch to using selenium.click instead of .check when checking a checkbox
|
2009-01-23 17:08:04 -05:00 |
Amos King
|
8c0facc5af
|
cleanup and tests closes LH #82
|
2009-01-23 16:05:33 -06:00 |
Amos King
|
da59584cdf
|
add the ability for selenium mode to create pids dirs
|
2009-01-23 15:34:51 -06:00 |
Amos King
|
2c9b546a83
|
Merge branch 'lh_120_tests_with_selenium' of git@github.com:gaffo/webrat into lh_82
Conflicts:
spec/integration/rails/test/integration/webrat_test.rb
|
2009-01-23 15:11:16 -06:00 |
Zach Dennis
|
0272e81847
|
Fixed issue where webrat was only using relative paths when making requests for Rails apps. This borked Rails apps that use subdomains [John Hwang/Zach Dennis]
|
2009-01-20 21:48:48 -05:00 |
Josh Knowles
|
7a59353c78
|
Unfortunately this commit breaks any Rails specs which pass anchor tags. I like the concept, but I'd prefer to work on this post 0.4.1 once I have a bit more time to work out the failures in our referance app.
This reverts commit 4fc2b7eb7e .
|
2009-01-20 20:08:57 -05:00 |
Adam Greene
|
4fc2b7eb7e
|
removing the normalization of url's for the rails session. stipping them of host, port, and anchors is not really needed, especially since josh's redirect change to stop when going to a different host. See comments here: http://webrat.lighthouseapp.com/projects/10503-webrat/tickets/132
|
2009-01-20 19:30:28 -05:00 |
Adam Greene
|
4e3cf59920
|
adding a helper method to make it easier to see where the user was redirected_to
|
2009-01-20 19:30:22 -05:00 |
Adam Greene
|
ce36e5890f
|
lets follow redirects that are on the same domain but a different subdomain...
|
2009-01-20 19:30:16 -05:00 |
Bryan Helmkamp
|
e53c64f763
|
Setup deprecated writers for the selenium_environment= and selenium_port= config methods
|
2009-01-20 00:32:19 -05:00 |
Bryan Helmkamp
|
d60f524df1
|
Merge commit '1bfe7634f8bb93472f4f53715d43916a8ff1569f'
|
2009-01-20 00:26:36 -05:00 |
Bryan Helmkamp
|
0204c2766d
|
Change query params parser to work with Edge Rails
|
2009-01-20 00:25:52 -05:00 |
ichverstehe
|
1bfe7634f8
|
sinatra 0.9 support
|
2009-01-19 23:51:01 +01:00 |
Kyle Hargraves
|
6529a016d1
|
Labels should only search for fields within the current scope
|
2009-01-19 13:45:36 -06:00 |
Bryan Helmkamp
|
14d114ce1d
|
Ensure the previous pages params aren't passed through redirect
|
2009-01-19 13:56:22 -05:00 |
Bryan Helmkamp
|
f7b4e673cd
|
reloads is deprecated, not reload
|
2009-01-18 17:19:46 -05:00 |
Bryan Helmkamp
|
bbf6cf06c2
|
Bump version number to 0.4.0
|
2009-01-18 17:08:12 -05:00 |
Kyle Hargraves
|
2b38b78724
|
field_labeled() should disregard labels without matching fields
|
2009-01-18 15:57:08 -06:00 |
Bryan Helmkamp
|
cbd323ac37
|
More info in the Unknown mode error message
|
2009-01-18 16:45:24 -05:00 |
Bryan Helmkamp
|
f92f9bead8
|
Parse content as HTML (unless the Content-Type is XML)
|
2009-01-18 16:34:42 -05:00 |
Bryan Helmkamp
|
4720a79d3c
|
Bumping version to 0.3.999.1 in prep for 0.4 coming later today
|
2009-01-18 16:26:32 -05:00 |
Bryan Helmkamp
|
743d787164
|
Ensure setting mode as a string works too
|
2009-01-18 16:25:35 -05:00 |
Bryan Helmkamp
|
00d0d7b438
|
Temporary shim to support Merb's require statement for Webrat
|
2009-01-18 16:20:58 -05:00 |
Bryan Helmkamp
|
fdb94f399c
|
Allow multiple configuration blocks without dropping previous configuration.
If you really want to start with a default configuration use:
Webrat.configure(Webrat::Configuration.new) do |config|
...
end
|
2009-01-18 16:15:56 -05:00 |
Bryan Helmkamp
|
0b07dfedcd
|
Add docs for field_labeled
|
2009-01-18 16:05:27 -05:00 |
Zach Dennis
|
cdf9908f9e
|
Fixed bug where Scope was creating a new DOM rather than re-using the existing DOM. [#105 state:resolved]
|
2009-01-17 16:59:12 -05:00 |
Bryan Helmkamp
|
ebd9d8ed52
|
Merge commit 'gaffo/lh_116_selenium_asserts' into lh_116
Conflicts:
History.txt
|
2009-01-17 16:39:29 -05:00 |
Bryan Helmkamp
|
55bc6b8e00
|
Merge commit 'gaffo/lh_123' into lh_123
Conflicts:
History.txt
|
2009-01-17 16:27:39 -05:00 |
Bryan Helmkamp
|
1731681e79
|
Merge commit 'cornel/lh_110'
Conflicts:
History.txt
|
2009-01-17 16:10:34 -05:00 |
George Ogata
|
9ea7d94621
|
Add documentation for set_hidden_field, click_area, and submit_form [#122 state:resolved]
|
2009-01-17 13:40:03 -05:00 |
Bryan Helmkamp
|
030412bd3f
|
Minor refactoring to extract rails_request_parser
|
2009-01-17 13:34:06 -05:00 |
Bryan Helmkamp
|
7f38666325
|
Merge commit 'marcenuc/lh_107_request_parser_2_3_fix' into lh_107
|
2009-01-17 13:30:40 -05:00 |
Bryan Helmkamp
|
3e3d8e3659
|
Raise a Webrat::NotFoundError if the scope passed to #within doesn't exist [#90 state:resolved]
|
2009-01-17 13:27:32 -05:00 |
Bryan Helmkamp
|
7a7cb3f002
|
Support passing an ActiveRecord model to #within when in Rails mode [#68 state:resolved] (Luke Melia)
|
2009-01-17 13:18:42 -05:00 |
Amos King
|
04b765976b
|
change matchers to use assert so that assertion count is incremented
|
2009-01-14 11:38:38 -06:00 |
Amos King
|
50c5d50ca7
|
make asserts count for have_xpath
|
2009-01-14 11:01:44 -06:00 |
Amos King
|
47c0b9520f
|
make asserts count for have_tag
|
2009-01-14 11:01:33 -06:00 |
Amos King
|
e864d56079
|
make asserts count for have_selector
|
2009-01-14 11:01:20 -06:00 |
Amos King
|
ea930106b6
|
remove commented code and make assert_contain use a true assertion
|
2009-01-14 10:58:48 -06:00 |
Amos King
|
9745673f1c
|
Revert "remove commented code and make assert_contain use a true assertion"
This reverts commit 114db434182bbf9ad5b2737d181048bab363f055.
|
2009-01-13 22:30:52 -06:00 |
Amos King
|
cdd390a19d
|
remove commented code and make assert_contain use a true assertion
|
2009-01-13 22:30:52 -06:00 |
Mike Gaffney
|
c1b49f36ea
|
working on getting standardized for the specs
|
2009-01-12 23:31:14 -06:00 |
Amos King
|
714d8679ed
|
change attr_accessor :mode to attr_reader since there is a writer created after
|
2009-01-12 15:41:56 -06:00 |
cornel.borcean
|
c79d2216b2
|
added selenium_browser_key to allow running on more than firefox, and completed the ability to configure to work with selenium grid."
"
|
2009-01-12 15:15:11 -06:00 |
cornel.borcean
|
e49c341fc0
|
implemented start and stop selenium server only if the selenium_server_address is nil
|
2009-01-12 14:17:05 -06:00 |
cornel.borcean
|
0edffe0ac4
|
added selenium_server port and address and application address for configuring selenium more dynamically
|
2009-01-12 12:50:53 -06:00 |
cornel.borcean
|
0ce92dfcd8
|
changed selenium_environment to application_environment and deprecated selenium_environment and selenium_port
|
2009-01-12 12:32:14 -06:00 |
cornel.borcean
|
8932544d46
|
changed description for the application_port variable
|
2009-01-12 12:21:24 -06:00 |
cornel.borcean
|
33d2cdcc53
|
changed selenium_port to application_port to reflect what the variable is used for ...
|
2009-01-12 12:13:22 -06:00 |
Amos King
|
d4008ebc06
|
oops didn't notice I was using the wrong matchers. Matchers now using Selenium mode.
|
2009-01-09 23:13:57 -06:00 |
Amos King
|
928b224237
|
Revert "include Webrat::Matchers in selinium mode"
And Revert "getting assert_* to work with selenium"
|
2009-01-09 23:11:33 -06:00 |
Amos King
|
10b31be511
|
remove duplicated code from the Has Content matchers in selenium matchers file.
|
2009-01-09 22:14:12 -06:00 |
Amos King
|
fbb74a5a98
|
include Webrat::Matchers in selinium mode
|
2009-01-09 22:13:34 -06:00 |
Lena
|
b4d85cb50b
|
Added recognition of input tags with type button, which are generated by the Rails submit_to_remote helper
|
2009-01-07 12:27:47 +01:00 |
Marcello Nuccio
|
076e198287
|
In rails-2.3 parse_query_parameters is in RequestParser
|
2009-01-07 03:17:26 +01:00 |
Mike
|
7bfa4c55c0
|
Merge branch 'lh_86_assert_contains' of git@github.com:gaffo/webrat into lh_86_assert_contains
|
2009-01-05 13:06:53 -06:00 |
Amos King
|
021f197abc
|
change assert_tag and assert_no_tag to assert_have_tag and assert_no_tag so it won't conflict with rails and so that it will be more like the matchers.
|
2009-01-05 13:03:08 -06:00 |
Amos King
|
ff00ae10ea
|
add have to assert_selector and assert_no_selector for consistency.
|
2009-01-05 12:59:56 -06:00 |
Amos King
|
f814b79ac1
|
change assert_xpath and assert_no_xpath to be assert_have_xpath and assert
_have_no_xpath to be closer to the rspec matcher.
|
2009-01-05 12:58:40 -06:00 |
Mike
|
7901c7503a
|
Merge branch 'master' of git://github.com/brynary/webrat into lh_86_assert_contains
|
2009-01-05 12:33:19 -06:00 |
Amos King
|
4e0845c8db
|
Added assert_xpath and assert_no_xpath for Test::Unit support.
|
2009-01-05 12:23:48 -06:00 |
Josh Knowles
|
9825aee47e
|
Don't follow external redirects
|
2009-01-04 23:56:52 -05:00 |
Nicolas Sanguinetti
|
4565a3cea6
|
Unescape the values passed to the sinatra test helpers
|
2009-01-04 22:36:21 -05:00 |
Josh Knowles
|
34ea3e64b8
|
Sinatra integration tests for following redirects
|
2009-01-04 22:34:47 -05:00 |
Josh Knowles
|
c3120833b0
|
Merge branch 'foca/master'
|
2009-01-04 21:57:25 -05:00 |
gaffo
|
fece459f5f
|
added assert_selector
|
2009-01-04 18:00:18 -06:00 |
gaffo
|
cf1589823d
|
added assert_tag, assert_no_tag
|
2009-01-04 17:42:54 -06:00 |
gaffo
|
0f0dab0b0b
|
Upaded to webrat newest
Signed-off-by: gaffo <mike@uberu.com>
|
2009-01-04 15:21:14 -06:00 |
Amos King
|
fe5d183e69
|
backed out will add in again as a different feature
|
2009-01-02 14:36:16 -06:00 |
Amos King
|
45bd577955
|
fix selenium matchers to only overide needed methods from the oriinal matchers so that I don't have to write the same methods again for selenium mode.
|
2009-01-02 14:31:43 -06:00 |
Mike
|
b77c33b865
|
added delegator for response_body to session so it is accessible from integration test when using test::unit
|
2009-01-02 13:05:27 -06:00 |
Amos King
|
b3d6c9d89b
|
assert_contain and assert_not_contain fully functional
|
2008-12-31 17:01:46 -06:00 |
Josh Knowles
|
e19b1cc323
|
Rails and Merb integration tests for following redirects
|
2008-12-29 23:14:26 -05:00 |
Josh Knowles
|
e77495bc04
|
Refactor redirect handling as Merb response doesn't support the redirect? method. All integration specs now passing again.
|
2008-12-29 22:45:55 -05:00 |
Josh Knowles
|
ce364d1663
|
Refactor redirect support out of RailsSession & SinatraSession and into Session#request_page
|
2008-12-29 21:19:13 -05:00 |
Kieran Pilkington
|
0938c6dafc
|
bugfix: when h was nil (which it was for all my tests), everyone would fail with nil.[]= errors. Making sure we at least have a blank hash fixes this.
|
2008-12-29 19:27:30 -05:00 |
Nicolas Sanguinetti
|
422c6aea89
|
Use request_page to handle sinatra redirects
This should make current_url and keeping the referrer work as expected
|
2008-12-29 03:37:41 -02:00 |
Nicolas Sanguinetti
|
6704d487bc
|
Disable sinatra's app run and reload
|
2008-12-29 03:37:12 -02:00 |
Nicolas Sanguinetti
|
6d108393be
|
Allow accessing the request and response from SinatraSession
|
2008-12-29 01:40:14 -02:00 |
Bryan Helmkamp
|
2ead102f54
|
Merge commit 'joshknowles/master'
|
2008-12-28 21:15:31 -05:00 |
Josh Knowles
|
4b6558e7e5
|
Properly set referer and redirect to proper location
|
2008-12-28 21:12:34 -05:00 |
Bryan Helmkamp
|
a018af99ff
|
Remove references to should_see and should_not_see, which don't exist
|
2008-12-28 21:05:22 -05:00 |
Bryan Helmkamp
|
29274f9b4b
|
Merge commit 'joshknowles/master'
Conflicts:
lib/webrat/rails.rb
spec/webrat/rails/rails_session_spec.rb
|
2008-12-28 19:35:42 -05:00 |
Bryan Helmkamp
|
f409ec3ecb
|
Better error message if Webrat mode is unknown
|
2008-12-28 14:24:24 -05:00 |
Bryan Helmkamp
|
7c603f834c
|
Minor refactorings
|
2008-12-27 20:18:55 -05:00 |
Mike Gaffney
|
a954b02b22
|
adding in failure messages
|
2008-12-27 17:30:54 -06:00 |
Mike Gaffney
|
449edf4a10
|
updated from master
|
2008-12-27 17:22:51 -06:00 |
Mike Gaffney
|
fbcd509097
|
added code, working on specs
|
2008-12-27 16:44:54 -06:00 |
Kieran Pilkington
|
2c51d90830
|
adding configuration option to change seleniums environment and port settings
|
2008-12-28 11:39:34 +13:00 |
Bryan Helmkamp
|
362df8abf0
|
Fix startup bug when using Webrat::Selenium with Test::Unit
|
2008-12-27 15:57:01 -05:00 |
Bryan Helmkamp
|
0eaad52768
|
Cleanup the way the tests switch Webrat modes
|
2008-12-25 23:28:29 -05:00 |
gaffo
|
22c7834512
|
Sets the Webrat mode with Configuration#mode= in the config block
|
2008-12-25 23:07:10 -05:00 |
Josh Knowles
|
89e9ea91e9
|
Support forwarding headers when following redirects when using the SinatraSession
|
2008-12-25 18:28:54 -05:00 |
Josh Knowles
|
b88b2b2949
|
Forward headers during redirects when using the RailsSession.
|
2008-12-25 16:53:06 -05:00 |
Graham Ashton
|
df2df61267
|
Ensure that Webrat::MechanizeSession.request_page always uses an absolute URL.
Signed-off-by: Bryan Helmkamp <bryan@brynary.com>
|
2008-12-25 15:03:42 +08:00 |
Bryan Helmkamp
|
3492a91c4e
|
Updating gemspec. Another interim release
|
2008-12-25 01:58:54 -05:00 |
Noah Davis
|
0b9fd99bc0
|
stripping anchor tags from URIs before passing to rails integration session
|
2008-12-19 14:32:02 -05:00 |
Luke Melia
|
7d63aa1a4d
|
Extracted save_and_open_page related functionality to a module and included it in SeleniumSession as well as the standard webrat session. Also added save_and_open_screengrab method to SeleniumSession.
|
2008-12-19 00:47:26 -05:00 |
Luke Melia
|
f3dfa329b5
|
Allow SeleniumSession's click_button to be called without an argument without blowing up.
|
2008-12-18 02:48:36 -05:00 |
Luke Melia
|
492a301449
|
For your viewing pleasure... maximize the selenium window at after initializing selenium.
|
2008-12-18 02:45:10 -05:00 |
Ross Kaffenberger
|
567f5ada0e
|
Text treated as regexp for buttons
|
2008-12-17 18:33:20 -05:00 |
Bryan Helmkamp
|
a5e6af2fe7
|
Better inspect output for Webrat elements
|
2008-12-12 15:43:27 -05:00 |
gaffo
|
ee86067829
|
updating per reccomendations
|
2008-12-09 00:12:09 -06:00 |
gaffo
|
24ad539671
|
merging in current codebase
|
2008-12-08 23:48:00 -06:00 |
gaffo
|
2811a089bc
|
webrat config now does the require
|
2008-12-08 23:19:44 -06:00 |
Bryan Helmkamp
|
2d427ed89e
|
simualte and automate need to be there in SeleniumSession too
|
2008-12-08 04:02:39 -05:00 |
Bryan Helmkamp
|
0d028e92fa
|
Include Webrat::Matchers into IntegrationTest
|
2008-12-07 16:39:09 -05:00 |
Bryan Helmkamp
|
f53e415076
|
include Webrat::Selenium::Matchers into Webrat::Selenium::Rails::World
|
2008-12-07 14:02:06 -05:00 |
Bryan Helmkamp
|
0e9f4731bb
|
Adding webrat.simulate and webrat.automate for using the same step mathers in multiple modes
|
2008-12-03 22:23:13 -05:00 |
Bryan Helmkamp
|
881d9f388d
|
Adding have_xpath matcher for Selenium
|
2008-12-02 22:13:13 -05:00 |
Bryan Helmkamp
|
0888c683a3
|
Added auto-waiting #contain and #have_selector matchers for Selenium
|
2008-12-02 21:55:09 -05:00 |
Bryan Helmkamp
|
0fb3ed6b11
|
Add docs for Webrat::Selenium
|
2008-12-02 20:02:08 -05:00 |
Bryan Helmkamp
|
5cf23cbda3
|
Detect if the document is XML or HTML using the Content-Type when in Rails mode
|
2008-12-02 01:03:38 -05:00 |
Bryan Helmkamp
|
a205b6fa44
|
Converting some CSS selectors to XPath
|
2008-12-02 00:16:15 -05:00 |
Bryan Helmkamp
|
e88772021b
|
More Webrat implicit waiting. Only load Webrat selectors once per run, not per test
|
2008-12-01 22:04:24 -05:00 |
Bryan Helmkamp
|
d8e205cad0
|
Adding wait_for_element before Webrat actions
|
2008-12-01 21:15:23 -05:00 |
Bryan Helmkamp
|
26a08e69ae
|
Correcting include of Webrat::Methods in Selenium mode
|
2008-12-01 20:57:57 -05:00 |
Bryan Helmkamp
|
53efcc6185
|
Removing Prototype-specific waits
|
2008-12-01 20:37:18 -05:00 |
Bryan Helmkamp
|
33cfb1cd6a
|
Removing definition of webrat_session method out of the loop
|
2008-12-01 20:33:01 -05:00 |
Bryan Helmkamp
|
2a4959e7f6
|
Expose #selenium method for direct access to selenium object
|
2008-12-01 20:28:48 -05:00 |
Bryan Helmkamp
|
0de031c93a
|
Check nokogiri gem version before requiring nokogiri
Gives better error messages is using an old nokogiri version
|
2008-12-01 10:28:02 -05:00 |
Bryan Helmkamp
|
d576a72120
|
Expose select_option through Webrat::Methods. Minor refactorings
|
2008-11-30 20:35:08 -05:00 |
Bryan Helmkamp
|
f5ed57e042
|
Docs
|
2008-11-30 20:09:41 -05:00 |
Bryan Helmkamp
|
260ef1ae4e
|
Use FieldNamedLocator in form
|
2008-11-30 15:51:44 -05:00 |
Bryan Helmkamp
|
522bb3272f
|
Initialize locators with a session and a dom instead of a scope
|
2008-11-30 15:47:31 -05:00 |
Bryan Helmkamp
|
9ace546766
|
Removing more dead methods
|
2008-11-30 15:39:03 -05:00 |
Bryan Helmkamp
|
c05c0f6c73
|
Adding FormLocator. Removing some dead methods
|
2008-11-30 15:24:50 -05:00 |
Bryan Helmkamp
|
0eee6d75e4
|
Updating SelectOptionLocator to use elements
|
2008-11-30 15:15:50 -05:00 |