watir 6.10.0 → 6.10.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (280) hide show
  1. checksums.yaml +4 -4
  2. data/.document +5 -5
  3. data/.github/ISSUE_TEMPLATE.md +16 -16
  4. data/.gitignore +21 -21
  5. data/.travis.yml +72 -72
  6. data/CHANGES.md +6 -0
  7. data/Gemfile +16 -16
  8. data/LICENSE +23 -23
  9. data/README.md +106 -106
  10. data/Rakefile +153 -153
  11. data/appveyor.yml +13 -13
  12. data/lib/watir-webdriver.rb +2 -2
  13. data/lib/watir.rb +158 -158
  14. data/lib/watir/adjacent.rb +126 -126
  15. data/lib/watir/after_hooks.rb +132 -132
  16. data/lib/watir/alert.rb +120 -120
  17. data/lib/watir/aliases.rb +6 -6
  18. data/lib/watir/attribute_helper.rb +96 -96
  19. data/lib/watir/browser.rb +349 -349
  20. data/lib/watir/capabilities.rb +123 -123
  21. data/lib/watir/cell_container.rb +25 -25
  22. data/lib/watir/container.rb +51 -51
  23. data/lib/watir/cookies.rb +134 -134
  24. data/lib/watir/element_collection.rb +138 -138
  25. data/lib/watir/elements/area.rb +12 -12
  26. data/lib/watir/elements/button.rb +37 -37
  27. data/lib/watir/elements/cell.rb +17 -17
  28. data/lib/watir/elements/checkbox.rb +56 -56
  29. data/lib/watir/elements/dlist.rb +12 -12
  30. data/lib/watir/elements/element.rb +6 -5
  31. data/lib/watir/elements/file_field.rb +41 -41
  32. data/lib/watir/elements/font.rb +25 -25
  33. data/lib/watir/elements/form.rb +16 -16
  34. data/lib/watir/elements/hidden.rb +25 -25
  35. data/lib/watir/elements/html_elements.rb +2035 -2035
  36. data/lib/watir/elements/iframe.rb +166 -166
  37. data/lib/watir/elements/image.rb +21 -21
  38. data/lib/watir/elements/input.rb +15 -15
  39. data/lib/watir/elements/link.rb +18 -18
  40. data/lib/watir/elements/list.rb +49 -49
  41. data/lib/watir/elements/option.rb +72 -72
  42. data/lib/watir/elements/radio.rb +60 -60
  43. data/lib/watir/elements/row.rb +17 -17
  44. data/lib/watir/elements/select.rb +250 -250
  45. data/lib/watir/elements/svg_elements.rb +613 -613
  46. data/lib/watir/elements/table.rb +76 -76
  47. data/lib/watir/elements/table_cell.rb +31 -31
  48. data/lib/watir/elements/table_row.rb +32 -32
  49. data/lib/watir/elements/table_section.rb +15 -15
  50. data/lib/watir/elements/text_area.rb +5 -5
  51. data/lib/watir/elements/text_field.rb +39 -39
  52. data/lib/watir/exception.rb +16 -16
  53. data/lib/watir/extensions/nokogiri.rb +14 -14
  54. data/lib/watir/generator.rb +3 -3
  55. data/lib/watir/generator/base.rb +11 -11
  56. data/lib/watir/generator/base/generator.rb +115 -115
  57. data/lib/watir/generator/base/idl_sorter.rb +47 -47
  58. data/lib/watir/generator/base/spec_extractor.rb +138 -138
  59. data/lib/watir/generator/base/util.rb +21 -21
  60. data/lib/watir/generator/base/visitor.rb +162 -162
  61. data/lib/watir/generator/html.rb +15 -15
  62. data/lib/watir/generator/html/generator.rb +36 -36
  63. data/lib/watir/generator/html/spec_extractor.rb +50 -50
  64. data/lib/watir/generator/html/visitor.rb +21 -21
  65. data/lib/watir/generator/svg.rb +7 -7
  66. data/lib/watir/generator/svg/generator.rb +38 -38
  67. data/lib/watir/generator/svg/spec_extractor.rb +53 -53
  68. data/lib/watir/generator/svg/visitor.rb +21 -21
  69. data/lib/watir/has_window.rb +68 -68
  70. data/lib/watir/js_execution.rb +143 -143
  71. data/lib/watir/js_snippets.rb +16 -16
  72. data/lib/watir/js_snippets/backgroundColor.js +7 -7
  73. data/lib/watir/js_snippets/fireEvent.js +31 -31
  74. data/lib/watir/js_snippets/focus.js +3 -3
  75. data/lib/watir/js_snippets/getInnerHtml.js +19 -19
  76. data/lib/watir/js_snippets/getInnerText.js +19 -19
  77. data/lib/watir/js_snippets/getOuterHtml.js +20 -20
  78. data/lib/watir/js_snippets/getTextContent.js +19 -19
  79. data/lib/watir/js_snippets/isImageLoaded.js +3 -3
  80. data/lib/watir/js_snippets/selectOptionsLabel.js +10 -10
  81. data/lib/watir/js_snippets/selectOptionsText.js +10 -10
  82. data/lib/watir/js_snippets/selectOptionsValue.js +10 -10
  83. data/lib/watir/js_snippets/selectText.js +64 -64
  84. data/lib/watir/js_snippets/selectedOptions.js +11 -11
  85. data/lib/watir/js_snippets/setValue.js +3 -3
  86. data/lib/watir/legacy_wait.rb +126 -126
  87. data/lib/watir/locators.rb +60 -60
  88. data/lib/watir/locators/button/locator.rb +31 -31
  89. data/lib/watir/locators/button/selector_builder.rb +30 -30
  90. data/lib/watir/locators/button/selector_builder/xpath.rb +29 -29
  91. data/lib/watir/locators/button/validator.rb +15 -15
  92. data/lib/watir/locators/cell/locator.rb +15 -15
  93. data/lib/watir/locators/cell/selector_builder.rb +24 -24
  94. data/lib/watir/locators/element/locator.rb +1 -0
  95. data/lib/watir/locators/element/selector_builder.rb +150 -150
  96. data/lib/watir/locators/element/selector_builder/xpath.rb +119 -119
  97. data/lib/watir/locators/element/validator.rb +18 -18
  98. data/lib/watir/locators/row/locator.rb +15 -15
  99. data/lib/watir/locators/row/selector_builder.rb +29 -29
  100. data/lib/watir/locators/text_area/locator.rb +13 -13
  101. data/lib/watir/locators/text_area/selector_builder.rb +22 -22
  102. data/lib/watir/locators/text_field/locator.rb +30 -30
  103. data/lib/watir/locators/text_field/selector_builder.rb +31 -31
  104. data/lib/watir/locators/text_field/selector_builder/xpath.rb +17 -17
  105. data/lib/watir/locators/text_field/validator.rb +12 -12
  106. data/lib/watir/logger.rb +109 -109
  107. data/lib/watir/radio_set.rb +231 -231
  108. data/lib/watir/row_container.rb +36 -36
  109. data/lib/watir/screenshot.rb +50 -50
  110. data/lib/watir/user_editable.rb +56 -56
  111. data/lib/watir/wait.rb +200 -200
  112. data/lib/watir/wait/timer.rb +52 -52
  113. data/lib/watir/window.rb +257 -257
  114. data/lib/watir/xpath_support.rb +20 -20
  115. data/lib/watirspec.rb +86 -86
  116. data/lib/watirspec/guards.rb +60 -60
  117. data/lib/watirspec/implementation.rb +51 -51
  118. data/lib/watirspec/rake_tasks.rb +115 -115
  119. data/lib/watirspec/remote_server.rb +38 -38
  120. data/lib/watirspec/runner.rb +53 -53
  121. data/lib/watirspec/server.rb +99 -99
  122. data/lib/watirspec/server/app.rb +76 -76
  123. data/spec/browser_spec.rb +278 -278
  124. data/spec/click_spec.rb +19 -19
  125. data/spec/container_spec.rb +34 -34
  126. data/spec/element_locator_spec.rb +517 -517
  127. data/spec/element_spec.rb +158 -158
  128. data/spec/implementation_spec.rb +24 -24
  129. data/spec/input_spec.rb +14 -14
  130. data/spec/locator_spec_helper.rb +55 -55
  131. data/spec/logger_spec.rb +46 -46
  132. data/spec/spec_helper.rb +22 -22
  133. data/spec/special_chars_spec.rb +13 -13
  134. data/spec/watirspec/adjacent_spec.rb +227 -227
  135. data/spec/watirspec/after_hooks_spec.rb +182 -182
  136. data/spec/watirspec/alert_spec.rb +108 -108
  137. data/spec/watirspec/attributes_spec.rb +16 -16
  138. data/spec/watirspec/browser_spec.rb +281 -281
  139. data/spec/watirspec/cookies_spec.rb +154 -154
  140. data/spec/watirspec/drag_and_drop_spec.rb +49 -49
  141. data/spec/watirspec/element_hidden_spec.rb +75 -75
  142. data/spec/watirspec/elements/area_spec.rb +72 -72
  143. data/spec/watirspec/elements/areas_spec.rb +42 -42
  144. data/spec/watirspec/elements/button_spec.rb +277 -277
  145. data/spec/watirspec/elements/buttons_spec.rb +55 -55
  146. data/spec/watirspec/elements/checkbox_spec.rb +275 -275
  147. data/spec/watirspec/elements/checkboxes_spec.rb +44 -44
  148. data/spec/watirspec/elements/collections_spec.rb +52 -52
  149. data/spec/watirspec/elements/dd_spec.rb +124 -124
  150. data/spec/watirspec/elements/dds_spec.rb +42 -42
  151. data/spec/watirspec/elements/del_spec.rb +126 -126
  152. data/spec/watirspec/elements/dels_spec.rb +40 -40
  153. data/spec/watirspec/elements/div_spec.rb +245 -245
  154. data/spec/watirspec/elements/divs_spec.rb +42 -42
  155. data/spec/watirspec/elements/dl_spec.rb +142 -142
  156. data/spec/watirspec/elements/dls_spec.rb +43 -43
  157. data/spec/watirspec/elements/dt_spec.rb +122 -122
  158. data/spec/watirspec/elements/dts_spec.rb +42 -42
  159. data/spec/watirspec/elements/element_spec.rb +483 -483
  160. data/spec/watirspec/elements/elements_spec.rb +47 -47
  161. data/spec/watirspec/elements/em_spec.rb +96 -96
  162. data/spec/watirspec/elements/ems_spec.rb +43 -43
  163. data/spec/watirspec/elements/filefield_spec.rb +170 -170
  164. data/spec/watirspec/elements/filefields_spec.rb +43 -43
  165. data/spec/watirspec/elements/font_spec.rb +29 -29
  166. data/spec/watirspec/elements/form_spec.rb +66 -66
  167. data/spec/watirspec/elements/forms_spec.rb +46 -46
  168. data/spec/watirspec/elements/frame_spec.rb +123 -123
  169. data/spec/watirspec/elements/frames_spec.rb +41 -41
  170. data/spec/watirspec/elements/hidden_spec.rb +104 -104
  171. data/spec/watirspec/elements/hiddens_spec.rb +43 -43
  172. data/spec/watirspec/elements/hn_spec.rb +92 -92
  173. data/spec/watirspec/elements/hns_spec.rb +38 -38
  174. data/spec/watirspec/elements/iframe_spec.rb +10 -0
  175. data/spec/watirspec/elements/iframes_spec.rb +47 -47
  176. data/spec/watirspec/elements/image_spec.rb +158 -158
  177. data/spec/watirspec/elements/images_spec.rb +40 -40
  178. data/spec/watirspec/elements/ins_spec.rb +127 -127
  179. data/spec/watirspec/elements/inses_spec.rb +40 -40
  180. data/spec/watirspec/elements/label_spec.rb +75 -75
  181. data/spec/watirspec/elements/labels_spec.rb +40 -40
  182. data/spec/watirspec/elements/li_spec.rb +111 -111
  183. data/spec/watirspec/elements/link_spec.rb +171 -171
  184. data/spec/watirspec/elements/links_spec.rb +44 -44
  185. data/spec/watirspec/elements/lis_spec.rb +42 -42
  186. data/spec/watirspec/elements/list_spec.rb +32 -32
  187. data/spec/watirspec/elements/map_spec.rb +75 -75
  188. data/spec/watirspec/elements/maps_spec.rb +41 -41
  189. data/spec/watirspec/elements/meta_spec.rb +23 -23
  190. data/spec/watirspec/elements/metas_spec.rb +40 -40
  191. data/spec/watirspec/elements/ol_spec.rb +87 -87
  192. data/spec/watirspec/elements/ols_spec.rb +40 -40
  193. data/spec/watirspec/elements/option_spec.rb +121 -121
  194. data/spec/watirspec/elements/p_spec.rb +111 -111
  195. data/spec/watirspec/elements/pre_spec.rb +111 -111
  196. data/spec/watirspec/elements/pres_spec.rb +40 -40
  197. data/spec/watirspec/elements/ps_spec.rb +40 -40
  198. data/spec/watirspec/elements/radio_spec.rb +273 -273
  199. data/spec/watirspec/elements/radios_spec.rb +43 -43
  200. data/spec/watirspec/elements/select_list_spec.rb +553 -553
  201. data/spec/watirspec/elements/select_lists_spec.rb +46 -46
  202. data/spec/watirspec/elements/span_spec.rb +128 -128
  203. data/spec/watirspec/elements/spans_spec.rb +40 -40
  204. data/spec/watirspec/elements/strong_spec.rb +88 -88
  205. data/spec/watirspec/elements/strongs_spec.rb +43 -43
  206. data/spec/watirspec/elements/table_nesting_spec.rb +51 -51
  207. data/spec/watirspec/elements/table_spec.rb +156 -156
  208. data/spec/watirspec/elements/tables_spec.rb +42 -42
  209. data/spec/watirspec/elements/tbody_spec.rb +93 -93
  210. data/spec/watirspec/elements/tbodys_spec.rb +62 -62
  211. data/spec/watirspec/elements/td_spec.rb +93 -93
  212. data/spec/watirspec/elements/tds_spec.rb +53 -53
  213. data/spec/watirspec/elements/text_field_spec.rb +360 -360
  214. data/spec/watirspec/elements/text_fields_spec.rb +44 -44
  215. data/spec/watirspec/elements/textarea_spec.rb +26 -26
  216. data/spec/watirspec/elements/textareas_spec.rb +24 -24
  217. data/spec/watirspec/elements/tfoot_spec.rb +86 -86
  218. data/spec/watirspec/elements/tfoots_spec.rb +68 -68
  219. data/spec/watirspec/elements/thead_spec.rb +86 -86
  220. data/spec/watirspec/elements/theads_spec.rb +68 -68
  221. data/spec/watirspec/elements/tr_spec.rb +78 -78
  222. data/spec/watirspec/elements/trs_spec.rb +61 -61
  223. data/spec/watirspec/elements/ul_spec.rb +76 -76
  224. data/spec/watirspec/elements/uls_spec.rb +39 -39
  225. data/spec/watirspec/html/alerts.html +12 -12
  226. data/spec/watirspec/html/aria_attributes.html +9 -9
  227. data/spec/watirspec/html/class_locator.html +8 -8
  228. data/spec/watirspec/html/clicks.html +19 -19
  229. data/spec/watirspec/html/closeable.html +12 -12
  230. data/spec/watirspec/html/collections.html +14 -14
  231. data/spec/watirspec/html/css/jquery-ui-1.8.17.custom.css +286 -286
  232. data/spec/watirspec/html/data_attributes.html +9 -9
  233. data/spec/watirspec/html/definition_lists.html +47 -47
  234. data/spec/watirspec/html/drag_and_drop.html +106 -106
  235. data/spec/watirspec/html/font.html +10 -10
  236. data/spec/watirspec/html/forms_with_input_elements.html +174 -174
  237. data/spec/watirspec/html/frame_1.html +22 -22
  238. data/spec/watirspec/html/frame_2.html +15 -15
  239. data/spec/watirspec/html/frames.html +10 -10
  240. data/spec/watirspec/html/hover.html +11 -11
  241. data/spec/watirspec/html/iframe_1.html +22 -22
  242. data/spec/watirspec/html/iframes.html +12 -12
  243. data/spec/watirspec/html/images.html +27 -27
  244. data/spec/watirspec/html/inner_outer.html +4 -4
  245. data/spec/watirspec/html/javascript/angular.min.js +331 -331
  246. data/spec/watirspec/html/javascript/helpers.js +16 -16
  247. data/spec/watirspec/html/javascript/jquery-1.7.1.min.js +3 -3
  248. data/spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js +67 -67
  249. data/spec/watirspec/html/keylogger.html +14 -14
  250. data/spec/watirspec/html/modal_dialog.html +9 -9
  251. data/spec/watirspec/html/multiple_ids.html +14 -14
  252. data/spec/watirspec/html/nested_elements.html +33 -33
  253. data/spec/watirspec/html/nested_frame_2.html +9 -9
  254. data/spec/watirspec/html/nested_frame_3.html +14 -14
  255. data/spec/watirspec/html/nested_frames.html +10 -10
  256. data/spec/watirspec/html/nested_iframe_2.html +12 -12
  257. data/spec/watirspec/html/nested_iframes.html +13 -13
  258. data/spec/watirspec/html/nested_tables.html +202 -202
  259. data/spec/watirspec/html/non_control_elements.html +140 -140
  260. data/spec/watirspec/html/removed_element.html +24 -24
  261. data/spec/watirspec/html/right_click.html +10 -10
  262. data/spec/watirspec/html/special_chars.html +11 -11
  263. data/spec/watirspec/html/tables.html +120 -120
  264. data/spec/watirspec/html/timeout_window_location.html +19 -19
  265. data/spec/watirspec/html/uneven_table.html +20 -20
  266. data/spec/watirspec/html/wait.html +84 -84
  267. data/spec/watirspec/html/window_switching.html +11 -11
  268. data/spec/watirspec/radio_set_spec.rb +336 -336
  269. data/spec/watirspec/relaxed_locate_spec.rb +99 -99
  270. data/spec/watirspec/screenshot_spec.rb +29 -29
  271. data/spec/watirspec/support/raise_exception_matchers.rb +36 -36
  272. data/spec/watirspec/wait_spec.rb +381 -381
  273. data/spec/watirspec/window_switching_spec.rb +415 -415
  274. data/spec/watirspec_helper.rb +161 -161
  275. data/support/appveyor.cmd +9 -9
  276. data/support/doctest_helper.rb +101 -101
  277. data/support/travis.sh +11 -11
  278. data/support/version_differ.rb +59 -59
  279. data/watir.gemspec +1 -1
  280. metadata +4 -170
@@ -1,46 +1,46 @@
1
- require "watirspec_helper"
2
-
3
- describe "SelectLists" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
7
- end
8
-
9
- describe "with selectors" do
10
- it "returns the matching elements" do
11
- expect(browser.select_lists(name: "delete_user_username").to_a).to eq [browser.select_list(name: "delete_user_username")]
12
- end
13
- end
14
-
15
- describe "#length" do
16
- it "returns the correct number of select lists on the page" do
17
- expect(browser.select_lists.length).to eq 6
18
- end
19
- end
20
-
21
- describe "#[]" do
22
- it "returns the correct item" do
23
- expect(browser.select_lists[0].value).to eq "2"
24
- expect(browser.select_lists[0].name).to eq "new_user_country"
25
- expect(browser.select_lists[0]).to_not be_multiple
26
- expect(browser.select_lists[1]).to be_multiple
27
- end
28
- end
29
-
30
- describe "#each" do
31
- it "iterates through the select lists correctly" do
32
- count = 0
33
-
34
- browser.select_lists.each_with_index do |l, index|
35
- expect(browser.select_list(index: index).name).to eq l.name
36
- expect(browser.select_list(index: index).id).to eq l.id
37
- expect(browser.select_list(index: index).value).to eq l.value
38
-
39
- count += 1
40
- end
41
-
42
- expect(count).to be > 0
43
- end
44
- end
45
-
46
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "SelectLists" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
7
+ end
8
+
9
+ describe "with selectors" do
10
+ it "returns the matching elements" do
11
+ expect(browser.select_lists(name: "delete_user_username").to_a).to eq [browser.select_list(name: "delete_user_username")]
12
+ end
13
+ end
14
+
15
+ describe "#length" do
16
+ it "returns the correct number of select lists on the page" do
17
+ expect(browser.select_lists.length).to eq 6
18
+ end
19
+ end
20
+
21
+ describe "#[]" do
22
+ it "returns the correct item" do
23
+ expect(browser.select_lists[0].value).to eq "2"
24
+ expect(browser.select_lists[0].name).to eq "new_user_country"
25
+ expect(browser.select_lists[0]).to_not be_multiple
26
+ expect(browser.select_lists[1]).to be_multiple
27
+ end
28
+ end
29
+
30
+ describe "#each" do
31
+ it "iterates through the select lists correctly" do
32
+ count = 0
33
+
34
+ browser.select_lists.each_with_index do |l, index|
35
+ expect(browser.select_list(index: index).name).to eq l.name
36
+ expect(browser.select_list(index: index).id).to eq l.id
37
+ expect(browser.select_list(index: index).value).to eq l.value
38
+
39
+ count += 1
40
+ end
41
+
42
+ expect(count).to be > 0
43
+ end
44
+ end
45
+
46
+ end
@@ -1,128 +1,128 @@
1
- require "watirspec_helper"
2
-
3
- describe "Span" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
- end
8
-
9
- # Exists method
10
- describe "#exist?" do
11
- it "returns true if the 'span' exists" do
12
- expect(browser.span(id: "lead")).to exist
13
- expect(browser.span(id: /lead/)).to exist
14
- expect(browser.span(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
- expect(browser.span(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
- expect(browser.span(class: "lead")).to exist
17
- expect(browser.span(class: /lead/)).to exist
18
- expect(browser.span(index: 0)).to exist
19
- expect(browser.span(xpath: "//span[@id='lead']")).to exist
20
- end
21
-
22
- it "returns the first span if given no args" do
23
- expect(browser.span).to exist
24
- end
25
-
26
- it "returns false if the element doesn't exist" do
27
- expect(browser.span(id: "no_such_id")).to_not exist
28
- expect(browser.span(id: /no_such_id/)).to_not exist
29
- expect(browser.span(text: "no_such_text")).to_not exist
30
- msg = /:text locator with RegExp values to find elements based on only visible text is deprecated. Use :visible_text instead./
31
- expect { expect(browser.span(text: /no_such_text/)).to_not exist }.to output(msg).to_stdout_from_any_process
32
- expect(browser.span(class: "no_such_class")).to_not exist
33
- expect(browser.span(class: /no_such_class/)).to_not exist
34
- expect(browser.span(index: 1337)).to_not exist
35
- expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
36
- end
37
-
38
- it "raises TypeError when 'what' argument is invalid" do
39
- expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
40
- end
41
- end
42
-
43
- # Attribute methods
44
- describe "#class_name" do
45
- it "returns the class attribute" do
46
- expect(browser.span(index: 0).class_name).to eq 'lead'
47
- end
48
-
49
- it "returns an empty string if the element exists and the attribute doesn't" do
50
- expect(browser.span(index: 2).class_name).to eq ''
51
- end
52
-
53
- it "raises UnknownObjectException if the span doesn't exist" do
54
- expect { browser.span(id: 'no_such_id').class_name }.to raise_unknown_object_exception
55
- end
56
- end
57
-
58
- describe "#id" do
59
- it "returns the id attribute" do
60
- expect(browser.span(index: 0).id).to eq "lead"
61
- end
62
-
63
- it "returns an empty string if the element exists and the attribute doesn't" do
64
- expect(browser.span(index: 2).id).to eq ''
65
- end
66
-
67
- it "raises UnknownObjectException if the span doesn't exist" do
68
- expect { browser.span(id: "no_such_id").id }.to raise_unknown_object_exception
69
- expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
70
- end
71
- end
72
-
73
- describe "#title" do
74
- it "returns the title attribute" do
75
- expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
76
- end
77
-
78
- it "returns an empty string if the element exists and the attribute doesn't" do
79
- expect(browser.span(index: 2).title).to eq ''
80
- end
81
-
82
- it "raises UnknownObjectException if the span doesn't exist" do
83
- expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
84
- expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
85
- end
86
- end
87
-
88
- describe "#text" do
89
- it "returns the text of the span" do
90
- expect(browser.span(index: 1).text).to eq 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.'
91
- end
92
-
93
- it "returns an empty string if the element doesn't contain any text" do
94
- expect(browser.span(index: 4).text).to eq ''
95
- end
96
-
97
- it "raises UnknownObjectException if the span doesn't exist" do
98
- expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
99
- expect { browser.span(:xpath , "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
100
- end
101
- end
102
-
103
- describe "#respond_to?" do
104
- it "returns true for all attribute methods" do
105
- expect(browser.span(index: 0)).to respond_to(:class_name)
106
- expect(browser.span(index: 0)).to respond_to(:id)
107
- expect(browser.span(index: 0)).to respond_to(:title)
108
- expect(browser.span(index: 0)).to respond_to(:text)
109
- end
110
- end
111
-
112
- # Other
113
- not_compliant_on :headless do
114
- describe "#click" do
115
- it "fires events" do
116
- expect(browser.span(class: 'footer').text).to_not include('Javascript')
117
- browser.span(class: 'footer').click
118
- expect(browser.span(class: 'footer').text).to include('Javascript')
119
- end
120
-
121
- it "raises UnknownObjectException if the span doesn't exist" do
122
- expect { browser.span(id: "no_such_id").click }.to raise_unknown_object_exception
123
- expect { browser.span(title: "no_such_title").click }.to raise_unknown_object_exception
124
- end
125
- end
126
- end
127
-
128
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Span" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
+ end
8
+
9
+ # Exists method
10
+ describe "#exist?" do
11
+ it "returns true if the 'span' exists" do
12
+ expect(browser.span(id: "lead")).to exist
13
+ expect(browser.span(id: /lead/)).to exist
14
+ expect(browser.span(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
+ expect(browser.span(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
+ expect(browser.span(class: "lead")).to exist
17
+ expect(browser.span(class: /lead/)).to exist
18
+ expect(browser.span(index: 0)).to exist
19
+ expect(browser.span(xpath: "//span[@id='lead']")).to exist
20
+ end
21
+
22
+ it "returns the first span if given no args" do
23
+ expect(browser.span).to exist
24
+ end
25
+
26
+ it "returns false if the element doesn't exist" do
27
+ expect(browser.span(id: "no_such_id")).to_not exist
28
+ expect(browser.span(id: /no_such_id/)).to_not exist
29
+ expect(browser.span(text: "no_such_text")).to_not exist
30
+ msg = /:text locator with RegExp values to find elements based on only visible text is deprecated. Use :visible_text instead./
31
+ expect { expect(browser.span(text: /no_such_text/)).to_not exist }.to output(msg).to_stdout_from_any_process
32
+ expect(browser.span(class: "no_such_class")).to_not exist
33
+ expect(browser.span(class: /no_such_class/)).to_not exist
34
+ expect(browser.span(index: 1337)).to_not exist
35
+ expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
36
+ end
37
+
38
+ it "raises TypeError when 'what' argument is invalid" do
39
+ expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
40
+ end
41
+ end
42
+
43
+ # Attribute methods
44
+ describe "#class_name" do
45
+ it "returns the class attribute" do
46
+ expect(browser.span(index: 0).class_name).to eq 'lead'
47
+ end
48
+
49
+ it "returns an empty string if the element exists and the attribute doesn't" do
50
+ expect(browser.span(index: 2).class_name).to eq ''
51
+ end
52
+
53
+ it "raises UnknownObjectException if the span doesn't exist" do
54
+ expect { browser.span(id: 'no_such_id').class_name }.to raise_unknown_object_exception
55
+ end
56
+ end
57
+
58
+ describe "#id" do
59
+ it "returns the id attribute" do
60
+ expect(browser.span(index: 0).id).to eq "lead"
61
+ end
62
+
63
+ it "returns an empty string if the element exists and the attribute doesn't" do
64
+ expect(browser.span(index: 2).id).to eq ''
65
+ end
66
+
67
+ it "raises UnknownObjectException if the span doesn't exist" do
68
+ expect { browser.span(id: "no_such_id").id }.to raise_unknown_object_exception
69
+ expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
70
+ end
71
+ end
72
+
73
+ describe "#title" do
74
+ it "returns the title attribute" do
75
+ expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
76
+ end
77
+
78
+ it "returns an empty string if the element exists and the attribute doesn't" do
79
+ expect(browser.span(index: 2).title).to eq ''
80
+ end
81
+
82
+ it "raises UnknownObjectException if the span doesn't exist" do
83
+ expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
84
+ expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
85
+ end
86
+ end
87
+
88
+ describe "#text" do
89
+ it "returns the text of the span" do
90
+ expect(browser.span(index: 1).text).to eq 'Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.'
91
+ end
92
+
93
+ it "returns an empty string if the element doesn't contain any text" do
94
+ expect(browser.span(index: 4).text).to eq ''
95
+ end
96
+
97
+ it "raises UnknownObjectException if the span doesn't exist" do
98
+ expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
99
+ expect { browser.span(:xpath , "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
100
+ end
101
+ end
102
+
103
+ describe "#respond_to?" do
104
+ it "returns true for all attribute methods" do
105
+ expect(browser.span(index: 0)).to respond_to(:class_name)
106
+ expect(browser.span(index: 0)).to respond_to(:id)
107
+ expect(browser.span(index: 0)).to respond_to(:title)
108
+ expect(browser.span(index: 0)).to respond_to(:text)
109
+ end
110
+ end
111
+
112
+ # Other
113
+ not_compliant_on :headless do
114
+ describe "#click" do
115
+ it "fires events" do
116
+ expect(browser.span(class: 'footer').text).to_not include('Javascript')
117
+ browser.span(class: 'footer').click
118
+ expect(browser.span(class: 'footer').text).to include('Javascript')
119
+ end
120
+
121
+ it "raises UnknownObjectException if the span doesn't exist" do
122
+ expect { browser.span(id: "no_such_id").click }.to raise_unknown_object_exception
123
+ expect { browser.span(title: "no_such_title").click }.to raise_unknown_object_exception
124
+ end
125
+ end
126
+ end
127
+
128
+ end
@@ -1,40 +1,40 @@
1
- require "watirspec_helper"
2
-
3
- describe "Spans" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
- end
8
-
9
- describe "with selectors" do
10
- it "returns the matching elements" do
11
- expect(browser.spans(class: "footer").to_a).to eq [browser.span(class: "footer")]
12
- end
13
- end
14
-
15
- describe "#length" do
16
- it "returns the number of spans" do
17
- expect(browser.spans.length).to eq 7
18
- end
19
- end
20
-
21
- describe "#[]" do
22
- it "returns the p at the given index" do
23
- expect(browser.spans[0].id).to eq "lead"
24
- end
25
- end
26
-
27
- describe "#each" do
28
- it "iterates through spans correctly" do
29
- count = 0
30
-
31
- browser.spans.each_with_index do |s, index|
32
- expect(s.id).to eq browser.span(index: index).id
33
- count += 1
34
- end
35
-
36
- expect(count).to be > 0
37
- end
38
- end
39
-
40
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Spans" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
+ end
8
+
9
+ describe "with selectors" do
10
+ it "returns the matching elements" do
11
+ expect(browser.spans(class: "footer").to_a).to eq [browser.span(class: "footer")]
12
+ end
13
+ end
14
+
15
+ describe "#length" do
16
+ it "returns the number of spans" do
17
+ expect(browser.spans.length).to eq 7
18
+ end
19
+ end
20
+
21
+ describe "#[]" do
22
+ it "returns the p at the given index" do
23
+ expect(browser.spans[0].id).to eq "lead"
24
+ end
25
+ end
26
+
27
+ describe "#each" do
28
+ it "iterates through spans correctly" do
29
+ count = 0
30
+
31
+ browser.spans.each_with_index do |s, index|
32
+ expect(s.id).to eq browser.span(index: index).id
33
+ count += 1
34
+ end
35
+
36
+ expect(count).to be > 0
37
+ end
38
+ end
39
+
40
+ end
@@ -1,88 +1,88 @@
1
- require "watirspec_helper"
2
-
3
- describe "Strong" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
- end
8
-
9
- # Exists method
10
- describe "#exist?" do
11
- it "returns true if the element exists" do
12
- expect(browser.strong(id: "descartes")).to exist
13
- expect(browser.strong(id: /descartes/)).to exist
14
- expect(browser.strong(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
- expect(browser.strong(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
- expect(browser.strong(class: "descartes")).to exist
17
- expect(browser.strong(class: /descartes/)).to exist
18
- expect(browser.strong(index: 0)).to exist
19
- expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
20
- end
21
-
22
- it "returns the first strong if given no args" do
23
- expect(browser.strong).to exist
24
- end
25
-
26
- it "returns false if the element doesn't exist" do
27
- expect(browser.strong(id: "no_such_id")).to_not exist
28
- expect(browser.strong(id: /no_such_id/)).to_not exist
29
- expect(browser.strong(text: "no_such_text")).to_not exist
30
- expect(browser.strong(text: /no_such_text/)).to_not exist
31
- expect(browser.strong(class: "no_such_class")).to_not exist
32
- expect(browser.strong(class: /no_such_class/)).to_not exist
33
- expect(browser.strong(index: 1337)).to_not exist
34
- expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
35
- end
36
-
37
- it "raises TypeError when 'what' argument is invalid" do
38
- expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
39
- end
40
- end
41
-
42
- # Attribute methods
43
- describe "#class_name" do
44
- it "returns the class attribute" do
45
- expect(browser.strong(index: 0).class_name).to eq 'descartes'
46
- end
47
-
48
- it "returns an empty string if the element exists and the attribute doesn't" do
49
- expect(browser.strong(index: 1).class_name).to eq ''
50
- end
51
-
52
- it "raises UnknownObjectException if the element doesn't exist" do
53
- expect { browser.strong(id: 'no_such_id').class_name }.to raise_unknown_object_exception
54
- end
55
- end
56
-
57
- describe "#id" do
58
- it "returns the id attribute" do
59
- expect(browser.strong(index: 0).id).to eq "descartes"
60
- end
61
-
62
- it "raises UnknownObjectException if the element doesn't exist" do
63
- expect { browser.strong(id: "no_such_id").id }.to raise_unknown_object_exception
64
- expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
65
- end
66
- end
67
-
68
- describe "#text" do
69
- it "returns the text of the element" do
70
- expect(browser.strong(index: 0).text).to eq "Dubito, ergo cogito, ergo sum."
71
- end
72
-
73
- it "raises UnknownObjectException if the element doesn't exist" do
74
- expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
75
- expect { browser.strong(:xpath , "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
76
- end
77
- end
78
-
79
- describe "#respond_to?" do
80
- it "returns true for all attribute methods" do
81
- expect(browser.strong(index: 0)).to respond_to(:class_name)
82
- expect(browser.strong(index: 0)).to respond_to(:id)
83
- expect(browser.strong(index: 0)).to respond_to(:text)
84
- end
85
- end
86
-
87
- # Other
88
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Strong" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
+ end
8
+
9
+ # Exists method
10
+ describe "#exist?" do
11
+ it "returns true if the element exists" do
12
+ expect(browser.strong(id: "descartes")).to exist
13
+ expect(browser.strong(id: /descartes/)).to exist
14
+ expect(browser.strong(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
+ expect(browser.strong(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
+ expect(browser.strong(class: "descartes")).to exist
17
+ expect(browser.strong(class: /descartes/)).to exist
18
+ expect(browser.strong(index: 0)).to exist
19
+ expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
20
+ end
21
+
22
+ it "returns the first strong if given no args" do
23
+ expect(browser.strong).to exist
24
+ end
25
+
26
+ it "returns false if the element doesn't exist" do
27
+ expect(browser.strong(id: "no_such_id")).to_not exist
28
+ expect(browser.strong(id: /no_such_id/)).to_not exist
29
+ expect(browser.strong(text: "no_such_text")).to_not exist
30
+ expect(browser.strong(text: /no_such_text/)).to_not exist
31
+ expect(browser.strong(class: "no_such_class")).to_not exist
32
+ expect(browser.strong(class: /no_such_class/)).to_not exist
33
+ expect(browser.strong(index: 1337)).to_not exist
34
+ expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
35
+ end
36
+
37
+ it "raises TypeError when 'what' argument is invalid" do
38
+ expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
39
+ end
40
+ end
41
+
42
+ # Attribute methods
43
+ describe "#class_name" do
44
+ it "returns the class attribute" do
45
+ expect(browser.strong(index: 0).class_name).to eq 'descartes'
46
+ end
47
+
48
+ it "returns an empty string if the element exists and the attribute doesn't" do
49
+ expect(browser.strong(index: 1).class_name).to eq ''
50
+ end
51
+
52
+ it "raises UnknownObjectException if the element doesn't exist" do
53
+ expect { browser.strong(id: 'no_such_id').class_name }.to raise_unknown_object_exception
54
+ end
55
+ end
56
+
57
+ describe "#id" do
58
+ it "returns the id attribute" do
59
+ expect(browser.strong(index: 0).id).to eq "descartes"
60
+ end
61
+
62
+ it "raises UnknownObjectException if the element doesn't exist" do
63
+ expect { browser.strong(id: "no_such_id").id }.to raise_unknown_object_exception
64
+ expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
65
+ end
66
+ end
67
+
68
+ describe "#text" do
69
+ it "returns the text of the element" do
70
+ expect(browser.strong(index: 0).text).to eq "Dubito, ergo cogito, ergo sum."
71
+ end
72
+
73
+ it "raises UnknownObjectException if the element doesn't exist" do
74
+ expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
75
+ expect { browser.strong(:xpath , "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
76
+ end
77
+ end
78
+
79
+ describe "#respond_to?" do
80
+ it "returns true for all attribute methods" do
81
+ expect(browser.strong(index: 0)).to respond_to(:class_name)
82
+ expect(browser.strong(index: 0)).to respond_to(:id)
83
+ expect(browser.strong(index: 0)).to respond_to(:text)
84
+ end
85
+ end
86
+
87
+ # Other
88
+ end