watir 1.4.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
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