watir 1.4.1 → 1.5.2

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 (151) hide show
  1. data/bin/watir-console +1 -0
  2. data/changes.rb +119 -0
  3. data/license.rb +37 -0
  4. data/readme.rb +55 -120
  5. data/unittests/buttons_test.rb +107 -104
  6. data/unittests/buttons_xpath_test.rb +69 -0
  7. data/unittests/checkbox_test.rb +154 -141
  8. data/unittests/checkbox_xpath_test.rb +107 -0
  9. data/unittests/core_tests.rb +6 -2
  10. data/unittests/css_test.rb +50 -50
  11. data/unittests/defer_test.rb +47 -0
  12. data/unittests/dialog_test.rb +78 -0
  13. data/unittests/div2_xpath_test.rb +22 -0
  14. data/unittests/div_test.rb +159 -159
  15. data/unittests/div_xpath_test.rb +96 -0
  16. data/unittests/errorchecker_test.rb +22 -22
  17. data/unittests/filefield_test.rb +30 -23
  18. data/unittests/filefield_xpath_test.rb +35 -0
  19. data/unittests/form_test.rb +250 -229
  20. data/unittests/form_xpath_test.rb +253 -0
  21. data/unittests/frame_test.rb +123 -108
  22. data/unittests/google_form_test.rb +17 -0
  23. data/unittests/html/JavascriptClick.html +39 -0
  24. data/unittests/html/buttons1.html +3 -2
  25. data/unittests/html/checkboxes1.html +32 -14
  26. data/unittests/html/complex_table.html +1 -1
  27. data/unittests/html/depot_store.html +59 -0
  28. data/unittests/html/div.html +3 -21
  29. data/unittests/html/div_xml.html +21 -0
  30. data/unittests/html/fileupload.html +2 -2
  31. data/unittests/html/forms2.html +3 -3
  32. data/unittests/html/forms3.html +2 -2
  33. data/unittests/html/frame_links.html +2 -2
  34. data/unittests/html/google_india.html +119 -0
  35. data/unittests/html/iframeTest.html +2 -2
  36. data/unittests/html/images/map.GIF +0 -0
  37. data/unittests/html/images/map2.gif +0 -0
  38. data/unittests/html/images1.html +17 -2
  39. data/unittests/html/javascriptevents.html +3 -7
  40. data/unittests/html/links1.html +9 -8
  41. data/unittests/html/links_multi.html +14 -0
  42. data/unittests/html/list_matters.html +720 -0
  43. data/unittests/html/lists.html +18 -0
  44. data/unittests/html/map_test.html +31 -0
  45. data/unittests/html/modal_dialog.html +10 -0
  46. data/unittests/html/modal_dialog_launcher.html +12 -0
  47. data/unittests/html/new_browser.html +17 -0
  48. data/unittests/html/pass.html +3 -0
  49. data/unittests/html/popups1.html +1 -1
  50. data/unittests/html/pre.html +28 -0
  51. data/unittests/html/radioButtons1.html +6 -5
  52. data/unittests/html/selectboxes1.html +12 -11
  53. data/unittests/html/simple_table.html +1 -1
  54. data/unittests/html/simple_table_columns.html +1 -1
  55. data/unittests/html/table1.html +1 -1
  56. data/unittests/html/tableCell_using_xpath.html +19 -0
  57. data/unittests/html/textfields1.html +6 -4
  58. data/unittests/html/xpath_nbsp.html +12 -0
  59. data/unittests/ie_exists_test.rb +32 -0
  60. data/unittests/ie_mock.rb +78 -79
  61. data/unittests/ie_test.rb +39 -39
  62. data/unittests/images_test.rb +132 -155
  63. data/unittests/images_xpath_test.rb +91 -0
  64. data/unittests/links_multi_test.rb +36 -0
  65. data/unittests/links_test.rb +158 -152
  66. data/unittests/links_xpath_test.rb +40 -0
  67. data/unittests/lists_test.rb +29 -0
  68. data/unittests/map_test.rb +99 -0
  69. data/unittests/minmax_test.rb +23 -23
  70. data/unittests/navigate_test.rb +43 -51
  71. data/unittests/nbsp_xpath_test.rb +18 -0
  72. data/unittests/other/WindowLogonExample.rb +28 -0
  73. data/unittests/{WindowLogonExtra.rb → other/WindowLogonExtra.rb} +0 -0
  74. data/unittests/{all_tests_concurrent.rb → other/all_tests_concurrent.rb} +23 -23
  75. data/unittests/other/navigate_exception_test.rb +14 -0
  76. data/unittests/other/rexml_unit_test.rb +24 -0
  77. data/unittests/other/testcase_method_order_test.rb +36 -0
  78. data/unittests/other/testcase_verify_test.rb +25 -0
  79. data/unittests/other/wait_until_test.rb +99 -0
  80. data/unittests/pagecontainstext_test.rb +56 -37
  81. data/unittests/parent_child_test.rb +55 -0
  82. data/unittests/popups_test.rb +37 -37
  83. data/unittests/pre_test.rb +52 -0
  84. data/unittests/radios_test.rb +186 -155
  85. data/unittests/radios_xpath_test.rb +101 -0
  86. data/unittests/screen_capture_test.rb +41 -41
  87. data/unittests/selectbox_test.rb +223 -181
  88. data/unittests/selectbox_xpath_test.rb +113 -0
  89. data/unittests/setup.rb +29 -25
  90. data/unittests/speed_settings_test.rb +22 -0
  91. data/unittests/table_cell_using_xpath_test.rb +40 -0
  92. data/unittests/table_test.rb +315 -284
  93. data/unittests/table_xpath_test.rb +114 -0
  94. data/unittests/textarea_test.rb +81 -0
  95. data/unittests/textarea_xpath_test.rb +82 -0
  96. data/unittests/textfields_test.rb +205 -229
  97. data/unittests/textfields_xpath_test.rb +111 -0
  98. data/unittests/window_tests.rb +7 -0
  99. data/unittests/windows/attach_to_existing_window_test.rb +52 -0
  100. data/unittests/windows/attach_to_new_window_test.rb +82 -0
  101. data/unittests/windows/close_window_test.rb +22 -0
  102. data/unittests/windows/frame_links_test.rb +25 -0
  103. data/unittests/windows/ie-each_test.rb +48 -0
  104. data/unittests/windows/iedialog_test.rb +55 -0
  105. data/unittests/windows/js_events_test.rb +57 -0
  106. data/unittests/windows/jscriptExtraAlert.rb +6 -0
  107. data/unittests/windows/jscriptExtraConfirmCancel.rb +7 -0
  108. data/unittests/windows/jscriptExtraConfirmOk.rb +7 -0
  109. data/unittests/{jscriptPushButton.rb → windows/jscriptPushButton.rb} +1 -1
  110. data/unittests/windows/jscript_test.rb +64 -0
  111. data/unittests/windows/modal_dialog_test.rb +127 -0
  112. data/unittests/windows/new.rb +56 -0
  113. data/unittests/windows/open_close_test.rb +22 -0
  114. data/unittests/windows/send_keys_test.rb +34 -0
  115. data/unittests/xpath_tests.rb +10 -0
  116. data/watir.rb +4344 -3565
  117. data/watir/IEDialog/Release/IEDialog.dll +0 -0
  118. data/watir/WindowHelper.rb +13 -11
  119. data/watir/assertions.rb +36 -0
  120. data/watir/camel_case.rb +14 -5
  121. data/watir/close_all.rb +38 -0
  122. data/watir/contrib/enabled_popup.rb +21 -0
  123. data/watir/contrib/ie-new-process.rb +27 -0
  124. data/watir/contrib/page_checker.rb +29 -0
  125. data/watir/contrib/visible.rb +47 -0
  126. data/watir/cookiemanager.rb +4 -4
  127. data/watir/datahandler.rb +107 -0
  128. data/watir/dialog.rb +46 -0
  129. data/watir/elements.rb +65 -0
  130. data/watir/exceptions.rb +18 -36
  131. data/watir/ie-process.rb +40 -0
  132. data/watir/irb-history.rb +31 -0
  133. data/watir/process.rb +20 -0
  134. data/watir/testUnitAddons.rb +3 -42
  135. data/watir/testcase.rb +58 -0
  136. data/watir/utils.rb +20 -0
  137. data/watir/waiter.rb +88 -0
  138. data/watir/watir_simple.rb +4 -4
  139. data/watir/win32ole.rb +8 -0
  140. data/watir/win32ole/win32ole.so +0 -0
  141. data/watir/winClicker.rb +374 -400
  142. metadata +209 -128
  143. data/unittests/WindowLogonExample.rb +0 -30
  144. data/unittests/attachToExistingWindow_test.rb +0 -40
  145. data/unittests/js_events_test.rb +0 -77
  146. data/unittests/jscriptExtraAlert.rb +0 -6
  147. data/unittests/jscriptExtraConfirmCancel.rb +0 -7
  148. data/unittests/jscriptExtraConfirmOk.rb +0 -7
  149. data/unittests/jscript_test.rb +0 -57
  150. data/unittests/send_keys_test.rb +0 -29
  151. data/unittests/textAreafields_test.rb +0 -81
@@ -0,0 +1,69 @@
1
+ # feature tests for Buttons
2
+ # revision: $Revision: 962 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_Buttons_XPath < Test::Unit::TestCase
8
+ include Watir
9
+
10
+ def setup
11
+ $ie.goto($htmlRoot + "buttons1.html")
12
+ end
13
+
14
+ def test_properties
15
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@name='noName']/").id }
16
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@name='noName']/").name }
17
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@name='noName']/").disabled }
18
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@name='noName']/").type }
19
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@name='noName']/").value }
20
+
21
+ assert_equal("b1" , $ie.button(:xpath, "//input[@id='b2']/").name )
22
+ assert_equal("b2" , $ie.button(:xpath, "//input[@id='b2']/").id )
23
+ assert_equal("button" , $ie.button(:xpath, "//input[@id='b2']/").type )
24
+ end
25
+
26
+ def test_button_using_default
27
+ # since most of the time, a button will be accessed based on its caption, there is a default way of accessing it....
28
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@value='Missing Caption']/").click }
29
+
30
+ $ie.button(:xpath, "//input[@value='Click Me']/").click
31
+ assert($ie.text.include?("PASS") )
32
+ end
33
+
34
+ def test_Button_click_only
35
+ $ie.button(:xpath, "//input[@value='Click Me']/").click
36
+ assert($ie.text.include?("PASS") )
37
+ end
38
+
39
+ def test_button_click
40
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@value='Missing Caption']/").click }
41
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@id='MissingId']/").click }
42
+
43
+ assert_raises(ObjectDisabledException , "ObjectDisabledException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@value='Disabled Button']/").click }
44
+
45
+ $ie.button(:xpath, "//input[@value='Click Me']/").click
46
+ assert($ie.text.include?("PASS") )
47
+ end
48
+
49
+ def test_Button_Exists
50
+ assert($ie.button(:xpath, "//input[@value='Click Me']/").exists?)
51
+ assert($ie.button(:xpath, "//input[@value='Submit']/").exists?)
52
+ assert($ie.button(:xpath, "//input[@name='b1']/").exists?)
53
+ assert($ie.button(:xpath, "//input[@id='b2']/").exists?)
54
+
55
+ assert(!$ie.button(:xpath, "//input[@value='Missing Caption']/").exists?)
56
+ assert(!$ie.button(:xpath, "//input[@name='missingname']/").exists?)
57
+ assert(!$ie.button(:xpath, "//input[@id='missingid']/").exists?)
58
+ end
59
+
60
+ def test_Button_Enabled
61
+ assert($ie.button(:xpath, "//input[@value='Click Me']/").enabled?)
62
+ assert(!$ie.button(:xpath, "//input[@value='Disabled Button']/").enabled?)
63
+ assert(!$ie.button(:xpath, "//input[@name='b4']/").enabled?)
64
+ assert(!$ie.button(:xpath, "//input[@id='b5']/").enabled?)
65
+
66
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:xpath, "//input[@name='noName']/").enabled? }
67
+ end
68
+ end
69
+
@@ -1,149 +1,162 @@
1
1
  # feature tests for Check Boxes
2
- # revision: $Revision: 1.30 $
2
+ # revision: $Revision: 1164 $
3
3
 
4
4
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
5
  require 'unittests/setup'
6
6
 
7
7
  class TC_CheckBox < Test::Unit::TestCase
8
- include Watir
9
-
10
- def setup()
11
- $ie.goto($htmlRoot + "checkboxes1.html")
12
- end
13
-
14
- def test_checkbox_properties
15
- assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").id }
16
- assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").name }
17
- assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").disabled }
18
- assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").type }
19
- assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").value }
20
-
21
- assert_equal("box1" , $ie.checkbox(:index, 1).name )
22
- assert_equal("" , $ie.checkbox(:index, 1).id )
23
- assert_equal("checkbox" , $ie.checkbox(:index, 1).type )
24
- assert_equal("on" , $ie.checkbox(:index, 1).value )
25
- assert_equal(false , $ie.checkbox(:index, 1).disabled )
26
-
27
- assert_equal("1" , $ie.checkbox(:name,"box4").value )
28
- assert_equal("3" , $ie.checkbox(:name,"box4" , 3).value )
29
- assert_equal("checkbox" , $ie.checkbox(:name,"box4" , 3).type )
30
- assert_equal(false , $ie.checkbox(:name,"box4" , 3).disabled )
31
- assert_equal("" , $ie.checkbox(:name,"box4" , 3).id )
32
-
33
- assert_equal("box4-value5" , $ie.checkbox(:name,"box4" , 5).title)
34
- assert_equal("" , $ie.checkbox(:name,"box4" , 4).title)
35
- end
36
-
37
- def test_onClick
38
- assert_false($ie.button(:value , "foo").enabled?)
39
- $ie.checkBox(:name, "box5").set
40
- assert($ie.button(:value , "foo").enabled?)
41
-
42
- $ie.checkBox(:name, "box5").clear
43
- assert_false($ie.button(:value , "foo").enabled?)
44
-
45
- $ie.checkBox(:name, "box5").clear
46
- assert_false($ie.button(:value , "foo").enabled?)
47
- end
48
-
49
- def test_CheckBox_Exists
50
- assert($ie.checkBox(:name, "box1").exists?)
51
- assert_false($ie.checkBox(:name, "missing").exists?)
52
-
53
- assert($ie.checkbox(:name, "box4" , 1).exists?)
54
- assert_false($ie.checkbox(:name, "box4" , 22).exists?)
55
- end
56
-
57
- def test_checkbox_Enabled
58
- assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").enabled? }
59
- assert_raises(UnknownObjectException) { $ie.checkbox(:id, "noName").enabled? }
60
- assert_raises(UnknownObjectException) { $ie.checkbox(:name, "box4" , 6).enabled? }
61
-
62
- assert($ie.checkbox(:name, "box1").enabled?)
63
- assert_false($ie.checkbox(:name, "box2").enabled?)
64
-
65
- assert($ie.checkbox(:name, "box4", 4).enabled?)
66
- assert_false($ie.checkbox(:name, "box4" , 5 ).enabled?)
67
- end
68
-
69
- def test_checkbox_isSet
70
- assert_raises(UnknownObjectException ) { $ie.checkbox(:name, "noName").isSet? }
71
-
72
- assert_false($ie.checkbox(:name, "box1").isSet?)
73
- assert_false($ie.checkbox(:name, "box2").isSet?)
74
- assert($ie.checkbox(:name, "box3").isSet?)
75
-
76
- assert_false($ie.checkbox(:name, "box4" , 2 ).isSet?)
77
- assert($ie.checkbox(:name, "box4" , 1 ).isSet?)
78
- end
79
-
80
- def test_checkbox_clear
81
- assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").clear }
82
- $ie.checkbox(:name, "box1").clear
83
- assert_false($ie.checkbox(:name, "box1").isSet?)
84
-
85
- assert_raises(ObjectDisabledException) { $ie.checkbox(:name, "box2").clear }
86
- assert_false($ie.checkbox(:name, "box2").isSet?)
87
-
88
- $ie.checkbox(:name, "box3").clear
89
- assert_false($ie.checkbox(:name, "box3").isSet?)
90
-
91
- $ie.checkbox(:name, "box4" , 1).clear
92
- assert_false($ie.checkbox(:name, "box4" , 1).isSet?)
93
- end
94
-
95
- def test_checkbox_getState
96
- assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").getState }
97
- assert_equal( false , $ie.checkbox(:name, "box1").getState )
98
- assert_equal( true , $ie.checkbox(:name, "box3").getState)
99
-
100
- # checkboxes that have the same name but different values
101
- assert_equal( false , $ie.checkbox(:name, "box4" , 2).getState )
102
- assert_equal( true , $ie.checkbox(:name, "box4" , 1).getState)
8
+ include Watir
9
+
10
+ def setup
11
+ $ie.goto($htmlRoot + "checkboxes1.html")
12
+ end
13
+
14
+ def test_checkbox_properties
15
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").id }
16
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").name }
17
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").disabled }
18
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").type }
19
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:name, "noName").value }
20
+
21
+ assert_equal("box1" , $ie.checkbox(:index, 1).name )
22
+ assert_equal("" , $ie.checkbox(:index, 1).id )
23
+ assert_equal("checkbox" , $ie.checkbox(:index, 1).type )
24
+ assert_equal("on" , $ie.checkbox(:index, 1).value )
25
+ assert_equal(false , $ie.checkbox(:index, 1).disabled )
26
+
27
+ assert_equal("check_box_style" , $ie.checkbox(:name, "box1").class_name)
28
+ assert_equal("" , $ie.checkbox(:name, "box2").class_name)
29
+
30
+ assert_equal("1" , $ie.checkbox(:name,"box4").value )
31
+ assert_equal("3" , $ie.checkbox(:name,"box4" , 3).value )
32
+ assert($ie.checkbox(:name, "box6").exists?)
33
+ assert_equal("checkbox" , $ie.checkbox(:name,"box4" , 3).type )
34
+ assert_equal("checkbox" , $ie.checkbox(:name,"box6" , 'Milk').type )
35
+ assert_equal(false , $ie.checkbox(:name,"box4" , 3).disabled )
36
+ assert_equal("" , $ie.checkbox(:name,"box4" , 3).id )
37
+
38
+ assert_equal("box4-value5" , $ie.checkbox(:name,"box4" , 5).title)
39
+ assert_equal("" , $ie.checkbox(:name,"box4" , 4).title)
40
+ end
41
+
42
+ def test_onClick
43
+ assert(!$ie.button(:value , "foo").enabled?)
44
+ $ie.checkBox(:name, "box5").set
45
+ assert($ie.button(:value , "foo").enabled?)
46
+
47
+ $ie.checkBox(:name, "box5").clear
48
+ assert(!$ie.button(:value , "foo").enabled?)
49
+
50
+ $ie.checkBox(:name, "box5").clear
51
+ assert(!$ie.button(:value , "foo").enabled?)
52
+ end
53
+
54
+ def test_CheckBox_Exists
55
+ assert($ie.checkBox(:name, "box1").exists?)
56
+ assert(!$ie.checkBox(:name, "missing").exists?)
57
+
58
+ assert($ie.checkbox(:name, "box4" , 1).exists?)
59
+ assert(!$ie.checkbox(:name, "box4" , 22).exists?)
60
+ end
61
+
62
+ def test_checkbox_Enabled
63
+ assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").enabled? }
64
+ assert_raises(UnknownObjectException) { $ie.checkbox(:id, "noName").enabled? }
65
+ assert_raises(UnknownObjectException) { $ie.checkbox(:name, "box4" , 6).enabled? }
66
+
67
+ assert($ie.checkbox(:name, "box1").enabled?)
68
+ assert(!$ie.checkbox(:name, "box2").enabled?)
69
+
70
+ assert($ie.checkbox(:name, "box4", 4).enabled?)
71
+ assert(!$ie.checkbox(:name, "box4" , 5 ).enabled?)
72
+ end
73
+
74
+ def test_checkbox_isSet
75
+ assert_raises(UnknownObjectException ) { $ie.checkbox(:name, "noName").isSet? }
76
+
77
+ assert(!$ie.checkbox(:name, "box1").isSet?)
78
+ assert(!$ie.checkbox(:name, "box2").isSet?)
79
+ assert($ie.checkbox(:name, "box3").isSet?)
80
+
81
+ assert(!$ie.checkbox(:name, "box4" , 2 ).isSet?)
82
+ assert($ie.checkbox(:name, "box4" , 1 ).isSet?)
83
+ assert(!$ie.checkbox(:name, 'box6', 'Milk').isSet?)
84
+ end
85
+
86
+ def test_checkbox_clear
87
+ assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").clear }
88
+ $ie.checkbox(:name, "box1").clear
89
+ assert(!$ie.checkbox(:name, "box1").isSet?)
90
+
91
+ assert_raises(ObjectDisabledException) { $ie.checkbox(:name, "box2").clear }
92
+ assert(!$ie.checkbox(:name, "box2").isSet?)
93
+
94
+ $ie.checkbox(:name, "box3").clear
95
+ assert(!$ie.checkbox(:name, "box3").isSet?)
96
+
97
+ $ie.checkbox(:name, "box4" , 1).clear
98
+ assert(!$ie.checkbox(:name, "box4" , 1).isSet?)
99
+
100
+ $ie.checkbox(:name, "box6" , 'Tea').clear
101
+ assert(!$ie.checkbox(:name, "box6" , 'Tea').isSet?)
102
+
103
+ end
104
+
105
+ def test_checkbox_getState
106
+ assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").getState }
107
+ assert_equal( false , $ie.checkbox(:name, "box1").getState )
108
+ assert_equal( true , $ie.checkbox(:name, "box3").getState)
109
+
110
+ # checkboxes that have the same name but different values
111
+ assert_equal( false , $ie.checkbox(:name, "box4" , 2).getState )
112
+ assert_equal( true , $ie.checkbox(:name, "box4" , 1).getState)
113
+ end
114
+
115
+ def test_checkbox_set
116
+ assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").set }
117
+ $ie.checkbox(:name, "box1").set
118
+ assert($ie.checkbox(:name, "box1").isSet?)
119
+
120
+ assert_raises(ObjectDisabledException) { $ie.checkbox(:name, "box2").set }
121
+
122
+ $ie.checkbox(:name, "box3").set
123
+ assert($ie.checkbox(:name, "box3").isSet?)
124
+
125
+ # checkboxes that have the same name but different values
126
+ $ie.checkbox(:name, "box4" , 3).set
127
+ assert($ie.checkbox(:name, "box4" , 3).isSet?)
128
+
129
+ # test set using the optinal true/false
130
+ # assumes the checkbox is already checked
131
+ $ie.checkbox(:name, "box1").set( false )
132
+ assert(!$ie.checkbox(:name, "box1").isSet?)
133
+
134
+ $ie.checkbox(:name, "box1").set( true )
135
+ assert($ie.checkbox(:name, "box1").isSet?)
136
+
137
+ $ie.checkbox(:name, "box6", 'Tea').set( false )
138
+ assert(!$ie.checkbox(:name, "box6", 'Tea').isSet?)
139
+
140
+ $ie.checkbox(:name, "box6", 'Tea').set( true )
141
+ assert($ie.checkbox(:name, "box6", 'Tea').isSet?)
142
+
143
+ end
144
+
145
+ def test_checkbox_iterator
146
+
147
+ assert_equal(13, $ie.checkboxes.length)
148
+ assert_equal("box1" , $ie.checkboxes[1].name )
149
+
150
+ index=1
151
+ $ie.checkboxes.each do |c|
152
+ assert_equal( $ie.checkbox(:index, index).name , c.name )
153
+ assert_equal( $ie.checkbox(:index, index).id, c.id )
154
+ assert_equal( $ie.checkbox(:index, index).value, c.value )
155
+ index+=1
103
156
  end
104
-
105
- def test_checkbox_set
106
- assert_raises(UnknownObjectException) { $ie.checkbox(:name, "noName").set }
107
- $ie.checkbox(:name, "box1").set
108
- assert($ie.checkbox(:name, "box1").isSet?)
109
-
110
- assert_raises(ObjectDisabledException) { $ie.checkbox(:name, "box2").set }
111
-
112
- $ie.checkbox(:name, "box3").set
113
- assert($ie.checkbox(:name, "box3").isSet?)
114
-
115
- # checkboxes that have the same name but different values
116
- $ie.checkbox(:name, "box4" , 3).set
117
- assert($ie.checkbox(:name, "box4" , 3).isSet?)
118
-
119
- # test set using the optinal true/false
120
- # assumes the checkbox is already checked
121
- $ie.checkbox(:name, "box1").set( false )
122
- assert_false($ie.checkbox(:name, "box1").isSet?)
123
-
124
- $ie.checkbox(:name, "box1").set( true )
125
- assert($ie.checkbox(:name, "box1").isSet?)
126
-
127
-
128
-
129
-
130
- end
131
-
132
- def test_checkbox_iterator
133
-
134
- assert_equal(11, $ie.checkboxes.length)
135
- assert_equal("box1" , $ie.checkboxes[1].name )
136
-
137
- index=1
138
- $ie.checkboxes.each do |c|
139
- assert_equal( $ie.checkbox(:index, index).name , c.name )
140
- assert_equal( $ie.checkbox(:index, index).id, c.id )
141
- assert_equal( $ie.checkbox(:index, index).value, c.value )
142
- index+=1
143
- end
144
- assert_equal(index-1, $ie.checkboxes.length)
145
-
146
- end
147
-
148
-
157
+ assert_equal(index-1, $ie.checkboxes.length)
158
+
159
+ end
160
+
161
+
149
162
  end
@@ -0,0 +1,107 @@
1
+ # feature tests for Check Boxes
2
+ # revision: $Revision: 962 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_CheckBox_XPath < Test::Unit::TestCase
8
+ include Watir
9
+
10
+ def setup
11
+ $ie.goto($htmlRoot + "checkboxes1.html")
12
+ end
13
+
14
+ def test_checkbox_properties
15
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:xpath , "//input[@name='noName']/").id }
16
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:xpath , "//input[@name='noName']/").name }
17
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:xpath , "//input[@name='noName']/").disabled }
18
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:xpath , "//input[@name='noName']/").type }
19
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.checkbox(:xpath , "//input[@name='noName']/").value }
20
+
21
+ assert_equal("1" , $ie.checkbox(:xpath , "//input[@name='box4']/").value )
22
+ assert_equal("3" , $ie.checkbox(:xpath , "//input[@name='box4' and @value='3']/").value )
23
+ assert_equal("checkbox" , $ie.checkbox(:xpath , "//input[@name='box4' and @value='3']/").type )
24
+ assert_equal(false , $ie.checkbox(:xpath , "//input[@name='box4' and @value='3']/").disabled )
25
+ assert_equal("" , $ie.checkbox(:xpath , "//input[@name='box4' and @value='3']/").id )
26
+
27
+ assert_equal("box4-value5" , $ie.checkbox(:xpath , "//input[@name='box4' and @value='5']/").title)
28
+ assert_equal("" , $ie.checkbox(:xpath , "//input[@name='box4' and @value='4']/").title)
29
+ end
30
+
31
+ def test_CheckBox_Exists
32
+ assert($ie.checkbox(:xpath , "//input[@name='box4' and @value='1']/").exists?)
33
+ assert(!$ie.checkbox(:xpath , "//input[@name='box4' and @value='22']/").exists?)
34
+ end
35
+
36
+ def test_checkbox_Enabled
37
+ assert_raises(UnknownObjectException) { $ie.checkbox(:xpath , "//input[@name='noName']/").enabled? }
38
+ assert_raises(UnknownObjectException) { $ie.checkbox(:xpath , "//input[@id='noName']/").enabled? }
39
+ assert_raises(UnknownObjectException) { $ie.checkbox(:xpath , "//input[@name='box4' and @value='6']/").enabled? }
40
+
41
+ assert($ie.checkbox(:xpath , "//input[@name='box1']/").enabled?)
42
+ assert(!$ie.checkbox(:xpath , "//input[@name='box2']/").enabled?)
43
+
44
+ assert($ie.checkbox(:xpath , "//input[@name='box4' and @value='4']/").enabled?)
45
+ assert(!$ie.checkbox(:xpath , "//input[@name='box4' and @value='5']/").enabled?)
46
+ end
47
+
48
+ def test_checkbox_isSet
49
+ assert_raises(UnknownObjectException ) { $ie.checkbox(:xpath , "//input[@name='noName']/").isSet? }
50
+
51
+ assert(!$ie.checkbox(:xpath , "//input[@name='box1']/").isSet?)
52
+ assert(!$ie.checkbox(:xpath , "//input[@name='box2']/").isSet?)
53
+ assert($ie.checkbox(:xpath , "//input[@name='box3']/").isSet?)
54
+
55
+ assert(!$ie.checkbox(:xpath , "//input[@name='box4' and @value='2']/").isSet?)
56
+ assert($ie.checkbox(:xpath , "//input[@name='box4' and @value='1']/").isSet?)
57
+ end
58
+
59
+ def test_checkbox_clear
60
+ assert_raises(UnknownObjectException) { $ie.checkbox(:xpath , "//input[@name='noName']/").clear }
61
+ $ie.checkbox(:xpath , "//input[@name='box1']/").clear
62
+ assert(!$ie.checkbox(:xpath , "//input[@name='box1']/").isSet?)
63
+
64
+ assert_raises(ObjectDisabledException) { $ie.checkbox(:xpath , "//input[@name='box2']/").clear }
65
+ assert(!$ie.checkbox(:xpath , "//input[@name='box2']/").isSet?)
66
+
67
+ $ie.checkbox(:xpath , "//input[@name='box3']/").clear
68
+ assert(!$ie.checkbox(:xpath , "//input[@name='box3']/").isSet?)
69
+
70
+ $ie.checkbox(:xpath , "//input[@name='box4' and @value='1']/").clear
71
+ assert(!$ie.checkbox(:xpath , "//input[@name='box4' and @value='1']/").isSet?)
72
+ end
73
+
74
+ def test_checkbox_getState
75
+ assert_raises(UnknownObjectException) { $ie.checkbox(:xpath , "//input[@name='noName']/").getState }
76
+ assert_equal( false , $ie.checkbox(:xpath , "//input[@name='box1']/").getState )
77
+ assert_equal( true , $ie.checkbox(:xpath , "//input[@name='box3']/").getState)
78
+
79
+ # checkboxes that have the same name but different values
80
+ assert_equal( false , $ie.checkbox(:xpath , "//input[@name='box4' and @value='2']/").getState )
81
+ assert_equal( true , $ie.checkbox(:xpath , "//input[@name='box4' and @value='1']/").getState)
82
+ end
83
+
84
+ def test_checkbox_set
85
+ assert_raises(UnknownObjectException) { $ie.checkbox(:xpath , "//input[@name='noName']/").set }
86
+ $ie.checkbox(:xpath , "//input[@name='box1']/").set
87
+ assert($ie.checkbox(:xpath , "//input[@name='box1']/").isSet?)
88
+
89
+ assert_raises(ObjectDisabledException) { $ie.checkbox(:xpath , "//input[@name='box2']/").set }
90
+
91
+ $ie.checkbox(:xpath , "//input[@name='box3']/").set
92
+ assert($ie.checkbox(:xpath , "//input[@name='box3']/").isSet?)
93
+
94
+ # checkboxes that have the same name but different values
95
+ $ie.checkbox(:xpath , "//input[@name='box4' and @value='3']/").set
96
+ assert($ie.checkbox(:xpath , "//input[@name='box4' and @value='3']/").isSet?)
97
+
98
+ # test set using the optinal true/false
99
+ # assumes the checkbox is already checked
100
+ $ie.checkbox(:xpath , "//input[@name='box1']/").set( false )
101
+ assert(!$ie.checkbox(:xpath , "//input[@name='box1']/").isSet?)
102
+
103
+ $ie.checkbox(:xpath , "//input[@name='box1']/").set( true )
104
+ assert($ie.checkbox(:xpath , "//input[@name='box1']/").isSet?)
105
+
106
+ end
107
+ end