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
data/watir/camel_case.rb DELETED
@@ -1,37 +0,0 @@
1
- # These are provided for backwards compatability with Watir 1.1
2
-
3
- module Watir
4
- module SupportsSubElements
5
- alias waitForIE wait
6
- alias fileField file_field
7
- alias textField text_field
8
- alias selectBox select_list
9
- alias checkBox checkbox
10
- end
11
- class IE
12
- alias getStatus status
13
- alias getDocument document
14
- alias pageContainsText contains_text
15
- alias waitForIE wait
16
- alias getHTML html
17
- alias getText text
18
- alias showFrames show_frames
19
- alias showForms show_forms
20
- alias showImages show_images
21
- alias showLinks show_links
22
- alias showActive show_active
23
- alias showAllObjects show_all_objects
24
- end
25
- class Frame
26
- alias getDocument document
27
- alias waitForIE wait
28
- end
29
- class Form
30
- alias waitForIE wait
31
- end
32
-
33
- class SpanDivCommon
34
- alias innerText text
35
- end
36
-
37
- end
@@ -1,19 +0,0 @@
1
- #
2
- # clickJSDialog.rb
3
- #
4
- #
5
- # This file contains the JS clicker when it runs as a separate process
6
-
7
- $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..'))
8
- puts $LOAD_PATH
9
- require 'watir/winClicker'
10
-
11
- button = "OK"
12
- button = ARGV[0] unless ARGV[0] == nil
13
- sleepTime = 0
14
- sleepTime = ARGV[1] unless ARGV[1] == nil
15
-
16
-
17
- clicker= WinClicker.new
18
- result = clicker.clickJavaScriptDialog( button )
19
- clicker = nil
@@ -1,53 +0,0 @@
1
-
2
- class Dir
3
- def Dir.visit(dir = '.', files_first = false, &block)
4
- if files_first
5
- paths = []
6
- Find.find(dir) { |path| paths << path }
7
- paths.reverse_each {|path| yield path}
8
- else
9
- Find.find(dir, &block)
10
- end
11
- end
12
- # simulates unix rm -rf command
13
- def Dir.rm_rf(dir)
14
- Dir.visit(dir, true) do |path|
15
- if FileTest.directory?(path)
16
- begin
17
- Dir.unlink(path)
18
- rescue # Security Exception for Content.IE
19
- end
20
- else
21
- begin
22
- File.unlink(path)
23
- rescue #Security exception index.dat etc.
24
- end
25
- end
26
- end
27
- end
28
- end
29
-
30
- module Watir
31
- module CookieManager
32
-
33
- class WatirHelper
34
- #taken from shlObj.h used in win32 SHGetSpecialFolderLocation
35
- #define CSIDL_INTERNET_CACHE 0x0020
36
- #define CSIDL_COOKIES 0x0021
37
- #define CSIDL_HISTORY 0x0022
38
- COOKIES = 0x0021
39
- INTERNET_CACHE = 0x0020
40
-
41
- def WatirHelper.getSpecialFolderLocation(specFolderName)
42
- shell = WIN32OLE.new("Shell.Application")
43
- folder = shell.Namespace(specFolderName)
44
- folderItem = folder.Self
45
- folderPath = folderItem.Path
46
- end
47
- def WatirHelper.deleteSpecialFolderContents(specFolderName)
48
- Dir.rm_rf(self.getSpecialFolderLocation(specFolderName))
49
- end
50
-
51
- end
52
- end
53
- end
data/watir/exceptions.rb DELETED
@@ -1,60 +0,0 @@
1
- module Watir
2
- module Exception
3
-
4
- # Root class for all Watir Exceptions
5
- class WatirException < RuntimeError
6
- def initialize(message="")
7
- super(message)
8
- end
9
- end
10
-
11
- # This exception is thrown if an attempt is made to access an object that doesn't exist
12
- class UnknownObjectException < WatirException
13
- end
14
-
15
- # This exception is thrown if an attempt is made to access an object that is in a disabled state
16
- class ObjectDisabledException < WatirException
17
- end
18
-
19
- # This exception is thrown if an attempt is made to access a frame that cannot be found
20
- class UnknownFrameException< WatirException
21
- end
22
-
23
- # This exception is thrown if an attempt is made to access a form that cannot be found
24
- class UnknownFormException< WatirException
25
- end
26
-
27
- # This exception is thrown if an attempt is made to access an object that is in a read only state
28
- class ObjectReadOnlyException < WatirException
29
- end
30
-
31
- # This exception is thrown if an attempt is made to access an object when the specified value cannot be found
32
- class NoValueFoundException < WatirException
33
- end
34
-
35
- # This exception gets raised if part of finding an object is missing
36
- class MissingWayOfFindingObjectException < WatirException
37
- end
38
-
39
- # This exception is raised if an attempt is made to access a table that doesn't exist
40
- class UnknownTableException < WatirException
41
- end
42
-
43
- # this exception is raised if an attempt is made to access a table cell that doesnt exist
44
- class UnknownCellException < WatirException
45
- end
46
-
47
- # This exception is thrown if the window cannot be found
48
- class NoMatchingWindowFoundException < WatirException
49
- end
50
-
51
- # This exception is thrown if an attemp is made to acces the status bar of the browser when it doesnt exist
52
- class NoStatusBarException < WatirException
53
- end
54
-
55
- # This exception is thrown if an http error, such as a 404, 500 etc is encountered while navigating
56
- class NavigationException < WatirException
57
- end
58
-
59
- end
60
- end
@@ -1,115 +0,0 @@
1
-
2
- require 'Win32API'
3
-
4
- module Watir
5
- module ScreenCapture
6
-
7
- KEYEVENTF_KEYUP = 0x2
8
- SW_HIDE = 0
9
- SW_SHOW = 5
10
- SW_SHOWNORMAL = 1
11
- VK_CONTROL = 0x11
12
- VK_F4 = 0x73
13
- VK_MENU = 0x12
14
- VK_RETURN = 0x0D
15
- VK_SHIFT = 0x10
16
- VK_SNAPSHOT = 0x2C
17
- VK_TAB = 0x09
18
- GMEM_MOVEABLE = 0x0002
19
- CF_TEXT = 1
20
-
21
- # this method saves the current window or whole screen as either a bitmap or a jpeg
22
- # It uses paint to save the file, so will barf if a duplicate filename is selected, or the path doesnt exist etc
23
- # * filename - string - the name of the file to save. If its not fully qualified the current directory is used
24
- # * active_window - boolean - if true, the whole screen is captured, if false, just the active window is captured
25
- # * save_as_bmp - boolean - if true saves the file as a bitmap, saves it as a jpeg otherwise
26
- def screen_capture(filename , active_window_only=false, save_as_bmp=false)
27
-
28
-
29
- keybd_event = Win32API.new("user32", "keybd_event", ['I','I','L','L'], 'V')
30
- vkKeyScan = Win32API.new("user32", "VkKeyScan", ['I'], 'I')
31
- winExec = Win32API.new("kernel32", "WinExec", ['P','L'], 'L')
32
- openClipboard = Win32API.new('user32', 'OpenClipboard', ['L'], 'I')
33
- setClipboardData = Win32API.new('user32', 'SetClipboardData', ['I', 'I'], 'I')
34
- closeClipboard = Win32API.new('user32', 'CloseClipboard', [], 'I')
35
- globalAlloc = Win32API.new('kernel32', 'GlobalAlloc', ['I', 'I'], 'I')
36
- globalLock = Win32API.new('kernel32', 'GlobalLock', ['I'], 'I')
37
- globalUnlock = Win32API.new('kernel32', 'GlobalUnlock', ['I'], 'I')
38
- memcpy = Win32API.new('msvcrt', 'memcpy', ['I', 'P', 'I'], 'I')
39
-
40
-
41
- filename = Dir.getwd.tr('/','\\') + '\\' + filename unless filename.index('\\')
42
-
43
- if active_window_only ==false
44
- keybd_event.Call(VK_SNAPSHOT,0,0,0) # Print Screen
45
- else
46
- keybd_event.Call(VK_SNAPSHOT,1,0,0) # Alt+Print Screen
47
- end
48
-
49
- winExec.Call('mspaint.exe', SW_SHOW)
50
- sleep(1)
51
-
52
- # Ctrl + V : Paste
53
- keybd_event.Call(VK_CONTROL, 1, 0, 0)
54
- keybd_event.Call(vkKeyScan.Call(?V), 1, 0, 0)
55
- keybd_event.Call(vkKeyScan.Call(?V), 1, KEYEVENTF_KEYUP, 0)
56
- keybd_event.Call(VK_CONTROL, 1, KEYEVENTF_KEYUP, 0)
57
-
58
-
59
- # Alt F + A : Save As
60
- keybd_event.Call(VK_MENU, 1, 0, 0)
61
- keybd_event.Call(vkKeyScan.Call(?F), 1, 0, 0)
62
- keybd_event.Call(vkKeyScan.Call(?F), 1, KEYEVENTF_KEYUP, 0)
63
- keybd_event.Call(VK_MENU, 1, KEYEVENTF_KEYUP, 0)
64
- keybd_event.Call(vkKeyScan.Call(?A), 1, 0, 0)
65
- keybd_event.Call(vkKeyScan.Call(?A), 1, KEYEVENTF_KEYUP, 0)
66
- sleep(1)
67
-
68
- # copy filename to clipboard
69
- hmem = globalAlloc.Call(GMEM_MOVEABLE, filename.length+1)
70
- mem = globalLock.Call(hmem)
71
- memcpy.Call(mem, filename, filename.length+1)
72
- globalUnlock.Call(hmem)
73
- openClipboard.Call(0)
74
- setClipboardData.Call(CF_TEXT, hmem)
75
- closeClipboard.Call
76
- sleep(1)
77
-
78
- # Ctrl + V : Paste
79
- keybd_event.Call(VK_CONTROL, 1, 0, 0)
80
- keybd_event.Call(vkKeyScan.Call(?V), 1, 0, 0)
81
- keybd_event.Call(vkKeyScan.Call(?V), 1, KEYEVENTF_KEYUP, 0)
82
- keybd_event.Call(VK_CONTROL, 1, KEYEVENTF_KEYUP, 0)
83
-
84
- if save_as_bmp == false
85
- # goto the combo box
86
- keybd_event.Call(VK_TAB, 1, 0, 0)
87
- keybd_event.Call(VK_TAB, 1, KEYEVENTF_KEYUP, 0)
88
- sleep(0.5)
89
-
90
- # select the first entry with J
91
- keybd_event.Call(vkKeyScan.Call(?J), 1, 0, 0)
92
- keybd_event.Call(vkKeyScan.Call(?J), 1, KEYEVENTF_KEYUP, 0)
93
- sleep(0.5)
94
- end
95
-
96
- # Enter key
97
- keybd_event.Call(VK_RETURN, 1, 0, 0)
98
- keybd_event.Call(VK_RETURN, 1, KEYEVENTF_KEYUP, 0)
99
- sleep(1)
100
-
101
- # Alt + F4 : Exit
102
- keybd_event.Call(VK_MENU, 1, 0, 0)
103
- keybd_event.Call(VK_F4, 1, 0, 0)
104
- keybd_event.Call(VK_F4, 1, KEYEVENTF_KEYUP, 0)
105
- keybd_event.Call(VK_MENU, 1, KEYEVENTF_KEYUP, 0)
106
- sleep(1)
107
-
108
- end
109
- end
110
-
111
- end
112
-
113
-
114
- #screenCapture( "f.bmp", false , true)
115
-
@@ -1,16 +0,0 @@
1
- #
2
- # setFileDialog.rb
3
- #
4
- #
5
- # This file contains the file dialog when it runs as a separate process
6
-
7
- $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), '..'))
8
- puts $LOAD_PATH
9
- require 'watir/winClicker'
10
-
11
- filepath = "invalid path passed to setFileDialog.rb"
12
- filepath = ARGV[0] unless ARGV[0] == nil
13
-
14
- clicker= WinClicker.new
15
- clicker.setFileRequesterFileName(filepath)
16
- clicker = nil
@@ -1,47 +0,0 @@
1
-
2
-
3
- module Test::Unit::Assertions
4
-
5
-
6
- def assert_false(boolean, message=nil)
7
- _wrap_assertion do
8
- assert_block("assert should not be called with a block.") { !block_given? }
9
- assert_block(build_message(message, "<?> is not false.", boolean)) { !boolean }
10
- end
11
- end
12
-
13
-
14
- def compareArrays( expectArray, actualArray)
15
- result = true
16
- expectArray.each_with_index do |element,i|
17
- #puts "Comparing #{element} #{element.class} with #{actualArray[i]} #{actualArray[i].class} "
18
- if element != actualArray[i]
19
- result = false
20
- break
21
- end
22
- end
23
-
24
- return result
25
-
26
- end
27
-
28
- def assert_arrayEquals(expectArray, actualArray, message = nil )
29
- _wrap_assertion do
30
- assert_block("assert should not be called with a block.") { !block_given? }
31
- assert_equal(expectArray.length, actualArray.length, "Lengths did not match")
32
-
33
- assert_block("contents are different." ){ compareArrays( expectArray, actualArray) }
34
- end #_wrap
35
- end #def
36
-
37
-
38
- def assert_arrayContains(array, string , message =nil)
39
-
40
- _wrap_assertion do
41
- assert_block("assert should not be called with a block.") { !block_given? }
42
- assert(array.kind_of?(Array) , "Must have an array")
43
- assert(array.include?(string) , message)
44
- end
45
- end
46
-
47
- end # module test