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,253 @@
1
+ # feature tests for Forms
2
+ # revision: $Revision: 1201 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_Forms2_XPath < Test::Unit::TestCase
8
+ def setup
9
+ $ie.goto($htmlRoot + "forms2.html")
10
+ end
11
+
12
+ def test_Form_Exists
13
+ assert($ie.form(:xpath , "//form[@name='test2']/").exists?)
14
+ assert(!$ie.form(:xpath , "//form[@name='missing']/").exists?)
15
+
16
+ assert($ie.form(:xpath , "//form[@method='get']/").exists?)
17
+ assert(!$ie.form(:xpath , "//form[@method='missing']/").exists?)
18
+
19
+ assert($ie.form(:xpath , "//form[@action='pass.html']/").exists?)
20
+ assert(!$ie.form(:xpath , "//form[@action='missing']/").exists?)
21
+ end
22
+
23
+ def test_ButtonInForm
24
+ assert($ie.form(:xpath , "//form[@name='test2']/").button(:caption , "Submit").exists?)
25
+ end
26
+ end
27
+
28
+ require 'unittests/iostring'
29
+ class TC_Form_Display < Test::Unit::TestCase
30
+ include MockStdoutTestCase
31
+ def test_showforms
32
+ $ie.goto($htmlRoot + "forms2.html")
33
+ $stdout = @mockout
34
+ $ie.show_forms
35
+ assert_equal(<<END_OF_MESSAGE, @mockout)
36
+ There are 4 forms
37
+ Form name:
38
+ id:
39
+ method: get
40
+ action: pass.html
41
+ Form name: test2
42
+ id: f2
43
+ method: get
44
+ action: pass2.html
45
+ Form name: test3
46
+ id:
47
+ method: get
48
+ action: pass2.html
49
+ Form name: test2
50
+ id:
51
+ method: get
52
+ action: pass2.html
53
+ END_OF_MESSAGE
54
+ end
55
+ end
56
+
57
+ class TC_Forms3 < Test::Unit::TestCase
58
+ def setup
59
+ $ie.goto($htmlRoot + "forms3.html")
60
+ end
61
+
62
+ def test_Form_Exists
63
+ assert($ie.form(:xpath , "//form[@name='test2']/").exists?)
64
+ assert(!$ie.form(:xpath , "//form[@name='missing']/").exists?)
65
+
66
+ assert($ie.form(:xpath , "//form[@method='get']/").exists?)
67
+ assert(!$ie.form(:xpath , "//form[@method='missing']/").exists?)
68
+
69
+ assert($ie.form(:xpath , "//form[@action='pass.html']/").exists?)
70
+ assert(!$ie.form(:xpath , "//form[@action='missing']/").exists?)
71
+ end
72
+
73
+ def test_getObject_when_non_watir_object_before_it
74
+ # test for bug reported by Scott Pack, http://rubyforge.org/pipermail/wtr-general/2005-June/002223.html
75
+ assert_equal("check1" , $ie.checkbox(:index,1).name )
76
+ end
77
+
78
+ def test_showforms # add verification of output!
79
+ $ie.show_forms
80
+ end
81
+
82
+ def test_reset
83
+
84
+ $ie.text_field(:id, "t1").set("Hello, reset test!")
85
+ assert_equal($ie.text_field(:id, 't1').value, 'Hello, reset test!')
86
+
87
+ $ie.button(:caption, "Reset").click
88
+ assert_equal("" , $ie.text_field(:id, 't1').value )
89
+
90
+ # also verify it works under a form
91
+ $ie.text_field(:id, "t1").set("reset test - using a form")
92
+ assert_equal($ie.text_field(:id, 't1').value, 'reset test - using a form')
93
+
94
+ # also verify it works under a form, this time using the :id attribute
95
+ $ie.text_field(:id, "t1").set("reset test - using a form")
96
+ assert_equal($ie.text_field(:id, 't1').value, 'reset test - using a form')
97
+ end
98
+
99
+ def test_flash1
100
+ $ie.form(:xpath , "//form[@name='test2']/").button(:caption , "Submit").flash
101
+ end
102
+
103
+ def test_objects_with_same_name
104
+ assert_equal('textfield' ,$ie.text_field( :name , 'g1').value )
105
+ assert_equal('button' ,$ie.button( :name , 'g1').value )
106
+ assert_equal('1' ,$ie.checkbox( :name , 'g1').value )
107
+ assert_equal('2' ,$ie.radio( :name , 'g1').value )
108
+
109
+ assert_equal('textfield_id' ,$ie.text_field( :id , 'g1').value )
110
+ assert_equal('button_id' ,$ie.button( :id , 'g1').value )
111
+ assert_equal('1_id' ,$ie.checkbox( :id , 'g1').value )
112
+ assert_equal('2_id' ,$ie.radio( :id , 'g1').value )
113
+ end
114
+
115
+ def test_flash2
116
+ $ie.button(:value, 'Click Me').flash
117
+ assert_raises( Watir::UnknownObjectException ) { $ie.text_field( :name , 'g177').flash }
118
+ end
119
+
120
+ def test_showElements # add verification!
121
+ $ie.show_all_objects
122
+ end
123
+
124
+ def test_showText
125
+ puts $ie.text
126
+ end
127
+
128
+ def test_showHTML
129
+ puts $ie.html
130
+ end
131
+
132
+ def test_submitWithImage
133
+ assert( $ie.button(:alt , "submit").exists? )
134
+ assert( $ie.button(:alt , /sub/).exists? )
135
+
136
+ assert(! $ie.button(:alt , "missing").exists? )
137
+ assert(! $ie.button(:alt , /missing/).exists? )
138
+
139
+ #assert( $ie.button(:src , "file:///#{$myDir}/html/images/button.jpg").exists? ) # this doesnt work for everybody
140
+ assert( $ie.button(:src , /button/).exists? )
141
+
142
+ assert(! $ie.button(:src , "missing").exists? )
143
+ assert(! $ie.button(:src , /missing/).exists? )
144
+ assert_nothing_raised("raised an exception when it shouldnt have") { $ie.button(:src , /button/).click }
145
+
146
+ assert( $ie.contains_text("PASS") )
147
+ end
148
+ end
149
+
150
+ class TC_Forms4 < Test::Unit::TestCase
151
+ def setup
152
+ $ie.goto($htmlRoot + "forms4.html")
153
+ end
154
+
155
+ def test_find_text_field_ignoring_form
156
+ assert_equal($ie.text_field(:name, 'name').value, 'apple') # should it raise a not-unique error instead?
157
+ end
158
+
159
+ def test_correct_form_field_is_found_using_form_name
160
+ assert_equal($ie.form(:xpath , "//form[@name='apple_form']/").text_field(:name, 'name').value, 'apple')
161
+ assert_equal($ie.form(:xpath , "//form[@name='banana_form']/").text_field(:name, 'name').value, 'banana')
162
+ end
163
+
164
+ def test_using_text_on_form
165
+ $ie.form(:xpath , "//form[@name='apple_form']/").text_field(:name, 'name').set('strudel')
166
+ assert_equal($ie.form(:index, 1).text_field(:name, 'name').value, 'strudel')
167
+ end
168
+
169
+ def test_submit
170
+ $ie.form(:xpath , "//form[@name='apple_form']/").submit
171
+ assert( $ie.contains_text("PASS") )
172
+ end
173
+ end
174
+
175
+ class TC_Hidden_Fields < Test::Unit::TestCase
176
+ def setup
177
+ $ie.goto($htmlRoot + "forms3.html")
178
+ end
179
+
180
+ def test_hidden
181
+
182
+ # test using index
183
+ assert( $ie.hidden(:index,1).exists? )
184
+ assert( $ie.hidden(:index,2).exists? )
185
+ assert(! $ie.hidden(:index,3).exists? )
186
+
187
+ $ie.hidden(:index,1).value = 44
188
+ $ie.hidden(:index,2).value = 55
189
+
190
+ $ie.button(:value , "Show Hidden").click
191
+
192
+ assert_equal("44" , $ie.text_field(:name , "vis1").value )
193
+ assert_equal("55" , $ie.text_field(:name , "vis2").value )
194
+
195
+ # test using name and ID
196
+ assert( $ie.hidden(:name ,"hid1").exists? )
197
+ assert( $ie.hidden(:id,"hidden_1").exists? )
198
+ assert(! $ie.hidden(:name,"hidden_44").exists? )
199
+ assert(! $ie.hidden(:id,"hidden_55").exists? )
200
+
201
+ $ie.hidden(:name ,"hid1").value = 444
202
+ $ie.hidden(:id,"hidden_1").value = 555
203
+
204
+ $ie.button(:value , "Show Hidden").click
205
+
206
+ assert_equal("444" , $ie.text_field(:name , "vis1").value )
207
+ assert_equal("555" , $ie.text_field(:name ,"vis2").value )
208
+
209
+ # test the over-ridden append method
210
+ $ie.hidden(:name ,"hid1").append("a")
211
+ $ie.button(:value , "Show Hidden").click
212
+ assert_equal("444a" , $ie.text_field(:name , "vis1").value )
213
+ assert_equal("555" , $ie.text_field(:name ,"vis2").value )
214
+
215
+ # test the over-ridden clear method
216
+ $ie.hidden(:name ,"hid1").clear
217
+ $ie.button(:value , "Show Hidden").click
218
+ assert_equal("" , $ie.text_field(:name , "vis1").value )
219
+ assert_equal("555" , $ie.text_field(:name ,"vis2").value )
220
+
221
+ # test using a form
222
+ assert( $ie.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name ,"hid1").exists? )
223
+ assert( $ie.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_1").exists? )
224
+ assert(! $ie.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name,"hidden_44").exists? )
225
+ assert(! $ie.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_55").exists? )
226
+
227
+ $ie.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name ,"hid1").value = 222
228
+ $ie.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_1").value = 333
229
+
230
+ $ie.button(:value , "Show Hidden").click
231
+
232
+ assert_equal("222" , $ie.text_field(:name , "vis1").value )
233
+ assert_equal("333" , $ie.text_field(:name ,"vis2").value )
234
+
235
+ # iterators
236
+ assert_equal(2, $ie.hiddens.length)
237
+ count =1
238
+ $ie.hiddens.each do |h|
239
+ case count
240
+ when 1
241
+ assert_equal( "", h.id)
242
+ assert_equal( "hid1", h.name)
243
+ when 2
244
+ assert_equal( "", h.name)
245
+ assert_equal( "hidden_1", h.id)
246
+ end
247
+ count+=1
248
+ end
249
+
250
+ assert_equal("hid1" , $ie.hiddens[1].name )
251
+ assert_equal("hidden_1" , $ie.hiddens[2].id )
252
+ end
253
+ end
@@ -1,141 +1,156 @@
1
1
  # feature tests for Frames
2
- # revision: $Revision: 1.22.2.1 $
2
+ # revision: $Revision: 1204 $
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_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
-
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(!$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(!$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(!$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
54
  end
55
55
 
56
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
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
+ assert($ie.frame(:id, 'first_frame').button(:id, "b2").enabled?)
70
+ end
71
+
72
+ def test_frame_by_src
73
+ assert($ie.frame(:src, /pass/).button(:value, 'Close Window').exists?)
74
+ end
75
+
70
76
  end
71
77
 
72
78
  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
-
79
+ include Watir
80
+
81
+ def setup
82
+ $ie.goto($htmlRoot + "nestedFrames.html")
83
+ end
84
+
85
+ def test_frame
86
+ assert_raises(UnknownFrameException) { $ie.frame("missingFrame").button(:id, "b2").enabled? }
87
+ assert_raises(UnknownFrameException) { $ie.frame("nestedFrame").frame("subFrame").button(:id, "b2").enabled? }
88
+ assert($ie.frame("nestedFrame").frame("senderFrame").button(:name, "sendIt").enabled?)
89
+ $ie.frame("nestedFrame").frame("senderFrame").text_field(:index, "1").set("Hello")
90
+ $ie.frame("nestedFrame").frame("senderFrame").button(:name, "sendIt").click
91
+ assert($ie.frame("nestedFrame").frame("receiverFrame").text_field(:name, "receiverText").verify_contains("Hello"))
92
+
93
+ end
94
+
88
95
  end
89
96
 
90
97
  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
-
98
+ include Watir
99
+
100
+ def setup
101
+ $ie.goto($htmlRoot + "iframeTest.html")
102
+ end
103
+
104
+ def test_Iframe
105
+ $ie.frame("senderFrame").text_field(:name , "textToSend").set( "Hello World")
106
+ $ie.frame("senderFrame").button(:index, 1).click
107
+ assert( $ie.frame("receiverFrame").text_field(:name , "receiverText").verify_contains("Hello World") )
108
+ assert_equal($ie.frame(:src, /iframeTest2/).text_field(:name, 'receiverText').value, "Hello World")
109
+ end
110
+
111
+ #VALIDATE THAT WE CAN GET THERE VIA id
112
+ def test_iframes_id
113
+ $ie.frame(:id, "sf").text_field(:name , "textToSend").set( "Hello World")
114
+ $ie.frame(:id, "sf").button(:name,'sendIt').click
115
+ assert( $ie.frame("receiverFrame").text_field(:name , "receiverText").verify_contains("Hello World") )
116
+ end
117
+
103
118
  end
104
119
 
105
120
  require 'unittests/iostring'
106
121
  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)
122
+ include MockStdoutTestCase
123
+
124
+ def capture_and_compare(page, expected)
125
+ $ie.goto($htmlRoot + page)
126
+ $stdout = @mockout
127
+ $ie.showFrames
128
+ assert_equal(expected, @mockout)
129
+ end
130
+
131
+ def test_show_nested_frames
132
+ capture_and_compare("nestedFrames.html", <<END_OF_MESSAGE)
118
133
  there are 2 frames
119
134
  frame index: 1 name: nestedFrame
120
135
  frame index: 2 name: nestedFrame2
121
136
  END_OF_MESSAGE
122
- end
123
-
124
- def test_button_frames
125
- capture_and_compare("frame_buttons.html", <<END_OF_MESSAGE)
137
+ end
138
+
139
+ def test_button_frames
140
+ capture_and_compare("frame_buttons.html", <<END_OF_MESSAGE)
126
141
  there are 2 frames
127
142
  frame index: 1 name: buttonFrame
128
143
  frame index: 2 name: buttonFrame2
129
144
  END_OF_MESSAGE
130
- end
131
-
132
- def test_iframes
133
- capture_and_compare("iframeTest.html", <<END_OF_MESSAGE)
145
+ end
146
+
147
+ def test_iframes
148
+ capture_and_compare("iframeTest.html", <<END_OF_MESSAGE)
134
149
  there are 2 frames
135
150
  frame index: 1 name: senderFrame
136
151
  frame index: 2 name: receiverFrame
137
152
  END_OF_MESSAGE
138
- end
139
-
153
+ end
154
+
140
155
  end
141
156