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.
- data/bin/watir-console +1 -0
- data/changes.rb +119 -0
- data/license.rb +37 -0
- data/readme.rb +55 -120
- data/unittests/buttons_test.rb +107 -104
- data/unittests/buttons_xpath_test.rb +69 -0
- data/unittests/checkbox_test.rb +154 -141
- data/unittests/checkbox_xpath_test.rb +107 -0
- data/unittests/core_tests.rb +6 -2
- data/unittests/css_test.rb +50 -50
- data/unittests/defer_test.rb +47 -0
- data/unittests/dialog_test.rb +78 -0
- data/unittests/div2_xpath_test.rb +22 -0
- data/unittests/div_test.rb +159 -159
- data/unittests/div_xpath_test.rb +96 -0
- data/unittests/errorchecker_test.rb +22 -22
- data/unittests/filefield_test.rb +30 -23
- data/unittests/filefield_xpath_test.rb +35 -0
- data/unittests/form_test.rb +250 -229
- data/unittests/form_xpath_test.rb +253 -0
- data/unittests/frame_test.rb +123 -108
- data/unittests/google_form_test.rb +17 -0
- data/unittests/html/JavascriptClick.html +39 -0
- data/unittests/html/buttons1.html +3 -2
- data/unittests/html/checkboxes1.html +32 -14
- data/unittests/html/complex_table.html +1 -1
- data/unittests/html/depot_store.html +59 -0
- data/unittests/html/div.html +3 -21
- data/unittests/html/div_xml.html +21 -0
- data/unittests/html/fileupload.html +2 -2
- data/unittests/html/forms2.html +3 -3
- data/unittests/html/forms3.html +2 -2
- data/unittests/html/frame_links.html +2 -2
- data/unittests/html/google_india.html +119 -0
- data/unittests/html/iframeTest.html +2 -2
- data/unittests/html/images/map.GIF +0 -0
- data/unittests/html/images/map2.gif +0 -0
- data/unittests/html/images1.html +17 -2
- data/unittests/html/javascriptevents.html +3 -7
- data/unittests/html/links1.html +9 -8
- data/unittests/html/links_multi.html +14 -0
- data/unittests/html/list_matters.html +720 -0
- data/unittests/html/lists.html +18 -0
- data/unittests/html/map_test.html +31 -0
- data/unittests/html/modal_dialog.html +10 -0
- data/unittests/html/modal_dialog_launcher.html +12 -0
- data/unittests/html/new_browser.html +17 -0
- data/unittests/html/pass.html +3 -0
- data/unittests/html/popups1.html +1 -1
- data/unittests/html/pre.html +28 -0
- data/unittests/html/radioButtons1.html +6 -5
- data/unittests/html/selectboxes1.html +12 -11
- data/unittests/html/simple_table.html +1 -1
- data/unittests/html/simple_table_columns.html +1 -1
- data/unittests/html/table1.html +1 -1
- data/unittests/html/tableCell_using_xpath.html +19 -0
- data/unittests/html/textfields1.html +6 -4
- data/unittests/html/xpath_nbsp.html +12 -0
- data/unittests/ie_exists_test.rb +32 -0
- data/unittests/ie_mock.rb +78 -79
- data/unittests/ie_test.rb +39 -39
- data/unittests/images_test.rb +132 -155
- data/unittests/images_xpath_test.rb +91 -0
- data/unittests/links_multi_test.rb +36 -0
- data/unittests/links_test.rb +158 -152
- data/unittests/links_xpath_test.rb +40 -0
- data/unittests/lists_test.rb +29 -0
- data/unittests/map_test.rb +99 -0
- data/unittests/minmax_test.rb +23 -23
- data/unittests/navigate_test.rb +43 -51
- data/unittests/nbsp_xpath_test.rb +18 -0
- data/unittests/other/WindowLogonExample.rb +28 -0
- data/unittests/{WindowLogonExtra.rb → other/WindowLogonExtra.rb} +0 -0
- data/unittests/{all_tests_concurrent.rb → other/all_tests_concurrent.rb} +23 -23
- data/unittests/other/navigate_exception_test.rb +14 -0
- data/unittests/other/rexml_unit_test.rb +24 -0
- data/unittests/other/testcase_method_order_test.rb +36 -0
- data/unittests/other/testcase_verify_test.rb +25 -0
- data/unittests/other/wait_until_test.rb +99 -0
- data/unittests/pagecontainstext_test.rb +56 -37
- data/unittests/parent_child_test.rb +55 -0
- data/unittests/popups_test.rb +37 -37
- data/unittests/pre_test.rb +52 -0
- data/unittests/radios_test.rb +186 -155
- data/unittests/radios_xpath_test.rb +101 -0
- data/unittests/screen_capture_test.rb +41 -41
- data/unittests/selectbox_test.rb +223 -181
- data/unittests/selectbox_xpath_test.rb +113 -0
- data/unittests/setup.rb +29 -25
- data/unittests/speed_settings_test.rb +22 -0
- data/unittests/table_cell_using_xpath_test.rb +40 -0
- data/unittests/table_test.rb +315 -284
- data/unittests/table_xpath_test.rb +114 -0
- data/unittests/textarea_test.rb +81 -0
- data/unittests/textarea_xpath_test.rb +82 -0
- data/unittests/textfields_test.rb +205 -229
- data/unittests/textfields_xpath_test.rb +111 -0
- data/unittests/window_tests.rb +7 -0
- data/unittests/windows/attach_to_existing_window_test.rb +52 -0
- data/unittests/windows/attach_to_new_window_test.rb +82 -0
- data/unittests/windows/close_window_test.rb +22 -0
- data/unittests/windows/frame_links_test.rb +25 -0
- data/unittests/windows/ie-each_test.rb +48 -0
- data/unittests/windows/iedialog_test.rb +55 -0
- data/unittests/windows/js_events_test.rb +57 -0
- data/unittests/windows/jscriptExtraAlert.rb +6 -0
- data/unittests/windows/jscriptExtraConfirmCancel.rb +7 -0
- data/unittests/windows/jscriptExtraConfirmOk.rb +7 -0
- data/unittests/{jscriptPushButton.rb → windows/jscriptPushButton.rb} +1 -1
- data/unittests/windows/jscript_test.rb +64 -0
- data/unittests/windows/modal_dialog_test.rb +127 -0
- data/unittests/windows/new.rb +56 -0
- data/unittests/windows/open_close_test.rb +22 -0
- data/unittests/windows/send_keys_test.rb +34 -0
- data/unittests/xpath_tests.rb +10 -0
- data/watir.rb +4344 -3565
- data/watir/IEDialog/Release/IEDialog.dll +0 -0
- data/watir/WindowHelper.rb +13 -11
- data/watir/assertions.rb +36 -0
- data/watir/camel_case.rb +14 -5
- data/watir/close_all.rb +38 -0
- data/watir/contrib/enabled_popup.rb +21 -0
- data/watir/contrib/ie-new-process.rb +27 -0
- data/watir/contrib/page_checker.rb +29 -0
- data/watir/contrib/visible.rb +47 -0
- data/watir/cookiemanager.rb +4 -4
- data/watir/datahandler.rb +107 -0
- data/watir/dialog.rb +46 -0
- data/watir/elements.rb +65 -0
- data/watir/exceptions.rb +18 -36
- data/watir/ie-process.rb +40 -0
- data/watir/irb-history.rb +31 -0
- data/watir/process.rb +20 -0
- data/watir/testUnitAddons.rb +3 -42
- data/watir/testcase.rb +58 -0
- data/watir/utils.rb +20 -0
- data/watir/waiter.rb +88 -0
- data/watir/watir_simple.rb +4 -4
- data/watir/win32ole.rb +8 -0
- data/watir/win32ole/win32ole.so +0 -0
- data/watir/winClicker.rb +374 -400
- metadata +209 -128
- data/unittests/WindowLogonExample.rb +0 -30
- data/unittests/attachToExistingWindow_test.rb +0 -40
- data/unittests/js_events_test.rb +0 -77
- data/unittests/jscriptExtraAlert.rb +0 -6
- data/unittests/jscriptExtraConfirmCancel.rb +0 -7
- data/unittests/jscriptExtraConfirmOk.rb +0 -7
- data/unittests/jscript_test.rb +0 -57
- data/unittests/send_keys_test.rb +0 -29
- 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
|
data/unittests/frame_test.rb
CHANGED
|
@@ -1,141 +1,156 @@
|
|
|
1
1
|
# feature tests for Frames
|
|
2
|
-
# revision: $Revision:
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
139
|
-
|
|
153
|
+
end
|
|
154
|
+
|
|
140
155
|
end
|
|
141
156
|
|