watir 1.4.1 → 7.3.0

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 (422) hide show
  1. checksums.yaml +7 -0
  2. data/.document +4 -0
  3. data/.github/ISSUE_TEMPLATE.md +16 -0
  4. data/.github/workflows/chrome.yml +55 -0
  5. data/.github/workflows/edge.yml +44 -0
  6. data/.github/workflows/firefox.yml +55 -0
  7. data/.github/workflows/ie.yml +30 -0
  8. data/.github/workflows/safari.yml +38 -0
  9. data/.github/workflows/unit.yml +60 -0
  10. data/.gitignore +21 -0
  11. data/.rubocop.yml +114 -0
  12. data/.rubocop_todo.yml +17 -0
  13. data/CHANGES.md +2212 -0
  14. data/Gemfile +15 -0
  15. data/LICENSE +24 -0
  16. data/README.md +113 -0
  17. data/Rakefile +173 -0
  18. data/lib/watir/adjacent.rb +128 -0
  19. data/lib/watir/after_hooks.rb +135 -0
  20. data/lib/watir/alert.rb +113 -0
  21. data/lib/watir/aliases.rb +8 -0
  22. data/lib/watir/attribute_helper.rb +97 -0
  23. data/lib/watir/browser.rb +323 -0
  24. data/lib/watir/capabilities.rb +179 -0
  25. data/lib/watir/cell_container.rb +25 -0
  26. data/lib/watir/container.rb +33 -0
  27. data/lib/watir/cookies.rb +130 -0
  28. data/lib/watir/element_collection.rb +223 -0
  29. data/lib/watir/elements/button.rb +28 -0
  30. data/lib/watir/elements/cell.rb +18 -0
  31. data/lib/watir/elements/checkbox.rb +56 -0
  32. data/lib/watir/elements/date_field.rb +42 -0
  33. data/lib/watir/elements/date_time_field.rb +42 -0
  34. data/lib/watir/elements/dlist.rb +12 -0
  35. data/lib/watir/elements/element.rb +807 -0
  36. data/lib/watir/elements/file_field.rb +43 -0
  37. data/lib/watir/elements/font.rb +26 -0
  38. data/lib/watir/elements/form.rb +16 -0
  39. data/lib/watir/elements/hidden.rb +26 -0
  40. data/lib/watir/elements/html_elements.rb +1981 -0
  41. data/lib/watir/elements/iframe.rb +156 -0
  42. data/lib/watir/elements/image.rb +22 -0
  43. data/lib/watir/elements/input.rb +15 -0
  44. data/lib/watir/elements/link.rb +8 -0
  45. data/lib/watir/elements/list.rb +51 -0
  46. data/lib/watir/elements/option.rb +60 -0
  47. data/lib/watir/elements/radio.rb +65 -0
  48. data/lib/watir/elements/row.rb +18 -0
  49. data/lib/watir/elements/select.rb +214 -0
  50. data/lib/watir/elements/svg_elements.rb +497 -0
  51. data/lib/watir/elements/table.rb +77 -0
  52. data/lib/watir/elements/table_cell.rb +32 -0
  53. data/lib/watir/elements/table_row.rb +34 -0
  54. data/lib/watir/elements/table_section.rb +17 -0
  55. data/lib/watir/elements/text_area.rb +7 -0
  56. data/lib/watir/elements/text_field.rb +39 -0
  57. data/lib/watir/exception.rb +16 -0
  58. data/lib/watir/extensions/nokogiri.rb +14 -0
  59. data/lib/watir/generator/base/generator.rb +114 -0
  60. data/lib/watir/generator/base/idl_sorter.rb +51 -0
  61. data/lib/watir/generator/base/spec_extractor.rb +158 -0
  62. data/lib/watir/generator/base/util.rb +21 -0
  63. data/lib/watir/generator/base/visitor.rb +133 -0
  64. data/lib/watir/generator/base.rb +12 -0
  65. data/lib/watir/generator/html/generator.rb +36 -0
  66. data/lib/watir/generator/html/spec_extractor.rb +52 -0
  67. data/lib/watir/generator/html/visitor.rb +23 -0
  68. data/lib/watir/generator/html.rb +17 -0
  69. data/lib/watir/generator/svg/generator.rb +38 -0
  70. data/lib/watir/generator/svg/spec_extractor.rb +55 -0
  71. data/lib/watir/generator/svg/visitor.rb +23 -0
  72. data/lib/watir/generator/svg.rb +9 -0
  73. data/lib/watir/generator.rb +5 -0
  74. data/lib/watir/has_window.rb +72 -0
  75. data/lib/watir/http_client.rb +11 -0
  76. data/lib/watir/js_execution.rb +165 -0
  77. data/lib/watir/js_snippets/attributeValues.js +11 -0
  78. data/lib/watir/js_snippets/backgroundColor.js +7 -0
  79. data/lib/watir/js_snippets/elementObscured.js +14 -0
  80. data/lib/watir/js_snippets/fireEvent.js +31 -0
  81. data/lib/watir/js_snippets/focus.js +3 -0
  82. data/lib/watir/js_snippets/getElementTags.js +3 -0
  83. data/lib/watir/js_snippets/getInnerHtml.js +19 -0
  84. data/lib/watir/js_snippets/getInnerText.js +19 -0
  85. data/lib/watir/js_snippets/getOuterHtml.js +20 -0
  86. data/lib/watir/js_snippets/getTextContent.js +19 -0
  87. data/lib/watir/js_snippets/isElementInViewport.js +20 -0
  88. data/lib/watir/js_snippets/isImageLoaded.js +3 -0
  89. data/lib/watir/js_snippets/selectOptionsLabel.js +10 -0
  90. data/lib/watir/js_snippets/selectOptionsText.js +10 -0
  91. data/lib/watir/js_snippets/selectOptionsValue.js +10 -0
  92. data/lib/watir/js_snippets/selectText.js +64 -0
  93. data/lib/watir/js_snippets/selectedOptions.js +11 -0
  94. data/lib/watir/js_snippets/selectedText.js +17 -0
  95. data/lib/watir/js_snippets/setText.js +3 -0
  96. data/lib/watir/js_snippets/setValue.js +3 -0
  97. data/lib/watir/js_snippets.rb +18 -0
  98. data/lib/watir/locators/anchor/selector_builder.rb +43 -0
  99. data/lib/watir/locators/button/matcher.rb +19 -0
  100. data/lib/watir/locators/button/selector_builder/xpath.rb +69 -0
  101. data/lib/watir/locators/button/selector_builder.rb +10 -0
  102. data/lib/watir/locators/cell/selector_builder/xpath.rb +23 -0
  103. data/lib/watir/locators/cell/selector_builder.rb +13 -0
  104. data/lib/watir/locators/element/locator.rb +81 -0
  105. data/lib/watir/locators/element/matcher.rb +118 -0
  106. data/lib/watir/locators/element/selector_builder/regexp_disassembler.rb +69 -0
  107. data/lib/watir/locators/element/selector_builder/xpath.rb +268 -0
  108. data/lib/watir/locators/element/selector_builder/xpath_support.rb +29 -0
  109. data/lib/watir/locators/element/selector_builder.rb +164 -0
  110. data/lib/watir/locators/option/matcher.rb +26 -0
  111. data/lib/watir/locators/option/selector_builder/xpath.rb +39 -0
  112. data/lib/watir/locators/option/selector_builder.rb +10 -0
  113. data/lib/watir/locators/row/selector_builder/xpath.rb +53 -0
  114. data/lib/watir/locators/row/selector_builder.rb +18 -0
  115. data/lib/watir/locators/text_area/selector_builder/xpath.rb +21 -0
  116. data/lib/watir/locators/text_area/selector_builder.rb +10 -0
  117. data/lib/watir/locators/text_field/matcher.rb +37 -0
  118. data/lib/watir/locators/text_field/selector_builder/xpath.rb +50 -0
  119. data/lib/watir/locators/text_field/selector_builder.rb +10 -0
  120. data/lib/watir/locators.rb +77 -0
  121. data/lib/watir/logger.rb +30 -0
  122. data/lib/watir/navigation.rb +51 -0
  123. data/lib/watir/radio_set.rb +230 -0
  124. data/lib/watir/row_container.rb +36 -0
  125. data/lib/watir/screenshot.rb +51 -0
  126. data/lib/watir/scroll.rb +95 -0
  127. data/lib/watir/search_context.rb +96 -0
  128. data/lib/watir/shadow_root.rb +60 -0
  129. data/lib/watir/user_editable.rb +85 -0
  130. data/lib/watir/version.rb +5 -0
  131. data/lib/watir/wait/timer.rb +52 -0
  132. data/lib/watir/wait.rb +171 -0
  133. data/lib/watir/window.rb +276 -0
  134. data/lib/watir/window_collection.rb +82 -0
  135. data/lib/watir.rb +108 -0
  136. data/lib/watirspec/guards.rb +65 -0
  137. data/lib/watirspec/implementation.rb +56 -0
  138. data/lib/watirspec/rake_tasks.rb +118 -0
  139. data/lib/watirspec/remote_server.rb +39 -0
  140. data/lib/watirspec/runner.rb +64 -0
  141. data/lib/watirspec/server/app.rb +86 -0
  142. data/lib/watirspec/server.rb +104 -0
  143. data/lib/watirspec.rb +93 -0
  144. data/spec/locator_spec_helper.rb +88 -0
  145. data/spec/spec_helper.rb +24 -0
  146. data/spec/unit/capabilities_spec.rb +670 -0
  147. data/spec/unit/element_locator_spec.rb +97 -0
  148. data/spec/unit/match_elements/button_spec.rb +76 -0
  149. data/spec/unit/match_elements/element_spec.rb +424 -0
  150. data/spec/unit/match_elements/text_field_spec.rb +84 -0
  151. data/spec/unit/selector_builder/anchor_spec.rb +59 -0
  152. data/spec/unit/selector_builder/button_spec.rb +217 -0
  153. data/spec/unit/selector_builder/cell_spec.rb +71 -0
  154. data/spec/unit/selector_builder/element_spec.rb +804 -0
  155. data/spec/unit/selector_builder/row_spec.rb +128 -0
  156. data/spec/unit/selector_builder/text_field_spec.rb +203 -0
  157. data/spec/unit/selector_builder/textarea_spec.rb +35 -0
  158. data/spec/unit/unit_helper.rb +4 -0
  159. data/spec/unit/wait_spec.rb +99 -0
  160. data/spec/watirspec/adjacent_spec.rb +256 -0
  161. data/spec/watirspec/after_hooks_spec.rb +204 -0
  162. data/spec/watirspec/alert_spec.rb +89 -0
  163. data/spec/watirspec/browser_spec.rb +536 -0
  164. data/spec/watirspec/capabilities_spec.rb +556 -0
  165. data/spec/watirspec/cookies_spec.rb +196 -0
  166. data/spec/watirspec/drag_and_drop_spec.rb +38 -0
  167. data/spec/watirspec/element_hidden_spec.rb +86 -0
  168. data/spec/watirspec/elements/area_spec.rb +69 -0
  169. data/spec/watirspec/elements/areas_spec.rb +44 -0
  170. data/spec/watirspec/elements/button_spec.rb +265 -0
  171. data/spec/watirspec/elements/buttons_spec.rb +57 -0
  172. data/spec/watirspec/elements/checkbox_spec.rb +290 -0
  173. data/spec/watirspec/elements/checkboxes_spec.rb +46 -0
  174. data/spec/watirspec/elements/collections_spec.rb +132 -0
  175. data/spec/watirspec/elements/date_field_spec.rb +209 -0
  176. data/spec/watirspec/elements/date_fields_spec.rb +46 -0
  177. data/spec/watirspec/elements/date_time_field_spec.rb +223 -0
  178. data/spec/watirspec/elements/date_time_fields_spec.rb +47 -0
  179. data/spec/watirspec/elements/dd_spec.rb +108 -0
  180. data/spec/watirspec/elements/dds_spec.rb +44 -0
  181. data/spec/watirspec/elements/del_spec.rb +113 -0
  182. data/spec/watirspec/elements/dels_spec.rb +42 -0
  183. data/spec/watirspec/elements/div_spec.rb +232 -0
  184. data/spec/watirspec/elements/divs_spec.rb +56 -0
  185. data/spec/watirspec/elements/dl_spec.rb +117 -0
  186. data/spec/watirspec/elements/dls_spec.rb +45 -0
  187. data/spec/watirspec/elements/dt_spec.rb +107 -0
  188. data/spec/watirspec/elements/dts_spec.rb +44 -0
  189. data/spec/watirspec/elements/element_spec.rb +1069 -0
  190. data/spec/watirspec/elements/elements_spec.rb +60 -0
  191. data/spec/watirspec/elements/em_spec.rb +85 -0
  192. data/spec/watirspec/elements/ems_spec.rb +45 -0
  193. data/spec/watirspec/elements/filefield_spec.rb +135 -0
  194. data/spec/watirspec/elements/filefields_spec.rb +45 -0
  195. data/spec/watirspec/elements/font_spec.rb +31 -0
  196. data/spec/watirspec/elements/form_spec.rb +70 -0
  197. data/spec/watirspec/elements/forms_spec.rb +46 -0
  198. data/spec/watirspec/elements/frame_spec.rb +117 -0
  199. data/spec/watirspec/elements/frames_spec.rb +43 -0
  200. data/spec/watirspec/elements/hidden_spec.rb +106 -0
  201. data/spec/watirspec/elements/hiddens_spec.rb +45 -0
  202. data/spec/watirspec/elements/hn_spec.rb +80 -0
  203. data/spec/watirspec/elements/hns_spec.rb +42 -0
  204. data/spec/watirspec/elements/iframe_spec.rb +244 -0
  205. data/spec/watirspec/elements/iframes_spec.rb +49 -0
  206. data/spec/watirspec/elements/image_spec.rb +160 -0
  207. data/spec/watirspec/elements/images_spec.rb +42 -0
  208. data/spec/watirspec/elements/input_spec.rb +17 -0
  209. data/spec/watirspec/elements/ins_spec.rb +113 -0
  210. data/spec/watirspec/elements/inses_spec.rb +42 -0
  211. data/spec/watirspec/elements/label_spec.rb +77 -0
  212. data/spec/watirspec/elements/labels_spec.rb +42 -0
  213. data/spec/watirspec/elements/li_spec.rb +99 -0
  214. data/spec/watirspec/elements/link_spec.rb +180 -0
  215. data/spec/watirspec/elements/links_spec.rb +66 -0
  216. data/spec/watirspec/elements/lis_spec.rb +44 -0
  217. data/spec/watirspec/elements/list_spec.rb +50 -0
  218. data/spec/watirspec/elements/map_spec.rb +78 -0
  219. data/spec/watirspec/elements/maps_spec.rb +43 -0
  220. data/spec/watirspec/elements/meta_spec.rb +27 -0
  221. data/spec/watirspec/elements/metas_spec.rb +42 -0
  222. data/spec/watirspec/elements/ol_spec.rb +63 -0
  223. data/spec/watirspec/elements/ols_spec.rb +42 -0
  224. data/spec/watirspec/elements/option_spec.rb +113 -0
  225. data/spec/watirspec/elements/p_spec.rb +102 -0
  226. data/spec/watirspec/elements/pre_spec.rb +100 -0
  227. data/spec/watirspec/elements/pres_spec.rb +42 -0
  228. data/spec/watirspec/elements/ps_spec.rb +42 -0
  229. data/spec/watirspec/elements/radio_spec.rb +259 -0
  230. data/spec/watirspec/elements/radios_spec.rb +45 -0
  231. data/spec/watirspec/elements/select_list_spec.rb +701 -0
  232. data/spec/watirspec/elements/select_lists_spec.rb +49 -0
  233. data/spec/watirspec/elements/span_spec.rb +119 -0
  234. data/spec/watirspec/elements/spans_spec.rb +42 -0
  235. data/spec/watirspec/elements/strong_spec.rb +78 -0
  236. data/spec/watirspec/elements/strongs_spec.rb +45 -0
  237. data/spec/watirspec/elements/table_spec.rb +210 -0
  238. data/spec/watirspec/elements/tables_spec.rb +44 -0
  239. data/spec/watirspec/elements/tbody_spec.rb +94 -0
  240. data/spec/watirspec/elements/tbodys_spec.rb +64 -0
  241. data/spec/watirspec/elements/td_spec.rb +92 -0
  242. data/spec/watirspec/elements/tds_spec.rb +55 -0
  243. data/spec/watirspec/elements/text_field_spec.rb +223 -0
  244. data/spec/watirspec/elements/text_fields_spec.rb +47 -0
  245. data/spec/watirspec/elements/textarea_spec.rb +30 -0
  246. data/spec/watirspec/elements/textareas_spec.rb +28 -0
  247. data/spec/watirspec/elements/tfoot_spec.rb +89 -0
  248. data/spec/watirspec/elements/tfoots_spec.rb +72 -0
  249. data/spec/watirspec/elements/thead_spec.rb +88 -0
  250. data/spec/watirspec/elements/theads_spec.rb +72 -0
  251. data/spec/watirspec/elements/tr_spec.rb +69 -0
  252. data/spec/watirspec/elements/trs_spec.rb +63 -0
  253. data/spec/watirspec/elements/ul_spec.rb +63 -0
  254. data/spec/watirspec/elements/uls_spec.rb +42 -0
  255. data/spec/watirspec/html/alerts.html +12 -0
  256. data/spec/watirspec/html/aria_attributes.html +9 -0
  257. data/spec/watirspec/html/child_frame.html +29 -0
  258. data/spec/watirspec/html/class_locator.html +11 -0
  259. data/spec/watirspec/html/clicks.html +19 -0
  260. data/spec/watirspec/html/closeable.html +21 -0
  261. data/spec/watirspec/html/collections.html +15 -0
  262. data/spec/watirspec/html/css/jquery-ui-1.8.17.custom.css +287 -0
  263. data/spec/watirspec/html/data_attributes.html +10 -0
  264. data/spec/watirspec/html/definition_lists.html +48 -0
  265. data/spec/watirspec/html/drag_and_drop.html +106 -0
  266. data/spec/watirspec/html/font.html +10 -0
  267. data/spec/watirspec/html/forms_with_input_elements.html +194 -0
  268. data/spec/watirspec/html/frame_1.html +22 -0
  269. data/spec/watirspec/html/frame_2.html +16 -0
  270. data/spec/watirspec/html/frames.html +11 -0
  271. data/spec/watirspec/html/iframe_1.html +22 -0
  272. data/spec/watirspec/html/iframes.html +15 -0
  273. data/spec/watirspec/html/images/button.png +0 -0
  274. data/spec/watirspec/html/images/circle.png +0 -0
  275. data/spec/watirspec/html/images/map.gif +0 -0
  276. data/spec/watirspec/html/images/map2.gif +0 -0
  277. data/spec/watirspec/html/images/originaltriangle.png +0 -0
  278. data/spec/watirspec/html/images/square.png +0 -0
  279. data/spec/watirspec/html/images/triangle.png +0 -0
  280. data/spec/watirspec/html/images.html +28 -0
  281. data/spec/watirspec/html/inner_outer.html +5 -0
  282. data/spec/watirspec/html/javascript/angular.min.js +332 -0
  283. data/spec/watirspec/html/javascript/helpers.js +16 -0
  284. data/spec/watirspec/html/javascript/jquery-1.7.1.min.js +4 -0
  285. data/spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js +68 -0
  286. data/spec/watirspec/html/keylogger.html +15 -0
  287. data/spec/watirspec/html/modal_dialog.html +9 -0
  288. data/spec/watirspec/html/multiple_ids.html +15 -0
  289. data/spec/watirspec/html/nested_elements.html +44 -0
  290. data/spec/watirspec/html/nested_frame_1.html +1 -0
  291. data/spec/watirspec/html/nested_frame_2.html +9 -0
  292. data/spec/watirspec/html/nested_frame_3.html +14 -0
  293. data/spec/watirspec/html/nested_frames.html +10 -0
  294. data/spec/watirspec/html/nested_iframe_2.html +12 -0
  295. data/spec/watirspec/html/nested_iframes.html +13 -0
  296. data/spec/watirspec/html/nested_tables.html +203 -0
  297. data/spec/watirspec/html/non_control_elements.html +145 -0
  298. data/spec/watirspec/html/obscured.html +36 -0
  299. data/spec/watirspec/html/removed_element.html +24 -0
  300. data/spec/watirspec/html/right_click.html +23 -0
  301. data/spec/watirspec/html/scroll.html +15 -0
  302. data/spec/watirspec/html/scroll_nested.html +17 -0
  303. data/spec/watirspec/html/scroll_nested_offscreen.html +18 -0
  304. data/spec/watirspec/html/shadow_dom.html +28 -0
  305. data/spec/watirspec/html/special_chars.html +15 -0
  306. data/spec/watirspec/html/sticky_elements.html +10 -0
  307. data/spec/watirspec/html/tables.html +121 -0
  308. data/spec/watirspec/html/timeout_window_location.html +19 -0
  309. data/spec/watirspec/html/uneven_table.html +20 -0
  310. data/spec/watirspec/html/wait.html +99 -0
  311. data/spec/watirspec/html/watirspec.css +0 -0
  312. data/spec/watirspec/html/window_switching.html +22 -0
  313. data/spec/watirspec/radio_set_spec.rb +346 -0
  314. data/spec/watirspec/screenshot_spec.rb +33 -0
  315. data/spec/watirspec/scroll_spec.rb +208 -0
  316. data/spec/watirspec/shadow_root_spec.rb +108 -0
  317. data/spec/watirspec/support/rspec_matchers.rb +161 -0
  318. data/spec/watirspec/user_editable_spec.rb +207 -0
  319. data/spec/watirspec/wait_spec.rb +345 -0
  320. data/spec/watirspec/window_switching_spec.rb +580 -0
  321. data/spec/watirspec_helper.rb +163 -0
  322. data/support/doctest_helper.rb +101 -0
  323. data/support/version_differ.rb +60 -0
  324. data/watir.gemspec +50 -0
  325. metadata +652 -148
  326. data/readme.rb +0 -211
  327. data/unittests/WindowLogonExample.rb +0 -30
  328. data/unittests/WindowLogonExtra.rb +0 -7
  329. data/unittests/all_tests.rb +0 -10
  330. data/unittests/all_tests_concurrent.rb +0 -57
  331. data/unittests/attachToExistingWindow_test.rb +0 -40
  332. data/unittests/buttons_test.rb +0 -131
  333. data/unittests/checkbox_test.rb +0 -149
  334. data/unittests/core_tests.rb +0 -9
  335. data/unittests/css_test.rb +0 -60
  336. data/unittests/div_test.rb +0 -179
  337. data/unittests/errorchecker_test.rb +0 -29
  338. data/unittests/filefield_test.rb +0 -35
  339. data/unittests/form_test.rb +0 -279
  340. data/unittests/frame_test.rb +0 -141
  341. data/unittests/html/blankpage.html +0 -12
  342. data/unittests/html/buttons1.html +0 -40
  343. data/unittests/html/checkboxes1.html +0 -69
  344. data/unittests/html/complex_table.html +0 -36
  345. data/unittests/html/cssTest.html +0 -42
  346. data/unittests/html/div.html +0 -105
  347. data/unittests/html/fileupload.html +0 -45
  348. data/unittests/html/formTest1.html +0 -39
  349. data/unittests/html/forms2.html +0 -45
  350. data/unittests/html/forms3.html +0 -132
  351. data/unittests/html/forms4.html +0 -27
  352. data/unittests/html/frame_buttons.html +0 -4
  353. data/unittests/html/frame_links.html +0 -4
  354. data/unittests/html/frame_multi.html +0 -5
  355. data/unittests/html/iframeTest.html +0 -13
  356. data/unittests/html/iframeTest1.html +0 -7
  357. data/unittests/html/iframeTest2.html +0 -6
  358. data/unittests/html/images/button.jpg +0 -0
  359. data/unittests/html/images/circle.jpg +0 -0
  360. data/unittests/html/images/originaltriangle.jpg +0 -0
  361. data/unittests/html/images/square.jpg +0 -0
  362. data/unittests/html/images/triangle.jpg +0 -0
  363. data/unittests/html/images1.html +0 -52
  364. data/unittests/html/javascriptevents.html +0 -39
  365. data/unittests/html/link_pass.html +0 -11
  366. data/unittests/html/links1.html +0 -37
  367. data/unittests/html/links2.html +0 -11
  368. data/unittests/html/nestedFrames.html +0 -6
  369. data/unittests/html/pass.html +0 -10
  370. data/unittests/html/popups1.html +0 -60
  371. data/unittests/html/radioButtons1.html +0 -71
  372. data/unittests/html/select_tealeaf.html +0 -54
  373. data/unittests/html/selectboxes1.html +0 -55
  374. data/unittests/html/simple_table.html +0 -26
  375. data/unittests/html/simple_table_buttons.html +0 -104
  376. data/unittests/html/simple_table_columns.html +0 -76
  377. data/unittests/html/table1.html +0 -142
  378. data/unittests/html/textarea.html +0 -30
  379. data/unittests/html/textfields1.html +0 -87
  380. data/unittests/html/textsearch.html +0 -44
  381. data/unittests/ie_mock.rb +0 -93
  382. data/unittests/ie_test.rb +0 -50
  383. data/unittests/images_test.rb +0 -179
  384. data/unittests/iostring.rb +0 -30
  385. data/unittests/iostring_test.rb +0 -48
  386. data/unittests/js_events_test.rb +0 -77
  387. data/unittests/jscriptExtraAlert.rb +0 -6
  388. data/unittests/jscriptExtraConfirmCancel.rb +0 -7
  389. data/unittests/jscriptExtraConfirmOk.rb +0 -7
  390. data/unittests/jscriptPushButton.rb +0 -5
  391. data/unittests/jscript_test.rb +0 -57
  392. data/unittests/links_test.rb +0 -169
  393. data/unittests/minmax_test.rb +0 -31
  394. data/unittests/navigate_test.rb +0 -56
  395. data/unittests/non_core_tests.rb +0 -9
  396. data/unittests/pagecontainstext_test.rb +0 -49
  397. data/unittests/popups_test.rb +0 -44
  398. data/unittests/radios_test.rb +0 -164
  399. data/unittests/screen_capture_test.rb +0 -53
  400. data/unittests/selectbox_test.rb +0 -197
  401. data/unittests/send_keys_test.rb +0 -29
  402. data/unittests/setup.rb +0 -47
  403. data/unittests/table_test.rb +0 -306
  404. data/unittests/textAreafields_test.rb +0 -81
  405. data/unittests/textfields_test.rb +0 -239
  406. data/watir/AutoItX3.dll +0 -0
  407. data/watir/WindowHelper.rb +0 -47
  408. data/watir/camel_case.rb +0 -37
  409. data/watir/clickJSDialog.rb +0 -19
  410. data/watir/cookiemanager.rb +0 -53
  411. data/watir/exceptions.rb +0 -60
  412. data/watir/screen_capture.rb +0 -115
  413. data/watir/setFileDialog.rb +0 -16
  414. data/watir/testUnitAddons.rb +0 -47
  415. data/watir/watir_simple.rb +0 -475
  416. data/watir/winClicker.rb +0 -505
  417. data/watir.rb +0 -3744
  418. /data/{unittests → spec/watirspec}/html/images/1.gif +0 -0
  419. /data/{unittests/html/images/2.GIF → spec/watirspec/html/images/2.gif} +0 -0
  420. /data/{unittests/html/images/3.GIF → spec/watirspec/html/images/3.gif} +0 -0
  421. /data/{unittests/html/images/minus.GIF → spec/watirspec/html/images/minus.gif} +0 -0
  422. /data/{unittests → spec/watirspec}/html/images/plus.gif +0 -0
@@ -1,141 +0,0 @@
1
- # feature tests for Frames
2
- # revision: $Revision: 1.22.2.1 $
3
-
4
- $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
- require 'unittests/setup'
6
-
7
- class TC_Frames < Test::Unit::TestCase
8
- include Watir
9
-
10
- def setup()
11
- $ie.goto($htmlRoot + "frame_buttons.html")
12
- end
13
-
14
- def test_frame_no_what
15
- assert_raises(UnknownFrameException) { $ie.frame("missingFrame").button(:id, "b2").enabled? }
16
- assert_raises(UnknownObjectException) { $ie.frame("buttonFrame2").button(:id, "b2").enabled? }
17
- assert($ie.frame("buttonFrame").button(:id, "b2").enabled?)
18
- assert_false($ie.frame("buttonFrame").button(:caption, "Disabled Button").enabled?)
19
- end
20
-
21
- def test_frame_using_name
22
- assert_raises(UnknownFrameException) { $ie.frame(:name , "missingFrame").button(:id, "b2").enabled? }
23
- assert_raises(UnknownObjectException) { $ie.frame(:name, "buttonFrame2").button(:id, "b2").enabled? }
24
- assert($ie.frame(:name, "buttonFrame").button(:id, "b2").enabled?)
25
- assert_false($ie.frame(:name , "buttonFrame").button(:caption, "Disabled Button").enabled?)
26
- end
27
-
28
- def test_frame_using_name_and_regexp
29
- assert_raises(UnknownFrameException) { $ie.frame(:name , /missingFrame/).button(:id, "b2").enabled? }
30
- assert($ie.frame(:name, /button/).button(:id, "b2").enabled?)
31
- end
32
-
33
- def test_frame_using_index
34
- assert_raises(UnknownFrameException) { $ie.frame(:index, 8).button(:id, "b2").enabled? }
35
- assert_raises(UnknownObjectException) { $ie.frame(:index, 2).button(:id, "b2").enabled? }
36
- assert($ie.frame(:index, 1 ).button(:id, "b2").enabled?)
37
- assert_false($ie.frame(:index, 1).button(:caption, "Disabled Button").enabled?)
38
- end
39
-
40
- def test_frame_with_invalid_attribute
41
- assert_raises(ArgumentError) { $ie.frame(:blah, 'no_such_thing').button(:id, "b2").enabled? }
42
- end
43
-
44
- def test_preset_frame
45
- # with ruby's instance_eval, we are able to use the same frame for several actions
46
- results = $ie.frame("buttonFrame").instance_eval do [
47
- button(:id, "b2").enabled?,
48
- button(:caption, "Disabled Button").enabled?
49
- ]
50
- end
51
- assert_equal([true, false], results)
52
- end
53
-
54
- end
55
-
56
- class TC_Frames2 < Test::Unit::TestCase
57
- include Watir
58
-
59
- def setup()
60
- $ie.goto($htmlRoot + "frame_multi.html")
61
- end
62
-
63
- def test_frame_with_no_name
64
- assert_raises(UnknownFrameException) { $ie.frame(:name , "missingFrame").button(:id, "b2").enabled? }
65
- end
66
-
67
- def test_frame_by_id
68
- assert_raises(UnknownFrameException) { $ie.frame(:id , "missingFrame").button(:id, "b2").enabled? }
69
- end
70
- end
71
-
72
- class TC_NestedFrames < Test::Unit::TestCase
73
- include Watir
74
-
75
- def setup()
76
- $ie.goto($htmlRoot + "nestedFrames.html")
77
- end
78
-
79
- def test_frame
80
- assert_raises(UnknownFrameException) { $ie.frame("missingFrame").button(:id, "b2").enabled? }
81
- assert_raises(UnknownFrameException) { $ie.frame("nestedFrame").frame("subFrame").button(:id, "b2").enabled? }
82
- assert($ie.frame("nestedFrame").frame("senderFrame").button(:name, "sendIt").enabled?)
83
- $ie.frame("nestedFrame").frame("senderFrame").text_field(:index, "1").set("Hello")
84
- $ie.frame("nestedFrame").frame("senderFrame").button(:name, "sendIt").click()
85
- assert($ie.frame("nestedFrame").frame("receiverFrame").text_field(:name, "receiverText").verify_contains("Hello"))
86
- end
87
-
88
- end
89
-
90
- class TC_IFrames < Test::Unit::TestCase
91
- include Watir
92
-
93
- def setup()
94
- $ie.goto($htmlRoot + "iframeTest.html")
95
- end
96
-
97
- def test_Iframe
98
- $ie.frame("senderFrame").text_field(:name , "textToSend").set( "Hello World")
99
- $ie.frame("senderFrame").button(:index, 1).click
100
- assert( $ie.frame("receiverFrame").text_field(:name , "receiverText").verify_contains("Hello World") )
101
- end
102
-
103
- end
104
-
105
- require 'unittests/iostring'
106
- class TC_show_frames < Test::Unit::TestCase
107
- include MockStdoutTestCase
108
-
109
- def capture_and_compare(page, expected)
110
- $ie.goto($htmlRoot + page)
111
- $stdout = @mockout
112
- $ie.showFrames
113
- assert_equal(expected, @mockout)
114
- end
115
-
116
- def test_show_nested_frames
117
- capture_and_compare("nestedFrames.html", <<END_OF_MESSAGE)
118
- there are 2 frames
119
- frame index: 1 name: nestedFrame
120
- frame index: 2 name: nestedFrame2
121
- END_OF_MESSAGE
122
- end
123
-
124
- def test_button_frames
125
- capture_and_compare("frame_buttons.html", <<END_OF_MESSAGE)
126
- there are 2 frames
127
- frame index: 1 name: buttonFrame
128
- frame index: 2 name: buttonFrame2
129
- END_OF_MESSAGE
130
- end
131
-
132
- def test_iframes
133
- capture_and_compare("iframeTest.html", <<END_OF_MESSAGE)
134
- there are 2 frames
135
- frame index: 1 name: senderFrame
136
- frame index: 2 name: receiverFrame
137
- END_OF_MESSAGE
138
- end
139
-
140
- end
141
-
@@ -1,12 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for buttons
5
- </title>
6
- </head>
7
- <body>
8
- CVS Revision: $Revision $
9
- <br>
10
- Blank page to fill in the frames
11
- </body>
12
- </html>
@@ -1,40 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for buttons
5
- </title>
6
- </head>
7
- <body>
8
- CVS Revision: $Revision $
9
- <br>
10
- <br>
11
- <table>
12
- <tr>
13
- <td>
14
- <form name = test1 method = get action = pass.html>
15
-
16
- <input type = button name = b1 id = b2 value = "Click Me" onClick="javascript:document.location='pass.html';" title = "this is button1">
17
- <br><input type = button name = b4 id=b5 value = "Disabled Button" onClick="javascript:document.location='fail.html';" disabled>
18
-
19
- </form>
20
- <td> The top button is for testing buttons with names
21
- <br> The second button is used for testing disabled buttons
22
-
23
-
24
- <tr>
25
- <td>
26
- <form name = test2 method = get action = pass2.html>
27
- <br><input type = submit value=Submit>
28
- </form>
29
- <td> This button is a submit ( the others are buttons)
30
-
31
- <tr>
32
- <td>
33
- <form name = test3 method = get action = pass3.html>
34
- <br><input type = image src=images/button.jpg name =sub3>
35
- </form>
36
- <td> This button is an image. It should behave the same as a submit
37
-
38
-
39
-
40
- </html>
@@ -1,69 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for Check Boxes
5
- </title>
6
-
7
- <script>
8
-
9
- function setButtonState( )
10
- {
11
- if (document.all.foo.disabled )
12
- document.all.foo.disabled = false
13
- else
14
- document.all.foo.disabled = true
15
- }
16
- </script>
17
-
18
- </head>
19
- <body>
20
- CVS Revision: $Revision $
21
- <br>
22
- <br>
23
- <table>
24
- <tr>
25
- <td>
26
- CheckBox 1 <input type = checkbox name = box1>
27
-
28
- <tr>
29
- <td>
30
- Disabled<input type = checkbox name = box2 disabled>
31
-
32
- <tr>
33
- <td>
34
- Set<input type = checkbox name = box3 checked>
35
-
36
- <tr>
37
- <td>
38
- These 2 have ids
39
- <br>
40
- id= box4 value=1 <input type = checkbox id = box4 name= verify1 value = 1 checked>
41
- <br>
42
- id = box4 value=2 <input type = checkbox id = box4 name= verify2 value = 2 checked>
43
-
44
- <br>
45
- <br>
46
- These boxes have the same name, but different values
47
- <br>
48
- Name = box4 value=1 <input type = checkbox name = box4 value = 1 checked>
49
- <br>
50
- Name = box4 value=2 <input type = checkbox name = box4 value = 2>
51
- <br>
52
- Name = box4 value=3 <input type = checkbox name = box4 value = 3>
53
- <br>
54
- Name = box4 value=4 <input type = checkbox name = box4 value = 4>
55
- <br>
56
- Name = box4 value=5 <input type = checkbox name = box4 value = 5 disabled title="box4-value5">
57
-
58
- <tr>
59
- <td>
60
- Name = box5 value=1 <input type = checkbox name = box5 value = 1 onClick='javascript:setButtonState( )'>
61
-
62
-
63
- <tr>
64
- <td>
65
- <input type = button name = foo value = foo disabled ><td> This button is used with checkbox box5. This button is enabled if the checkbox is enabled
66
-
67
- </table>
68
- </body>
69
- </html>
@@ -1,36 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for Tables
5
- </title>
6
- </head>
7
- <body>
8
- CVS Revision: "$Revision: 1.2 $"
9
- <br>
10
- <br>
11
-
12
- The table below has 2 smaller tables, one on each row
13
- <br>
14
- red is the main table
15
- green is a table and grey is also a table
16
-
17
- <table border =1 bgcolor=red>
18
- <tr>
19
- <td><table bgcolor=grey ><tr>
20
- <td> subtable1 Row 1 Col1 </td>
21
- <td> subtable1 Row 1 Col2 </td>
22
- </tr>
23
- </table>
24
- </td>
25
- </tr>
26
- <tr>
27
- <td><table bgcolor=silver><tr>
28
- <td> subtable2 Row 1 Col1 </td>
29
- <td> subtable2 Row 1 Col2 </td>
30
- </tr>
31
- </table>
32
- </td>
33
- </tr>
34
- </table>
35
- </body>
36
- </html>
@@ -1,42 +0,0 @@
1
- <html>
2
- <head>
3
- <title>Test Hidden Message</title>
4
-
5
- <style type="text/css">
6
- div.hide { display: none; margin-left: auto; margin-right: auto; }
7
- div.show { display: block; margin-left: auto; margin-right: auto; }
8
- #Container { background: #f00; color: #fff; width: 300px; height: 300px; padding-top: 100px; text-align: center; font: bold 2em Verdana, Helvetica, sans-serif; }
9
-
10
- </style>
11
-
12
- <script type="text/javascript">
13
- function show(divId)
14
- {
15
- var divContainer = document.getElementById("Container");
16
- var divArr = divContainer.getElementsByTagName("div");
17
- for (var i = 0; i < divArr.length; i++)
18
- {
19
- if ( divArr[i].id == divId )
20
- {
21
- divArr[i].className = "show";
22
- }
23
- else
24
- {
25
- divArr[i].className = "hide";
26
- }
27
- }
28
- }
29
- </script>
30
- </head>
31
-
32
- <body>
33
- <div id="Container">
34
- <div id="successError" class="hide">Success!</div><div id="failureError" class="hide">Failure!</div>
35
- </div>
36
- <form style="width: 300px; text-align: center;">
37
- <p>Click on a button to display a message.</p>
38
- <input type="button" name="success" value="Success" onclick="show( this.name + 'Error' );" />
39
- <input type="button" name="failure" value="Failure" onclick="show( this.name + 'Error' );" />
40
- </form>
41
- </body>
42
- </html>
@@ -1,105 +0,0 @@
1
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
- <html>
3
- <head>
4
- <title>Test page for Div</title>
5
-
6
- <STYLE TYPE="text/css">
7
- DIV {font-size: 24pt;}
8
- .redText {color: red;}
9
- .blueText {color: blue;}
10
- .italicText {font-style: italic;}
11
-
12
- SPAN {font-size: 18pt;}
13
- .redText {color: red;}
14
- .blueText {color: blue;}
15
- .italicText {font-style: italic;}
16
-
17
-
18
- P{font-size: 24pt;}
19
- .redText {color: red;}
20
- .blueText {color: blue;}
21
- .italicText {font-style: italic;}
22
-
23
-
24
- </STYLE>
25
-
26
-
27
- </head>
28
- <body>
29
- CVS Revision: "$Revision: 1.5 $"
30
- <br>
31
- <br>
32
- <div id = div1 title = "Test1" >This text is in a div with an id of div1 and title of test1</div>
33
- <br>
34
- <div id = div2 class="blueText">This text is in a div with an id of div2</div>
35
- <br>
36
- <div id = div3 onClick = "javascript:document.all.text1.value=parseInt(document.all.text1.value)+1">This div has an onClick that increments text1</div>
37
- <div id = div4 onClick = "javascript:document.all.text1.value=parseInt(document.all.text1.value)-1">This div has an onClick that decrements text1</div>
38
-
39
- This input field gets its value from div3. Its name is text1<input type = text name = text1 value = 0>
40
- <br>
41
- <br> The following DIVS are used to test buttons and other objects in a div
42
-
43
- <div id=buttons1>
44
- <input type=button name=b1 value="Button 1" onClick="javascript:document.all.div_text1.value='button1';">
45
- </div>
46
- <div id=buttons2>
47
- <input type=button name=b2 value="Button 2" onClick="javascript:document.all.div_text1.value='button2';">
48
- <input type=button name=b3 value="Button 3" onClick="javascript:document.all.div_text1.value='button3';">
49
- </div>
50
-
51
- <div id=text_fields1>
52
- Text1: <input type=text name=div_text1 >&nbsp;&nbsp;&nbsp;&nbsp; Text2: <input type=text name=div_text2 >&nbsp;&nbsp;&nbsp;&nbsp; Text3: <input type=text name=div_text3>
53
- </div>
54
-
55
-
56
-
57
-
58
- <br>
59
- <hr>
60
- Span Tests
61
- <br>
62
- <br>
63
- <span id = span1 title = "Test2" >This text is in a span with an id of span1 and title of test2</span>
64
- <br>
65
- <span id = span2 class="blueText">This text is in a span with an id of span2</span>
66
- <br>
67
- <span id = span3 onClick = "javascript:document.all.text2.value=parseInt(document.all.text2.value)+1">This span has an onClick that increments text2</span>
68
- <br>
69
- <span id = span4 onClick = "javascript:document.all.text2.value=parseInt(document.all.text2.value)-1">This span has an onClick that decrements text2</span>
70
- <br>
71
- This input field gets its value from span3. Its name is text1<input type = text name = text2 value = 0>
72
-
73
- <br>
74
- <br> The following spans are used to test buttons and other objects in a span
75
- <br>
76
- <span id=buttons1>
77
- <input type=button name=b1 value="Button 1" onClick="javascript:document.all.span_text1.value='button1';">
78
- </span>
79
- <br>
80
- <span id=buttons2>
81
- <input type=button name=b2 value="Button 2" onClick="javascript:document.all.span_text1.value='button2';">
82
- <input type=button name=b3 value="Button 3" onClick="javascript:document.all.span_text1.value='button3';">
83
- </span>
84
- <br>
85
- <span id=text_fields1>
86
- Text1: <input type=text name=span_text1 >&nbsp;&nbsp;&nbsp;&nbsp; Text2: <input type=text name=span_text2 >&nbsp;&nbsp;&nbsp;&nbsp; Text3: <input type=text name=span_text3>
87
- </span>
88
-
89
-
90
-
91
- <br>
92
- <br>
93
- <p id = number1 title = "P_tag_1" class=redText >This text is in a p with an id of number1 and title of P_tag_1</p>
94
- <br>
95
- <p id = number2 title = "P_tag_2" class=italicText >This text is in a p with an id of number2</p>
96
- <br>
97
- <p id = number3 title = "test_3" class=blueText >This text is in a p with an id of number3</p>
98
-
99
-
100
-
101
-
102
-
103
-
104
- </body>
105
- </html>
@@ -1,45 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for File Fields
5
- </title>
6
- </head>
7
- <body>
8
- CVS Revision: "$Revision: 1.1 $"
9
- <br>
10
- <br>
11
- <table>
12
-
13
- <tr>
14
- <td>
15
- <input type = file name = file1 value = 'fileupload.html'>number 1
16
- <br>
17
- <input type = file id= file2 value = 'fileupload.html'>
18
-
19
-
20
- <td>These file fields are not in a form
21
-
22
-
23
- <tr>
24
- <td>
25
- <input type = file name = disabled value = 'fileupload.html' disabled>
26
- <td>
27
- Disabled file box
28
-
29
- <form name = test1 method = get action = pass.html>
30
- <tr>
31
- <td>
32
- <input type = file name = file1 value = 'fileupload.html'>
33
- <td> This is used in file1 in form test1
34
-
35
- <input name="upload" type="submit" value="upload">
36
- </form>
37
- </table>
38
-
39
- These file fields are used to test :beforeText and :afterText
40
- <br>
41
- <input type = file name = beforetest value = 'fileupload.html'>This Text After
42
- <br>
43
- This Text Before<input type = file name=aftertest value = 'fileupload.html'>
44
-
45
- </html>
@@ -1,39 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for forms
5
- </title>
6
- </head>
7
- <body>
8
- CVS Revision: $Revision $
9
- <br>
10
- <br>
11
- <table>
12
- <tr>
13
- <td>
14
- <form name = test1 method = get action = pass.html>
15
-
16
- <input type = button name = b1 id = b2 value = "Click Me" onClick="javascript:document.location='pass.html';">
17
- <br><input type = button name = b4 id=b5 value = "Disabled Button" onClick="javascript:document.location='fail.html';" disabled>
18
-
19
- </form>
20
- <td> this form has name = test1 method = get action = pass.html
21
-
22
-
23
- <tr>
24
- <td>
25
- <form name = test2 method = get action = pass2.html>
26
- <br><input type = submit value=Submit>
27
- </form>
28
- <td> this form has name = test2 method = get action = pass2.html
29
-
30
- <tr>
31
- <td>
32
- <form id = test3 method = post action = pass3.html>
33
- <br><input type = image src=images/image1.gif name =sub3>
34
- </form>
35
- <td> this form has id = test3 method = post action = pass3.html
36
-
37
-
38
-
39
- </html>
@@ -1,45 +0,0 @@
1
- <html>
2
- <head>
3
- <title>
4
- Test page for Forms
5
- </title>
6
- </head>
7
- <body>
8
- CVS Revision: "$Revision: 1.3 $"
9
- <br>
10
- <br>
11
- <table>
12
- <tr>
13
- <td>
14
- <form method = get action = pass.html border=1>
15
- <input type = button name = b1 id = b2 value = "Click Me" >
16
- </form>
17
-
18
- <td> Form with no name
19
-
20
-
21
- <tr>
22
- <td>
23
- <form name = test2 method = get action = pass2.html>
24
- <br><input type = submit value=Submit>
25
- </form
26
- <td> This form is identical to the one above
27
-
28
-
29
-
30
- <tr>
31
- <td>
32
- <form name = test3 method = get action = pass2.html>
33
- <br><input type = submit value=Submit>
34
- </form
35
- <td> This form has a name
36
- <tr>
37
- <td>
38
- <form name = test2 method = get action = pass2.html>
39
- <br><input type = submit value=Submit>
40
- </form
41
- <td> This form has a name
42
-
43
-
44
- </body>
45
- </html>