watir 6.10.1 → 6.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (279) 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 +4 -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 +2 -2
  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/selector_builder.rb +150 -150
  95. data/lib/watir/locators/element/selector_builder/xpath.rb +119 -119
  96. data/lib/watir/locators/element/validator.rb +18 -18
  97. data/lib/watir/locators/row/locator.rb +15 -15
  98. data/lib/watir/locators/row/selector_builder.rb +29 -29
  99. data/lib/watir/locators/text_area/locator.rb +13 -13
  100. data/lib/watir/locators/text_area/selector_builder.rb +22 -22
  101. data/lib/watir/locators/text_field/locator.rb +30 -30
  102. data/lib/watir/locators/text_field/selector_builder.rb +31 -31
  103. data/lib/watir/locators/text_field/selector_builder/xpath.rb +17 -17
  104. data/lib/watir/locators/text_field/validator.rb +12 -12
  105. data/lib/watir/logger.rb +109 -109
  106. data/lib/watir/radio_set.rb +231 -231
  107. data/lib/watir/row_container.rb +36 -36
  108. data/lib/watir/screenshot.rb +50 -50
  109. data/lib/watir/user_editable.rb +56 -56
  110. data/lib/watir/wait.rb +200 -200
  111. data/lib/watir/wait/timer.rb +52 -52
  112. data/lib/watir/window.rb +257 -257
  113. data/lib/watir/xpath_support.rb +20 -20
  114. data/lib/watirspec.rb +86 -86
  115. data/lib/watirspec/guards.rb +60 -60
  116. data/lib/watirspec/implementation.rb +51 -51
  117. data/lib/watirspec/rake_tasks.rb +115 -115
  118. data/lib/watirspec/remote_server.rb +38 -38
  119. data/lib/watirspec/runner.rb +53 -53
  120. data/lib/watirspec/server.rb +99 -99
  121. data/lib/watirspec/server/app.rb +76 -76
  122. data/spec/browser_spec.rb +278 -278
  123. data/spec/click_spec.rb +19 -19
  124. data/spec/container_spec.rb +34 -34
  125. data/spec/element_locator_spec.rb +517 -517
  126. data/spec/element_spec.rb +158 -158
  127. data/spec/implementation_spec.rb +24 -24
  128. data/spec/input_spec.rb +14 -14
  129. data/spec/locator_spec_helper.rb +55 -55
  130. data/spec/logger_spec.rb +46 -46
  131. data/spec/spec_helper.rb +22 -22
  132. data/spec/special_chars_spec.rb +13 -13
  133. data/spec/watirspec/adjacent_spec.rb +227 -227
  134. data/spec/watirspec/after_hooks_spec.rb +182 -182
  135. data/spec/watirspec/alert_spec.rb +108 -108
  136. data/spec/watirspec/attributes_spec.rb +16 -16
  137. data/spec/watirspec/browser_spec.rb +281 -281
  138. data/spec/watirspec/cookies_spec.rb +154 -154
  139. data/spec/watirspec/drag_and_drop_spec.rb +49 -49
  140. data/spec/watirspec/element_hidden_spec.rb +75 -75
  141. data/spec/watirspec/elements/area_spec.rb +72 -72
  142. data/spec/watirspec/elements/areas_spec.rb +42 -42
  143. data/spec/watirspec/elements/button_spec.rb +277 -277
  144. data/spec/watirspec/elements/buttons_spec.rb +55 -55
  145. data/spec/watirspec/elements/checkbox_spec.rb +275 -275
  146. data/spec/watirspec/elements/checkboxes_spec.rb +44 -44
  147. data/spec/watirspec/elements/collections_spec.rb +52 -52
  148. data/spec/watirspec/elements/dd_spec.rb +124 -124
  149. data/spec/watirspec/elements/dds_spec.rb +42 -42
  150. data/spec/watirspec/elements/del_spec.rb +126 -126
  151. data/spec/watirspec/elements/dels_spec.rb +40 -40
  152. data/spec/watirspec/elements/div_spec.rb +245 -245
  153. data/spec/watirspec/elements/divs_spec.rb +42 -42
  154. data/spec/watirspec/elements/dl_spec.rb +142 -142
  155. data/spec/watirspec/elements/dls_spec.rb +43 -43
  156. data/spec/watirspec/elements/dt_spec.rb +122 -122
  157. data/spec/watirspec/elements/dts_spec.rb +42 -42
  158. data/spec/watirspec/elements/element_spec.rb +483 -483
  159. data/spec/watirspec/elements/elements_spec.rb +47 -47
  160. data/spec/watirspec/elements/em_spec.rb +96 -96
  161. data/spec/watirspec/elements/ems_spec.rb +43 -43
  162. data/spec/watirspec/elements/filefield_spec.rb +170 -170
  163. data/spec/watirspec/elements/filefields_spec.rb +43 -43
  164. data/spec/watirspec/elements/font_spec.rb +29 -29
  165. data/spec/watirspec/elements/form_spec.rb +66 -66
  166. data/spec/watirspec/elements/forms_spec.rb +46 -46
  167. data/spec/watirspec/elements/frame_spec.rb +123 -123
  168. data/spec/watirspec/elements/frames_spec.rb +41 -41
  169. data/spec/watirspec/elements/hidden_spec.rb +104 -104
  170. data/spec/watirspec/elements/hiddens_spec.rb +43 -43
  171. data/spec/watirspec/elements/hn_spec.rb +92 -92
  172. data/spec/watirspec/elements/hns_spec.rb +38 -38
  173. data/spec/watirspec/elements/iframe_spec.rb +3 -0
  174. data/spec/watirspec/elements/iframes_spec.rb +47 -47
  175. data/spec/watirspec/elements/image_spec.rb +158 -158
  176. data/spec/watirspec/elements/images_spec.rb +40 -40
  177. data/spec/watirspec/elements/ins_spec.rb +127 -127
  178. data/spec/watirspec/elements/inses_spec.rb +40 -40
  179. data/spec/watirspec/elements/label_spec.rb +75 -75
  180. data/spec/watirspec/elements/labels_spec.rb +40 -40
  181. data/spec/watirspec/elements/li_spec.rb +111 -111
  182. data/spec/watirspec/elements/link_spec.rb +171 -171
  183. data/spec/watirspec/elements/links_spec.rb +44 -44
  184. data/spec/watirspec/elements/lis_spec.rb +42 -42
  185. data/spec/watirspec/elements/list_spec.rb +32 -32
  186. data/spec/watirspec/elements/map_spec.rb +75 -75
  187. data/spec/watirspec/elements/maps_spec.rb +41 -41
  188. data/spec/watirspec/elements/meta_spec.rb +23 -23
  189. data/spec/watirspec/elements/metas_spec.rb +40 -40
  190. data/spec/watirspec/elements/ol_spec.rb +87 -87
  191. data/spec/watirspec/elements/ols_spec.rb +40 -40
  192. data/spec/watirspec/elements/option_spec.rb +121 -121
  193. data/spec/watirspec/elements/p_spec.rb +111 -111
  194. data/spec/watirspec/elements/pre_spec.rb +111 -111
  195. data/spec/watirspec/elements/pres_spec.rb +40 -40
  196. data/spec/watirspec/elements/ps_spec.rb +40 -40
  197. data/spec/watirspec/elements/radio_spec.rb +273 -273
  198. data/spec/watirspec/elements/radios_spec.rb +43 -43
  199. data/spec/watirspec/elements/select_list_spec.rb +553 -553
  200. data/spec/watirspec/elements/select_lists_spec.rb +46 -46
  201. data/spec/watirspec/elements/span_spec.rb +128 -128
  202. data/spec/watirspec/elements/spans_spec.rb +40 -40
  203. data/spec/watirspec/elements/strong_spec.rb +88 -88
  204. data/spec/watirspec/elements/strongs_spec.rb +43 -43
  205. data/spec/watirspec/elements/table_nesting_spec.rb +51 -51
  206. data/spec/watirspec/elements/table_spec.rb +156 -156
  207. data/spec/watirspec/elements/tables_spec.rb +42 -42
  208. data/spec/watirspec/elements/tbody_spec.rb +93 -93
  209. data/spec/watirspec/elements/tbodys_spec.rb +62 -62
  210. data/spec/watirspec/elements/td_spec.rb +93 -93
  211. data/spec/watirspec/elements/tds_spec.rb +53 -53
  212. data/spec/watirspec/elements/text_field_spec.rb +360 -360
  213. data/spec/watirspec/elements/text_fields_spec.rb +44 -44
  214. data/spec/watirspec/elements/textarea_spec.rb +26 -26
  215. data/spec/watirspec/elements/textareas_spec.rb +24 -24
  216. data/spec/watirspec/elements/tfoot_spec.rb +86 -86
  217. data/spec/watirspec/elements/tfoots_spec.rb +68 -68
  218. data/spec/watirspec/elements/thead_spec.rb +86 -86
  219. data/spec/watirspec/elements/theads_spec.rb +68 -68
  220. data/spec/watirspec/elements/tr_spec.rb +78 -78
  221. data/spec/watirspec/elements/trs_spec.rb +61 -61
  222. data/spec/watirspec/elements/ul_spec.rb +76 -76
  223. data/spec/watirspec/elements/uls_spec.rb +39 -39
  224. data/spec/watirspec/html/alerts.html +12 -12
  225. data/spec/watirspec/html/aria_attributes.html +9 -9
  226. data/spec/watirspec/html/class_locator.html +8 -8
  227. data/spec/watirspec/html/clicks.html +19 -19
  228. data/spec/watirspec/html/closeable.html +12 -12
  229. data/spec/watirspec/html/collections.html +14 -14
  230. data/spec/watirspec/html/css/jquery-ui-1.8.17.custom.css +286 -286
  231. data/spec/watirspec/html/data_attributes.html +9 -9
  232. data/spec/watirspec/html/definition_lists.html +47 -47
  233. data/spec/watirspec/html/drag_and_drop.html +106 -106
  234. data/spec/watirspec/html/font.html +10 -10
  235. data/spec/watirspec/html/forms_with_input_elements.html +174 -174
  236. data/spec/watirspec/html/frame_1.html +22 -22
  237. data/spec/watirspec/html/frame_2.html +15 -15
  238. data/spec/watirspec/html/frames.html +10 -10
  239. data/spec/watirspec/html/hover.html +11 -11
  240. data/spec/watirspec/html/iframe_1.html +22 -22
  241. data/spec/watirspec/html/iframes.html +12 -12
  242. data/spec/watirspec/html/images.html +27 -27
  243. data/spec/watirspec/html/inner_outer.html +4 -4
  244. data/spec/watirspec/html/javascript/angular.min.js +331 -331
  245. data/spec/watirspec/html/javascript/helpers.js +16 -16
  246. data/spec/watirspec/html/javascript/jquery-1.7.1.min.js +3 -3
  247. data/spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js +67 -67
  248. data/spec/watirspec/html/keylogger.html +14 -14
  249. data/spec/watirspec/html/modal_dialog.html +9 -9
  250. data/spec/watirspec/html/multiple_ids.html +14 -14
  251. data/spec/watirspec/html/nested_elements.html +33 -33
  252. data/spec/watirspec/html/nested_frame_2.html +9 -9
  253. data/spec/watirspec/html/nested_frame_3.html +14 -14
  254. data/spec/watirspec/html/nested_frames.html +10 -10
  255. data/spec/watirspec/html/nested_iframe_2.html +12 -12
  256. data/spec/watirspec/html/nested_iframes.html +13 -13
  257. data/spec/watirspec/html/nested_tables.html +202 -202
  258. data/spec/watirspec/html/non_control_elements.html +140 -140
  259. data/spec/watirspec/html/removed_element.html +24 -24
  260. data/spec/watirspec/html/right_click.html +10 -10
  261. data/spec/watirspec/html/special_chars.html +11 -11
  262. data/spec/watirspec/html/tables.html +120 -120
  263. data/spec/watirspec/html/timeout_window_location.html +19 -19
  264. data/spec/watirspec/html/uneven_table.html +20 -20
  265. data/spec/watirspec/html/wait.html +84 -84
  266. data/spec/watirspec/html/window_switching.html +11 -11
  267. data/spec/watirspec/radio_set_spec.rb +336 -336
  268. data/spec/watirspec/relaxed_locate_spec.rb +99 -99
  269. data/spec/watirspec/screenshot_spec.rb +29 -29
  270. data/spec/watirspec/support/raise_exception_matchers.rb +36 -36
  271. data/spec/watirspec/wait_spec.rb +381 -381
  272. data/spec/watirspec/window_switching_spec.rb +415 -415
  273. data/spec/watirspec_helper.rb +161 -161
  274. data/support/appveyor.cmd +9 -9
  275. data/support/doctest_helper.rb +101 -101
  276. data/support/travis.sh +11 -11
  277. data/support/version_differ.rb +59 -59
  278. data/watir.gemspec +1 -1
  279. metadata +169 -3
@@ -1,111 +1,111 @@
1
- require "watirspec_helper"
2
-
3
- describe "P" 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 'p' exists" do
12
- expect(browser.p(id: "lead")).to exist
13
- expect(browser.p(id: /lead/)).to exist
14
- expect(browser.p(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
- expect(browser.p(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
- expect(browser.p(class: "lead")).to exist
17
- expect(browser.p(class: /lead/)).to exist
18
- expect(browser.p(index: 0)).to exist
19
- expect(browser.p(xpath: "//p[@id='lead']")).to exist
20
- end
21
-
22
- it "returns the first p if given no args" do
23
- expect(browser.p).to exist
24
- end
25
-
26
- it "returns false if the 'p' doesn't exist" do
27
- expect(browser.p(id: "no_such_id")).to_not exist
28
- expect(browser.p(id: /no_such_id/)).to_not exist
29
- expect(browser.p(text: "no_such_text")).to_not exist
30
- expect(browser.p(text: /no_such_text/)).to_not exist
31
- expect(browser.p(class: "no_such_class")).to_not exist
32
- expect(browser.p(class: /no_such_class/)).to_not exist
33
- expect(browser.p(index: 1337)).to_not exist
34
- expect(browser.p(xpath: "//p[@id='no_such_id']")).to_not exist
35
- end
36
-
37
- it "raises TypeError when 'what' argument is invalid" do
38
- expect { browser.p(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.p(index: 0).class_name).to eq 'lead'
46
- end
47
-
48
- it "returns an empty string if the element exists and the attribute doesn't" do
49
- expect(browser.p(index: 2).class_name).to eq ''
50
- end
51
-
52
- it "raises UnknownObjectException if the p doesn't exist" do
53
- expect { browser.p(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.p(index: 0).id).to eq "lead"
60
- end
61
-
62
- it "returns an empty string if the element exists and the attribute doesn't" do
63
- expect(browser.p(index: 2).id).to eq ''
64
- end
65
-
66
- it "raises UnknownObjectException if the p doesn't exist" do
67
- expect { browser.p(id: "no_such_id").id }.to raise_unknown_object_exception
68
- expect { browser.p(index: 1337).id }.to raise_unknown_object_exception
69
- end
70
- end
71
-
72
- describe "#title" do
73
- it "returns the title attribute" do
74
- expect(browser.p(index: 0).title).to eq 'Lorem ipsum'
75
- end
76
-
77
- it "returns an empty string if the element exists and the attribute doesn't" do
78
- expect(browser.p(index: 2).title).to eq ''
79
- end
80
-
81
- it "raises UnknownObjectException if the p doesn't exist" do
82
- expect { browser.p(id: 'no_such_id').title }.to raise_unknown_object_exception
83
- expect { browser.p(xpath: "//p[@id='no_such_id']").title }.to raise_unknown_object_exception
84
- end
85
- end
86
-
87
- describe "#text" do
88
- it "returns the text of the p" do
89
- expect(browser.p(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.'
90
- end
91
-
92
- it "returns an empty string if the element doesn't contain any text" do
93
- expect(browser.p(index: 4).text).to eq ''
94
- end
95
-
96
- it "raises UnknownObjectException if the p doesn't exist" do
97
- expect { browser.p(id: 'no_such_id').text }.to raise_unknown_object_exception
98
- expect { browser.p(:xpath , "//p[@id='no_such_id']").text }.to raise_unknown_object_exception
99
- end
100
- end
101
-
102
- describe "#respond_to?" do
103
- it "returns true for all attribute methods" do
104
- expect(browser.p(index: 0)).to respond_to(:class_name)
105
- expect(browser.p(index: 0)).to respond_to(:id)
106
- expect(browser.p(index: 0)).to respond_to(:title)
107
- expect(browser.p(index: 0)).to respond_to(:text)
108
- end
109
- end
110
-
111
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "P" 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 'p' exists" do
12
+ expect(browser.p(id: "lead")).to exist
13
+ expect(browser.p(id: /lead/)).to exist
14
+ expect(browser.p(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
+ expect(browser.p(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
+ expect(browser.p(class: "lead")).to exist
17
+ expect(browser.p(class: /lead/)).to exist
18
+ expect(browser.p(index: 0)).to exist
19
+ expect(browser.p(xpath: "//p[@id='lead']")).to exist
20
+ end
21
+
22
+ it "returns the first p if given no args" do
23
+ expect(browser.p).to exist
24
+ end
25
+
26
+ it "returns false if the 'p' doesn't exist" do
27
+ expect(browser.p(id: "no_such_id")).to_not exist
28
+ expect(browser.p(id: /no_such_id/)).to_not exist
29
+ expect(browser.p(text: "no_such_text")).to_not exist
30
+ expect(browser.p(text: /no_such_text/)).to_not exist
31
+ expect(browser.p(class: "no_such_class")).to_not exist
32
+ expect(browser.p(class: /no_such_class/)).to_not exist
33
+ expect(browser.p(index: 1337)).to_not exist
34
+ expect(browser.p(xpath: "//p[@id='no_such_id']")).to_not exist
35
+ end
36
+
37
+ it "raises TypeError when 'what' argument is invalid" do
38
+ expect { browser.p(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.p(index: 0).class_name).to eq 'lead'
46
+ end
47
+
48
+ it "returns an empty string if the element exists and the attribute doesn't" do
49
+ expect(browser.p(index: 2).class_name).to eq ''
50
+ end
51
+
52
+ it "raises UnknownObjectException if the p doesn't exist" do
53
+ expect { browser.p(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.p(index: 0).id).to eq "lead"
60
+ end
61
+
62
+ it "returns an empty string if the element exists and the attribute doesn't" do
63
+ expect(browser.p(index: 2).id).to eq ''
64
+ end
65
+
66
+ it "raises UnknownObjectException if the p doesn't exist" do
67
+ expect { browser.p(id: "no_such_id").id }.to raise_unknown_object_exception
68
+ expect { browser.p(index: 1337).id }.to raise_unknown_object_exception
69
+ end
70
+ end
71
+
72
+ describe "#title" do
73
+ it "returns the title attribute" do
74
+ expect(browser.p(index: 0).title).to eq 'Lorem ipsum'
75
+ end
76
+
77
+ it "returns an empty string if the element exists and the attribute doesn't" do
78
+ expect(browser.p(index: 2).title).to eq ''
79
+ end
80
+
81
+ it "raises UnknownObjectException if the p doesn't exist" do
82
+ expect { browser.p(id: 'no_such_id').title }.to raise_unknown_object_exception
83
+ expect { browser.p(xpath: "//p[@id='no_such_id']").title }.to raise_unknown_object_exception
84
+ end
85
+ end
86
+
87
+ describe "#text" do
88
+ it "returns the text of the p" do
89
+ expect(browser.p(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.'
90
+ end
91
+
92
+ it "returns an empty string if the element doesn't contain any text" do
93
+ expect(browser.p(index: 4).text).to eq ''
94
+ end
95
+
96
+ it "raises UnknownObjectException if the p doesn't exist" do
97
+ expect { browser.p(id: 'no_such_id').text }.to raise_unknown_object_exception
98
+ expect { browser.p(:xpath , "//p[@id='no_such_id']").text }.to raise_unknown_object_exception
99
+ end
100
+ end
101
+
102
+ describe "#respond_to?" do
103
+ it "returns true for all attribute methods" do
104
+ expect(browser.p(index: 0)).to respond_to(:class_name)
105
+ expect(browser.p(index: 0)).to respond_to(:id)
106
+ expect(browser.p(index: 0)).to respond_to(:title)
107
+ expect(browser.p(index: 0)).to respond_to(:text)
108
+ end
109
+ end
110
+
111
+ end
@@ -1,111 +1,111 @@
1
- require "watirspec_helper"
2
-
3
- describe "Pre" 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 'p' exists" do
12
- expect(browser.pre(id: "rspec")).to exist
13
- expect(browser.pre(id: /rspec/)).to exist
14
- expect(browser.pre(text: 'browser.pre(id: "rspec").should exist')).to exist
15
- expect(browser.pre(text: /browser\.pre/)).to exist
16
- expect(browser.pre(class: "ruby")).to exist
17
- expect(browser.pre(class: /ruby/)).to exist
18
- expect(browser.pre(index: 0)).to exist
19
- expect(browser.pre(xpath: "//pre[@id='rspec']")).to exist
20
- end
21
-
22
- it "returns the first pre if given no args" do
23
- expect(browser.pre).to exist
24
- end
25
-
26
- it "returns false if the 'p' doesn't exist" do
27
- expect(browser.pre(id: "no_such_id")).to_not exist
28
- expect(browser.pre(id: /no_such_id/)).to_not exist
29
- expect(browser.pre(text: "no_such_text")).to_not exist
30
- expect(browser.pre(text: /no_such_text/)).to_not exist
31
- expect(browser.pre(class: "no_such_class")).to_not exist
32
- expect(browser.pre(class: /no_such_class/)).to_not exist
33
- expect(browser.pre(index: 1337)).to_not exist
34
- expect(browser.pre(xpath: "//pre[@id='no_such_id']")).to_not exist
35
- end
36
-
37
- it "raises TypeError when 'what' argument is invalid" do
38
- expect { browser.pre(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.pre(id: 'rspec').class_name).to eq 'ruby'
46
- end
47
-
48
- it "returns an empty string if the element exists and the attribute doesn't" do
49
- expect(browser.pre(index: 0).class_name).to eq ''
50
- end
51
-
52
- it "raises UnknownObjectException if the p doesn't exist" do
53
- expect { browser.pre(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.pre(class: 'ruby').id).to eq "rspec"
60
- end
61
-
62
- it "returns an empty string if the element exists and the attribute doesn't" do
63
- expect(browser.pre(index: 0).id).to eq ''
64
- end
65
-
66
- it "raises UnknownObjectException if the pre doesn't exist" do
67
- expect { browser.pre(id: "no_such_id").id }.to raise_unknown_object_exception
68
- expect { browser.pre(index: 1337).id }.to raise_unknown_object_exception
69
- end
70
- end
71
-
72
- describe "#title" do
73
- it "returns the title attribute" do
74
- expect(browser.pre(class: 'brainfuck').title).to eq 'The brainfuck language is an esoteric programming language noted for its extreme minimalism'
75
- end
76
-
77
- it "returns an empty string if the element exists and the attribute doesn't" do
78
- expect(browser.pre(index: 0).title).to eq ''
79
- end
80
-
81
- it "raises UnknownObjectException if the pre doesn't exist" do
82
- expect { browser.pre(id: 'no_such_id').title }.to raise_unknown_object_exception
83
- expect { browser.pre(xpath: "//pre[@id='no_such_id']").title }.to raise_unknown_object_exception
84
- end
85
- end
86
-
87
- describe "#text" do
88
- it "returns the text of the pre" do
89
- expect(browser.pre(class: 'haskell').text).to eq 'main = putStrLn "Hello World"'
90
- end
91
-
92
- it "returns an empty string if the element doesn't contain any text" do
93
- expect(browser.pre(index: 0).text).to eq ''
94
- end
95
-
96
- it "raises UnknownObjectException if the pre doesn't exist" do
97
- expect { browser.pre(id: 'no_such_id').text }.to raise_unknown_object_exception
98
- expect { browser.pre(:xpath , "//pre[@id='no_such_id']").text }.to raise_unknown_object_exception
99
- end
100
- end
101
-
102
- describe "#respond_to?" do
103
- it "returns true for all attribute methods" do
104
- expect(browser.image(index: 0)).to respond_to(:class_name)
105
- expect(browser.image(index: 0)).to respond_to(:id)
106
- expect(browser.image(index: 0)).to respond_to(:title)
107
- expect(browser.image(index: 0)).to respond_to(:text)
108
- end
109
- end
110
-
111
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Pre" 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 'p' exists" do
12
+ expect(browser.pre(id: "rspec")).to exist
13
+ expect(browser.pre(id: /rspec/)).to exist
14
+ expect(browser.pre(text: 'browser.pre(id: "rspec").should exist')).to exist
15
+ expect(browser.pre(text: /browser\.pre/)).to exist
16
+ expect(browser.pre(class: "ruby")).to exist
17
+ expect(browser.pre(class: /ruby/)).to exist
18
+ expect(browser.pre(index: 0)).to exist
19
+ expect(browser.pre(xpath: "//pre[@id='rspec']")).to exist
20
+ end
21
+
22
+ it "returns the first pre if given no args" do
23
+ expect(browser.pre).to exist
24
+ end
25
+
26
+ it "returns false if the 'p' doesn't exist" do
27
+ expect(browser.pre(id: "no_such_id")).to_not exist
28
+ expect(browser.pre(id: /no_such_id/)).to_not exist
29
+ expect(browser.pre(text: "no_such_text")).to_not exist
30
+ expect(browser.pre(text: /no_such_text/)).to_not exist
31
+ expect(browser.pre(class: "no_such_class")).to_not exist
32
+ expect(browser.pre(class: /no_such_class/)).to_not exist
33
+ expect(browser.pre(index: 1337)).to_not exist
34
+ expect(browser.pre(xpath: "//pre[@id='no_such_id']")).to_not exist
35
+ end
36
+
37
+ it "raises TypeError when 'what' argument is invalid" do
38
+ expect { browser.pre(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.pre(id: 'rspec').class_name).to eq 'ruby'
46
+ end
47
+
48
+ it "returns an empty string if the element exists and the attribute doesn't" do
49
+ expect(browser.pre(index: 0).class_name).to eq ''
50
+ end
51
+
52
+ it "raises UnknownObjectException if the p doesn't exist" do
53
+ expect { browser.pre(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.pre(class: 'ruby').id).to eq "rspec"
60
+ end
61
+
62
+ it "returns an empty string if the element exists and the attribute doesn't" do
63
+ expect(browser.pre(index: 0).id).to eq ''
64
+ end
65
+
66
+ it "raises UnknownObjectException if the pre doesn't exist" do
67
+ expect { browser.pre(id: "no_such_id").id }.to raise_unknown_object_exception
68
+ expect { browser.pre(index: 1337).id }.to raise_unknown_object_exception
69
+ end
70
+ end
71
+
72
+ describe "#title" do
73
+ it "returns the title attribute" do
74
+ expect(browser.pre(class: 'brainfuck').title).to eq 'The brainfuck language is an esoteric programming language noted for its extreme minimalism'
75
+ end
76
+
77
+ it "returns an empty string if the element exists and the attribute doesn't" do
78
+ expect(browser.pre(index: 0).title).to eq ''
79
+ end
80
+
81
+ it "raises UnknownObjectException if the pre doesn't exist" do
82
+ expect { browser.pre(id: 'no_such_id').title }.to raise_unknown_object_exception
83
+ expect { browser.pre(xpath: "//pre[@id='no_such_id']").title }.to raise_unknown_object_exception
84
+ end
85
+ end
86
+
87
+ describe "#text" do
88
+ it "returns the text of the pre" do
89
+ expect(browser.pre(class: 'haskell').text).to eq 'main = putStrLn "Hello World"'
90
+ end
91
+
92
+ it "returns an empty string if the element doesn't contain any text" do
93
+ expect(browser.pre(index: 0).text).to eq ''
94
+ end
95
+
96
+ it "raises UnknownObjectException if the pre doesn't exist" do
97
+ expect { browser.pre(id: 'no_such_id').text }.to raise_unknown_object_exception
98
+ expect { browser.pre(:xpath , "//pre[@id='no_such_id']").text }.to raise_unknown_object_exception
99
+ end
100
+ end
101
+
102
+ describe "#respond_to?" do
103
+ it "returns true for all attribute methods" do
104
+ expect(browser.image(index: 0)).to respond_to(:class_name)
105
+ expect(browser.image(index: 0)).to respond_to(:id)
106
+ expect(browser.image(index: 0)).to respond_to(:title)
107
+ expect(browser.image(index: 0)).to respond_to(:text)
108
+ end
109
+ end
110
+
111
+ end
@@ -1,40 +1,40 @@
1
- require "watirspec_helper"
2
-
3
- describe "Pres" 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.pres(class: "c-plus-plus").to_a).to eq [browser.pre(class: "c-plus-plus")]
12
- end
13
- end
14
-
15
- describe "#length" do
16
- it "returns the number of pres" do
17
- expect(browser.pres.length).to eq 7
18
- end
19
- end
20
-
21
- describe "#[]" do
22
- it "returns the pre at the given index" do
23
- expect(browser.pres[1].id).to eq "rspec"
24
- end
25
- end
26
-
27
- describe "#each" do
28
- it "iterates through pres correctly" do
29
- count = 0
30
-
31
- browser.pres.each_with_index do |p, index|
32
- expect(p.id).to eq browser.pre(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 "Pres" 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.pres(class: "c-plus-plus").to_a).to eq [browser.pre(class: "c-plus-plus")]
12
+ end
13
+ end
14
+
15
+ describe "#length" do
16
+ it "returns the number of pres" do
17
+ expect(browser.pres.length).to eq 7
18
+ end
19
+ end
20
+
21
+ describe "#[]" do
22
+ it "returns the pre at the given index" do
23
+ expect(browser.pres[1].id).to eq "rspec"
24
+ end
25
+ end
26
+
27
+ describe "#each" do
28
+ it "iterates through pres correctly" do
29
+ count = 0
30
+
31
+ browser.pres.each_with_index do |p, index|
32
+ expect(p.id).to eq browser.pre(index: index).id
33
+ count += 1
34
+ end
35
+
36
+ expect(count).to be > 0
37
+ end
38
+ end
39
+
40
+ end