mkuklis-webrat 0.5.1 → 0.6.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. data/.document +3 -3
  2. data/.gitignore +14 -14
  3. data/History.txt +413 -413
  4. data/MIT-LICENSE.txt +19 -19
  5. data/README.rdoc +84 -84
  6. data/Rakefile +187 -187
  7. data/VERSION +1 -1
  8. data/install.rb +1 -1
  9. data/lib/webrat/adapters/mechanize.rb +78 -78
  10. data/lib/webrat/adapters/merb.rb +11 -11
  11. data/lib/webrat/adapters/rack.rb +25 -25
  12. data/lib/webrat/adapters/rails.rb +81 -81
  13. data/lib/webrat/adapters/sinatra.rb +9 -9
  14. data/lib/webrat/core/configuration.rb +92 -92
  15. data/lib/webrat/core/elements/area.rb +31 -31
  16. data/lib/webrat/core/elements/element.rb +33 -33
  17. data/lib/webrat/core/elements/field.rb +487 -487
  18. data/lib/webrat/core/elements/form.rb +103 -103
  19. data/lib/webrat/core/elements/label.rb +31 -31
  20. data/lib/webrat/core/elements/link.rb +93 -93
  21. data/lib/webrat/core/elements/select_option.rb +48 -48
  22. data/lib/webrat/core/locators/area_locator.rb +38 -38
  23. data/lib/webrat/core/locators/button_locator.rb +54 -54
  24. data/lib/webrat/core/locators/field_by_id_locator.rb +37 -37
  25. data/lib/webrat/core/locators/field_labeled_locator.rb +56 -56
  26. data/lib/webrat/core/locators/field_locator.rb +25 -25
  27. data/lib/webrat/core/locators/field_named_locator.rb +41 -41
  28. data/lib/webrat/core/locators/form_locator.rb +19 -19
  29. data/lib/webrat/core/locators/label_locator.rb +34 -34
  30. data/lib/webrat/core/locators/link_locator.rb +74 -74
  31. data/lib/webrat/core/locators/locator.rb +20 -20
  32. data/lib/webrat/core/locators/select_option_locator.rb +59 -59
  33. data/lib/webrat/core/locators.rb +20 -20
  34. data/lib/webrat/core/logging.rb +23 -23
  35. data/lib/webrat/core/matchers/have_content.rb +68 -68
  36. data/lib/webrat/core/matchers/have_selector.rb +74 -74
  37. data/lib/webrat/core/matchers/have_tag.rb +21 -21
  38. data/lib/webrat/core/matchers/have_xpath.rb +122 -122
  39. data/lib/webrat/core/matchers.rb +4 -4
  40. data/lib/webrat/core/methods.rb +64 -64
  41. data/lib/webrat/core/mime.rb +18 -18
  42. data/lib/webrat/core/save_and_open_page.rb +48 -48
  43. data/lib/webrat/core/scope.rb +365 -365
  44. data/lib/webrat/core/session.rb +306 -306
  45. data/lib/webrat/core/xml.rb +72 -72
  46. data/lib/webrat/core.rb +13 -13
  47. data/lib/webrat/core_extensions/blank.rb +58 -58
  48. data/lib/webrat/core_extensions/deprecate.rb +8 -8
  49. data/lib/webrat/core_extensions/detect_mapped.rb +12 -12
  50. data/lib/webrat/core_extensions/meta_class.rb +6 -6
  51. data/lib/webrat/core_extensions/nil_to_param.rb +5 -5
  52. data/lib/webrat/core_extensions/tcp_socket.rb +27 -27
  53. data/lib/webrat/integrations/merb.rb +10 -10
  54. data/lib/webrat/integrations/rails.rb +25 -25
  55. data/lib/webrat/integrations/rspec-rails.rb +10 -10
  56. data/lib/webrat/integrations/selenium.rb +11 -11
  57. data/lib/webrat/merb.rb +9 -9
  58. data/lib/webrat/rspec-rails.rb +2 -2
  59. data/lib/webrat/selenium/application_server_factory.rb +40 -40
  60. data/lib/webrat/selenium/application_servers/external.rb +26 -26
  61. data/lib/webrat/selenium/application_servers/merb.rb +50 -50
  62. data/lib/webrat/selenium/application_servers/rails.rb +3 -6
  63. data/lib/webrat/selenium/application_servers/sinatra.rb +37 -37
  64. data/lib/webrat/selenium/application_servers.rb +5 -5
  65. data/lib/webrat/selenium/location_strategy_javascript/button.js +19 -19
  66. data/lib/webrat/selenium/location_strategy_javascript/label.js +42 -42
  67. data/lib/webrat/selenium/location_strategy_javascript/webrat.js +6 -6
  68. data/lib/webrat/selenium/location_strategy_javascript/webratlink.js +32 -32
  69. data/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -15
  70. data/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -5
  71. data/lib/webrat/selenium/matchers/have_content.rb +66 -66
  72. data/lib/webrat/selenium/matchers/have_selector.rb +49 -49
  73. data/lib/webrat/selenium/matchers/have_tag.rb +72 -72
  74. data/lib/webrat/selenium/matchers/have_xpath.rb +45 -45
  75. data/lib/webrat/selenium/matchers.rb +4 -4
  76. data/lib/webrat/selenium/selenium_extensions.js +5 -5
  77. data/lib/webrat/selenium/selenium_rc_server.rb +86 -86
  78. data/lib/webrat/selenium/selenium_session.rb +267 -272
  79. data/lib/webrat/selenium/silence_stream.rb +18 -18
  80. data/lib/webrat/selenium.rb +70 -70
  81. data/lib/webrat.rb +18 -18
  82. data/spec/fakes/test_adapter.rb +37 -37
  83. data/spec/integration/mechanize/Rakefile +6 -6
  84. data/spec/integration/mechanize/config.ru +1 -1
  85. data/spec/integration/mechanize/sample_app.rb +20 -20
  86. data/spec/integration/mechanize/spec/mechanize_spec.rb +22 -22
  87. data/spec/integration/mechanize/spec/spec_helper.rb +27 -27
  88. data/spec/integration/merb/.gitignore +20 -20
  89. data/spec/integration/merb/Rakefile +35 -35
  90. data/spec/integration/merb/app/controllers/application.rb +2 -2
  91. data/spec/integration/merb/app/controllers/exceptions.rb +13 -13
  92. data/spec/integration/merb/app/controllers/testing.rb +27 -27
  93. data/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -63
  94. data/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -47
  95. data/spec/integration/merb/app/views/layout/application.html.erb +11 -11
  96. data/spec/integration/merb/app/views/testing/show_form.html.erb +26 -26
  97. data/spec/integration/merb/app/views/testing/upload.html.erb +8 -8
  98. data/spec/integration/merb/config/environments/development.rb +15 -15
  99. data/spec/integration/merb/config/environments/rake.rb +11 -11
  100. data/spec/integration/merb/config/environments/test.rb +14 -14
  101. data/spec/integration/merb/config/init.rb +25 -25
  102. data/spec/integration/merb/config/rack.rb +11 -11
  103. data/spec/integration/merb/config/router.rb +34 -34
  104. data/spec/integration/merb/spec/spec.opts +1 -1
  105. data/spec/integration/merb/spec/spec_helper.rb +26 -26
  106. data/spec/integration/merb/spec/webrat_spec.rb +39 -39
  107. data/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -31
  108. data/spec/integration/merb/tasks/merb.thor/common.rb +64 -64
  109. data/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -124
  110. data/spec/integration/merb/tasks/merb.thor/main.thor +149 -149
  111. data/spec/integration/merb/tasks/merb.thor/ops.rb +93 -93
  112. data/spec/integration/merb/tasks/merb.thor/utils.rb +40 -40
  113. data/spec/integration/rack/Rakefile +5 -5
  114. data/spec/integration/rack/app.rb +89 -89
  115. data/spec/integration/rack/test/helper.rb +21 -21
  116. data/spec/integration/rack/test/webrat_rack_test.rb +73 -73
  117. data/spec/integration/rails/.gitignore +3 -3
  118. data/spec/integration/rails/Rakefile +30 -30
  119. data/spec/integration/rails/app/controllers/application.rb +15 -15
  120. data/spec/integration/rails/app/controllers/buttons_controller.rb +7 -7
  121. data/spec/integration/rails/app/controllers/fields_controller.rb +4 -4
  122. data/spec/integration/rails/app/controllers/links_controller.rb +7 -7
  123. data/spec/integration/rails/app/controllers/webrat_controller.rb +46 -46
  124. data/spec/integration/rails/app/helpers/buttons_helper.rb +2 -2
  125. data/spec/integration/rails/app/helpers/fields_helper.rb +2 -2
  126. data/spec/integration/rails/app/helpers/links_helper.rb +2 -2
  127. data/spec/integration/rails/app/views/buttons/show.html.erb +10 -10
  128. data/spec/integration/rails/app/views/fields/show.html.erb +8 -8
  129. data/spec/integration/rails/app/views/links/show.html.erb +5 -5
  130. data/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +3 -3
  131. data/spec/integration/rails/app/views/webrat/buttons.html.erb +10 -10
  132. data/spec/integration/rails/app/views/webrat/form.html.erb +27 -27
  133. data/spec/integration/rails/app/views/webrat/within.html.erb +2 -2
  134. data/spec/integration/rails/config/boot.rb +109 -109
  135. data/spec/integration/rails/config/environment.rb +12 -12
  136. data/spec/integration/rails/config/environments/development.rb +17 -17
  137. data/spec/integration/rails/config/environments/selenium.rb +22 -22
  138. data/spec/integration/rails/config/environments/test.rb +22 -22
  139. data/spec/integration/rails/config/initializers/inflections.rb +10 -10
  140. data/spec/integration/rails/config/initializers/mime_types.rb +5 -5
  141. data/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -17
  142. data/spec/integration/rails/config/locales/en.yml +4 -4
  143. data/spec/integration/rails/config/routes.rb +19 -19
  144. data/spec/integration/rails/public/404.html +29 -29
  145. data/spec/integration/rails/public/422.html +29 -29
  146. data/spec/integration/rails/public/500.html +33 -33
  147. data/spec/integration/rails/script/about +3 -3
  148. data/spec/integration/rails/script/console +3 -3
  149. data/spec/integration/rails/script/dbconsole +3 -3
  150. data/spec/integration/rails/script/destroy +3 -3
  151. data/spec/integration/rails/script/generate +3 -3
  152. data/spec/integration/rails/script/performance/benchmarker +3 -3
  153. data/spec/integration/rails/script/performance/profiler +3 -3
  154. data/spec/integration/rails/script/performance/request +3 -3
  155. data/spec/integration/rails/script/plugin +3 -3
  156. data/spec/integration/rails/script/process/inspector +3 -3
  157. data/spec/integration/rails/script/process/reaper +3 -3
  158. data/spec/integration/rails/script/process/spawner +3 -3
  159. data/spec/integration/rails/script/runner +3 -3
  160. data/spec/integration/rails/script/server +3 -3
  161. data/spec/integration/rails/test/integration/button_click_test.rb +80 -80
  162. data/spec/integration/rails/test/integration/fill_in_test.rb +24 -24
  163. data/spec/integration/rails/test/integration/link_click_test.rb +27 -27
  164. data/spec/integration/rails/test/integration/webrat_test.rb +122 -122
  165. data/spec/integration/rails/test/test_helper.rb +26 -26
  166. data/spec/integration/sinatra/Rakefile +5 -5
  167. data/spec/integration/sinatra/classic_app.rb +64 -64
  168. data/spec/integration/sinatra/modular_app.rb +16 -16
  169. data/spec/integration/sinatra/test/classic_app_test.rb +37 -37
  170. data/spec/integration/sinatra/test/modular_app_test.rb +18 -18
  171. data/spec/integration/sinatra/test/test_helper.rb +17 -17
  172. data/spec/private/core/configuration_spec.rb +87 -87
  173. data/spec/private/core/field_spec.rb +85 -85
  174. data/spec/private/core/link_spec.rb +24 -24
  175. data/spec/private/core/session_spec.rb +200 -200
  176. data/spec/private/mechanize/mechanize_adapter_spec.rb +73 -73
  177. data/spec/private/nokogiri_spec.rb +77 -77
  178. data/spec/private/rails/attaches_file_spec.rb +81 -81
  179. data/spec/private/rails/rails_adapter_spec.rb +86 -86
  180. data/spec/private/selenium/application_servers/rails_spec.rb +26 -26
  181. data/spec/public/basic_auth_spec.rb +24 -24
  182. data/spec/public/check_spec.rb +191 -191
  183. data/spec/public/choose_spec.rb +118 -118
  184. data/spec/public/click_area_spec.rb +106 -106
  185. data/spec/public/click_button_spec.rb +494 -494
  186. data/spec/public/click_link_spec.rb +511 -511
  187. data/spec/public/fill_in_spec.rb +224 -224
  188. data/spec/public/locators/field_by_xpath_spec.rb +19 -19
  189. data/spec/public/locators/field_labeled_spec.rb +172 -172
  190. data/spec/public/locators/field_with_id_spec.rb +16 -16
  191. data/spec/public/matchers/contain_spec.rb +114 -114
  192. data/spec/public/matchers/have_selector_spec.rb +146 -146
  193. data/spec/public/matchers/have_tag_spec.rb +39 -39
  194. data/spec/public/matchers/have_xpath_spec.rb +136 -136
  195. data/spec/public/reload_spec.rb +10 -10
  196. data/spec/public/save_and_open_spec.rb +70 -70
  197. data/spec/public/select_date_spec.rb +112 -112
  198. data/spec/public/select_datetime_spec.rb +137 -137
  199. data/spec/public/select_spec.rb +455 -455
  200. data/spec/public/select_time_spec.rb +100 -100
  201. data/spec/public/selenium/application_server_factory_spec.rb +49 -49
  202. data/spec/public/selenium/application_servers/external_spec.rb +12 -12
  203. data/spec/public/selenium/selenium_session_spec.rb +37 -37
  204. data/spec/public/set_hidden_field_spec.rb +5 -5
  205. data/spec/public/submit_form_spec.rb +5 -5
  206. data/spec/public/visit_spec.rb +58 -58
  207. data/spec/public/within_spec.rb +177 -177
  208. data/spec/spec.opts +1 -1
  209. data/spec/spec_helper.rb +54 -54
  210. data/webrat.gemspec +360 -0
  211. metadata +6 -5
@@ -1,54 +1,54 @@
1
- require "webrat/core/locators/locator"
2
-
3
- module Webrat
4
- module Locators
5
-
6
- class ButtonLocator < Locator # :nodoc:
7
-
8
- def locate
9
- ButtonField.load(@session, button_element)
10
- end
11
-
12
- def button_element
13
- button_elements.detect do |element|
14
- @value.nil? ||
15
- matches_id?(element) ||
16
- matches_value?(element) ||
17
- matches_html?(element) ||
18
- matches_alt?(element)
19
- end
20
- end
21
-
22
- def matches_id?(element)
23
- (@value.is_a?(Regexp) && element["id"] =~ @value) ||
24
- (!@value.is_a?(Regexp) && element["id"] == @value.to_s)
25
- end
26
-
27
- def matches_value?(element)
28
- element["value"] =~ /^\W*#{Regexp.escape(@value.to_s)}/i
29
- end
30
-
31
- def matches_html?(element)
32
- element.inner_html =~ /#{Regexp.escape(@value.to_s)}/i
33
- end
34
-
35
- def matches_alt?(element)
36
- element["alt"] =~ /^\W*#{Regexp.escape(@value.to_s)}/i
37
- end
38
-
39
- def button_elements
40
- @dom.xpath(*ButtonField.xpath_search)
41
- end
42
-
43
- def error_message
44
- "Could not find button #{@value.inspect}"
45
- end
46
-
47
- end
48
-
49
- def find_button(value) #:nodoc:
50
- ButtonLocator.new(@session, dom, value).locate!
51
- end
52
-
53
- end
54
- end
1
+ require "webrat/core/locators/locator"
2
+
3
+ module Webrat
4
+ module Locators
5
+
6
+ class ButtonLocator < Locator # :nodoc:
7
+
8
+ def locate
9
+ ButtonField.load(@session, button_element)
10
+ end
11
+
12
+ def button_element
13
+ button_elements.detect do |element|
14
+ @value.nil? ||
15
+ matches_id?(element) ||
16
+ matches_value?(element) ||
17
+ matches_html?(element) ||
18
+ matches_alt?(element)
19
+ end
20
+ end
21
+
22
+ def matches_id?(element)
23
+ (@value.is_a?(Regexp) && element["id"] =~ @value) ||
24
+ (!@value.is_a?(Regexp) && element["id"] == @value.to_s)
25
+ end
26
+
27
+ def matches_value?(element)
28
+ element["value"] =~ /^\W*#{Regexp.escape(@value.to_s)}/i
29
+ end
30
+
31
+ def matches_html?(element)
32
+ element.inner_html =~ /#{Regexp.escape(@value.to_s)}/i
33
+ end
34
+
35
+ def matches_alt?(element)
36
+ element["alt"] =~ /^\W*#{Regexp.escape(@value.to_s)}/i
37
+ end
38
+
39
+ def button_elements
40
+ @dom.xpath(*ButtonField.xpath_search)
41
+ end
42
+
43
+ def error_message
44
+ "Could not find button #{@value.inspect}"
45
+ end
46
+
47
+ end
48
+
49
+ def find_button(value) #:nodoc:
50
+ ButtonLocator.new(@session, dom, value).locate!
51
+ end
52
+
53
+ end
54
+ end
@@ -1,37 +1,37 @@
1
- require "webrat/core/locators/locator"
2
-
3
- module Webrat
4
- module Locators
5
-
6
- class FieldByIdLocator < Locator # :nodoc:
7
-
8
- def locate
9
- Field.load(@session, field_element)
10
- end
11
-
12
- def field_element
13
- field_elements.detect do |field_element|
14
- if @value.is_a?(Regexp)
15
- field_element["id"] =~ @value
16
- else
17
- field_element["id"] == @value.to_s
18
- end
19
- end
20
- end
21
-
22
- def field_elements
23
- @dom.xpath(*Field.xpath_search)
24
- end
25
-
26
- def error_message
27
- "Could not find field with id #{@value.inspect}"
28
- end
29
-
30
- end
31
-
32
- def field_with_id(id, *field_types)
33
- FieldByIdLocator.new(@session, dom, id, *field_types).locate!
34
- end
35
-
36
- end
37
- end
1
+ require "webrat/core/locators/locator"
2
+
3
+ module Webrat
4
+ module Locators
5
+
6
+ class FieldByIdLocator < Locator # :nodoc:
7
+
8
+ def locate
9
+ Field.load(@session, field_element)
10
+ end
11
+
12
+ def field_element
13
+ field_elements.detect do |field_element|
14
+ if @value.is_a?(Regexp)
15
+ field_element["id"] =~ @value
16
+ else
17
+ field_element["id"] == @value.to_s
18
+ end
19
+ end
20
+ end
21
+
22
+ def field_elements
23
+ @dom.xpath(*Field.xpath_search)
24
+ end
25
+
26
+ def error_message
27
+ "Could not find field with id #{@value.inspect}"
28
+ end
29
+
30
+ end
31
+
32
+ def field_with_id(id, *field_types)
33
+ FieldByIdLocator.new(@session, dom, id, *field_types).locate!
34
+ end
35
+
36
+ end
37
+ end
@@ -1,56 +1,56 @@
1
- require "webrat/core_extensions/detect_mapped"
2
- require "webrat/core/locators/locator"
3
-
4
- module Webrat
5
- module Locators
6
-
7
- class FieldLabeledLocator < Locator # :nodoc:
8
-
9
- def locate
10
- matching_labels.any? && matching_labels.detect_mapped { |label| label.field }
11
- end
12
-
13
- def matching_labels
14
- matching_label_elements.sort_by do |label_element|
15
- text(label_element).length
16
- end.map do |label_element|
17
- Label.load(@session, label_element)
18
- end
19
- end
20
-
21
- def matching_label_elements
22
- label_elements.select do |label_element|
23
- text(label_element) =~ /^\W*#{Regexp.escape(@value.to_s)}(\b|\Z)/i
24
- end
25
- end
26
-
27
- def label_elements
28
- @dom.xpath(*Label.xpath_search)
29
- end
30
-
31
- def error_message
32
- "Could not find field labeled #{@value.inspect}"
33
- end
34
-
35
- def text(element)
36
- str = element.inner_text
37
- str.gsub!("\n","")
38
- str.strip!
39
- str.squeeze!(" ")
40
- str
41
- end
42
-
43
- end
44
-
45
- # Locates a form field based on a <tt>label</tt> element in the HTML source.
46
- # This can be useful in order to verify that a field is pre-filled with the
47
- # correct value.
48
- #
49
- # Example:
50
- # field_labeled("First name").value.should == "Bryan"
51
- def field_labeled(label, *field_types)
52
- FieldLabeledLocator.new(@session, dom, label, *field_types).locate!
53
- end
54
-
55
- end
56
- end
1
+ require "webrat/core_extensions/detect_mapped"
2
+ require "webrat/core/locators/locator"
3
+
4
+ module Webrat
5
+ module Locators
6
+
7
+ class FieldLabeledLocator < Locator # :nodoc:
8
+
9
+ def locate
10
+ matching_labels.any? && matching_labels.detect_mapped { |label| label.field }
11
+ end
12
+
13
+ def matching_labels
14
+ matching_label_elements.sort_by do |label_element|
15
+ text(label_element).length
16
+ end.map do |label_element|
17
+ Label.load(@session, label_element)
18
+ end
19
+ end
20
+
21
+ def matching_label_elements
22
+ label_elements.select do |label_element|
23
+ text(label_element) =~ /^\W*#{Regexp.escape(@value.to_s)}(\b|\Z)/i
24
+ end
25
+ end
26
+
27
+ def label_elements
28
+ @dom.xpath(*Label.xpath_search)
29
+ end
30
+
31
+ def error_message
32
+ "Could not find field labeled #{@value.inspect}"
33
+ end
34
+
35
+ def text(element)
36
+ str = element.inner_text
37
+ str.gsub!("\n","")
38
+ str.strip!
39
+ str.squeeze!(" ")
40
+ str
41
+ end
42
+
43
+ end
44
+
45
+ # Locates a form field based on a <tt>label</tt> element in the HTML source.
46
+ # This can be useful in order to verify that a field is pre-filled with the
47
+ # correct value.
48
+ #
49
+ # Example:
50
+ # field_labeled("First name").value.should == "Bryan"
51
+ def field_labeled(label, *field_types)
52
+ FieldLabeledLocator.new(@session, dom, label, *field_types).locate!
53
+ end
54
+
55
+ end
56
+ end
@@ -1,25 +1,25 @@
1
- require "webrat/core/locators/locator"
2
-
3
- module Webrat
4
- module Locators
5
-
6
- class FieldLocator < Locator # :nodoc:
7
-
8
- def locate
9
- FieldByIdLocator.new(@session, @dom, @value).locate ||
10
- FieldNamedLocator.new(@session, @dom, @value, *@field_types).locate ||
11
- FieldLabeledLocator.new(@session, @dom, @value, *@field_types).locate
12
- end
13
-
14
- def error_message
15
- "Could not find field: #{@value.inspect}"
16
- end
17
-
18
- end
19
-
20
- def field(*args) # :nodoc:
21
- FieldLocator.new(@session, dom, *args).locate!
22
- end
23
-
24
- end
25
- end
1
+ require "webrat/core/locators/locator"
2
+
3
+ module Webrat
4
+ module Locators
5
+
6
+ class FieldLocator < Locator # :nodoc:
7
+
8
+ def locate
9
+ FieldByIdLocator.new(@session, @dom, @value).locate ||
10
+ FieldNamedLocator.new(@session, @dom, @value, *@field_types).locate ||
11
+ FieldLabeledLocator.new(@session, @dom, @value, *@field_types).locate
12
+ end
13
+
14
+ def error_message
15
+ "Could not find field: #{@value.inspect}"
16
+ end
17
+
18
+ end
19
+
20
+ def field(*args) # :nodoc:
21
+ FieldLocator.new(@session, dom, *args).locate!
22
+ end
23
+
24
+ end
25
+ end
@@ -1,41 +1,41 @@
1
- require "webrat/core/locators/locator"
2
-
3
- module Webrat
4
- module Locators
5
-
6
- class FieldNamedLocator < Locator # :nodoc:
7
-
8
- def locate
9
- Field.load(@session, field_element)
10
- end
11
-
12
- def field_element
13
- field_elements.detect do |field_element|
14
- field_element["name"] == @value.to_s
15
- end
16
- end
17
-
18
- def field_elements
19
- @dom.xpath(*xpath_searches)
20
- end
21
-
22
- def xpath_searches
23
- if @field_types.any?
24
- @field_types.map { |field_type| field_type.xpath_search }.flatten
25
- else
26
- Field.xpath_search
27
- end
28
- end
29
-
30
- def error_message
31
- "Could not find field named #{@value.inspect}"
32
- end
33
-
34
- end
35
-
36
- def field_named(name, *field_types)
37
- FieldNamedLocator.new(@session, dom, name, *field_types).locate!
38
- end
39
-
40
- end
41
- end
1
+ require "webrat/core/locators/locator"
2
+
3
+ module Webrat
4
+ module Locators
5
+
6
+ class FieldNamedLocator < Locator # :nodoc:
7
+
8
+ def locate
9
+ Field.load(@session, field_element)
10
+ end
11
+
12
+ def field_element
13
+ field_elements.detect do |field_element|
14
+ field_element["name"] == @value.to_s
15
+ end
16
+ end
17
+
18
+ def field_elements
19
+ @dom.xpath(*xpath_searches)
20
+ end
21
+
22
+ def xpath_searches
23
+ if @field_types.any?
24
+ @field_types.map { |field_type| field_type.xpath_search }.flatten
25
+ else
26
+ Field.xpath_search
27
+ end
28
+ end
29
+
30
+ def error_message
31
+ "Could not find field named #{@value.inspect}"
32
+ end
33
+
34
+ end
35
+
36
+ def field_named(name, *field_types)
37
+ FieldNamedLocator.new(@session, dom, name, *field_types).locate!
38
+ end
39
+
40
+ end
41
+ end
@@ -1,19 +1,19 @@
1
- require "webrat/core/locators/locator"
2
-
3
- module Webrat
4
- module Locators
5
-
6
- class FormLocator < Locator # :nodoc:
7
-
8
- def locate
9
- Form.load(@session, form_element)
10
- end
11
-
12
- def form_element
13
- @dom.css("#" + @value).first
14
- end
15
-
16
- end
17
-
18
- end
19
- end
1
+ require "webrat/core/locators/locator"
2
+
3
+ module Webrat
4
+ module Locators
5
+
6
+ class FormLocator < Locator # :nodoc:
7
+
8
+ def locate
9
+ Form.load(@session, form_element)
10
+ end
11
+
12
+ def form_element
13
+ @dom.css("#" + @value).first
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+ end
@@ -1,34 +1,34 @@
1
- require "webrat/core_extensions/detect_mapped"
2
- require "webrat/core/locators/locator"
3
-
4
- module Webrat
5
- module Locators
6
-
7
- class LabelLocator < Locator # :nodoc:
8
-
9
- def locate
10
- Label.load(@session, label_element)
11
- end
12
-
13
- def label_element
14
- label_elements.detect do |label_element|
15
- text(label_element) =~ /^\W*#{Regexp.escape(@value.to_s)}(\b|\Z)/i
16
- end
17
- end
18
-
19
- def label_elements
20
- @dom.xpath(*Label.xpath_search)
21
- end
22
-
23
- def text(label_element)
24
- str = label_element.inner_text
25
- str.gsub!("\n","")
26
- str.strip!
27
- str.squeeze!(" ")
28
- str
29
- end
30
-
31
- end
32
-
33
- end
34
- end
1
+ require "webrat/core_extensions/detect_mapped"
2
+ require "webrat/core/locators/locator"
3
+
4
+ module Webrat
5
+ module Locators
6
+
7
+ class LabelLocator < Locator # :nodoc:
8
+
9
+ def locate
10
+ Label.load(@session, label_element)
11
+ end
12
+
13
+ def label_element
14
+ label_elements.detect do |label_element|
15
+ text(label_element) =~ /^\W*#{Regexp.escape(@value.to_s)}(\b|\Z)/i
16
+ end
17
+ end
18
+
19
+ def label_elements
20
+ @dom.xpath(*Label.xpath_search)
21
+ end
22
+
23
+ def text(label_element)
24
+ str = label_element.inner_text
25
+ str.gsub!("\n","")
26
+ str.strip!
27
+ str.squeeze!(" ")
28
+ str
29
+ end
30
+
31
+ end
32
+
33
+ end
34
+ end