commonwatir 1.6.5 → 1.6.6.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +461 -0
- data/{README.txt → LICENSE} +22 -48
- data/Rakefile +13 -11
- data/VERSION +1 -0
- data/lib/commonwatir.rb +3 -3
- data/lib/watir.rb +7 -6
- data/lib/watir/assertions.rb +44 -44
- data/lib/watir/browser.rb +149 -149
- data/lib/watir/browsers.rb +13 -12
- data/lib/watir/exceptions.rb +47 -47
- data/lib/watir/matches.rb +17 -17
- data/lib/watir/options.rb +53 -52
- data/lib/watir/testcase.rb +97 -58
- data/lib/watir/waiter.rb +91 -91
- data/unittests/attach_to_existing_window_test.rb +71 -0
- data/unittests/browser_test.rb +18 -0
- data/unittests/buttons_test.rb +224 -0
- data/unittests/dd_test.rb +70 -0
- data/unittests/dl_test.rb +68 -0
- data/unittests/dt_test.rb +68 -0
- data/unittests/element_collections_test.rb +22 -0
- data/unittests/em_test.rb +67 -0
- data/unittests/form2_test.rb +22 -0
- data/unittests/html/blankpage.html +12 -0
- data/unittests/html/buttons1.html +41 -0
- data/unittests/html/buttons2.html +61 -0
- data/unittests/html/definition_lists.html +48 -0
- data/unittests/html/emphasis.html +12 -0
- data/unittests/html/entertainment_com.html +668 -0
- data/unittests/html/frame_buttons.html +4 -0
- data/unittests/html/images/button.jpg +0 -0
- data/unittests/html/pass.html +10 -0
- data/unittests/html/phrase_elements.html +15 -0
- data/unittests/html/select_lists.html +18 -0
- data/unittests/html/utf8.html +12 -0
- data/unittests/html/visibility.html +90 -0
- data/unittests/html/watir_unit_tests.css +64 -0
- data/unittests/html/whitespace.html +29 -0
- data/unittests/inspect_test.rb +29 -0
- data/unittests/options.yml.example +13 -0
- data/unittests/select_list_test.rb +19 -0
- data/unittests/setup.rb +17 -0
- data/unittests/setup/browser.rb +14 -0
- data/unittests/setup/capture_io_helper.rb +17 -0
- data/unittests/setup/filter.rb +24 -0
- data/unittests/setup/lib.rb +22 -0
- data/unittests/setup/options.rb +29 -0
- data/unittests/setup/testUnitAddons.rb +8 -0
- data/unittests/setup/watir-unittest.rb +74 -0
- data/unittests/strong_test.rb +32 -0
- data/unittests/utf8_test.rb +24 -0
- data/unittests/visibility_test.rb +47 -0
- data/unittests/whitespace_test.rb +40 -0
- metadata +121 -39
- data/History.txt +0 -5
- data/Manifest.txt +0 -14
@@ -0,0 +1,71 @@
|
|
1
|
+
# feature tests for attaching to existing IE windows
|
2
|
+
# revision: $Revision: 1417 $
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
5
|
+
require 'unittests/setup'
|
6
|
+
|
7
|
+
class TC_ExistingWindow < Test::Unit::TestCase
|
8
|
+
location __FILE__
|
9
|
+
include Watir
|
10
|
+
|
11
|
+
def setup
|
12
|
+
@original_timeout = Browser.options[:attach_timeout]
|
13
|
+
@browsers = []
|
14
|
+
uses_page "pass.html"
|
15
|
+
end
|
16
|
+
|
17
|
+
def teardown
|
18
|
+
Browser.set_options :attach_timeout => @original_timeout
|
19
|
+
@browsers.each {|x| x.close}
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_missing_window
|
23
|
+
Browser.set_options :attach_timeout => 0.1
|
24
|
+
assert_raises(NoMatchingWindowFoundException) { Browser.attach(:title, "missing") }
|
25
|
+
assert_raises(NoMatchingWindowFoundException) { Browser.attach(:title, /missing/) }
|
26
|
+
assert_raises(NoMatchingWindowFoundException) { Browser.attach(:url, "missing") }
|
27
|
+
assert_raises(NoMatchingWindowFoundException) { Browser.attach(:url, /missing/) }
|
28
|
+
end
|
29
|
+
|
30
|
+
# Open a few browsers so that the test has a few windows to choose
|
31
|
+
# from. The test harness has already opened a window that we won't
|
32
|
+
# use.
|
33
|
+
def open_several_windows
|
34
|
+
["buttons1.html", "whitespace.html"].each do |file|
|
35
|
+
@browsers << Browser.start(self.class.html_root + file)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_existing_window
|
40
|
+
open_several_windows
|
41
|
+
|
42
|
+
b1 = Browser.attach(:title , /buttons/i)
|
43
|
+
assert_equal("Test page for buttons", b1.title)
|
44
|
+
|
45
|
+
b2 = Browser.attach(:title , "Test page for buttons")
|
46
|
+
assert_equal("Test page for buttons", b2.title)
|
47
|
+
|
48
|
+
b3 = Browser.attach(:url, /buttons1.html/)
|
49
|
+
assert_equal("Test page for buttons", b3.title)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_title_and_url_are_correct_after_reload
|
53
|
+
uses_page "whitespace.html"
|
54
|
+
assert_equal 'Test page for whitespace', browser.title
|
55
|
+
assert_match /whitespace.html/, browser.url
|
56
|
+
browser.link(:text, 'Login').click
|
57
|
+
assert_equal 'Pass Page', browser.title
|
58
|
+
assert_match /pass.html/, browser.url
|
59
|
+
end
|
60
|
+
|
61
|
+
tag_method :test_working_back_and_forth, :fails_on_firefox
|
62
|
+
def test_working_back_and_forth
|
63
|
+
open_several_windows
|
64
|
+
buttons = Browser.attach(:url, /buttons1.html/)
|
65
|
+
whitespace = Browser.attach(:url, /whitespace.html/)
|
66
|
+
assert_match /This button is a submit/, buttons.text
|
67
|
+
whitespace.link(:text, 'Login').click
|
68
|
+
assert_match /pass/i, whitespace.text
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
2
|
+
require 'unittests/setup'
|
3
|
+
|
4
|
+
class TC_Browser < Test::Unit::TestCase
|
5
|
+
location __FILE__
|
6
|
+
|
7
|
+
def setup
|
8
|
+
uses_page "utf8.html" # could be any page really
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_status_returns_window_status
|
12
|
+
browser.execute_script "window.status = 'All done!'"
|
13
|
+
assert_match /done/i, browser.status
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,224 @@
|
|
1
|
+
# feature tests for Buttons
|
2
|
+
# revision: $Revision$
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
5
|
+
require 'unittests/setup'
|
6
|
+
|
7
|
+
class TC_Button < Test::Unit::TestCase
|
8
|
+
location __FILE__
|
9
|
+
|
10
|
+
def setup
|
11
|
+
uses_page "buttons1.html"
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_exceptions_on_methods
|
15
|
+
assert_raises(UnknownObjectException) { browser.button(:name, "noName").id }
|
16
|
+
assert_raises(UnknownObjectException) { browser.button(:name, "noName").name }
|
17
|
+
assert_raises(UnknownObjectException) { browser.button(:name, "noName").disabled }
|
18
|
+
assert_raises(UnknownObjectException) { browser.button(:name, "noName").type }
|
19
|
+
assert_raises(UnknownObjectException) { browser.button(:name, "noName").value }
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_exception_when_one_argument
|
23
|
+
assert_raises(UnknownObjectException) { browser.button( "Missing Caption").click }
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_exceptions_with_click
|
27
|
+
assert_raises(UnknownObjectException) { browser.button(:caption, "Missing Caption").click }
|
28
|
+
assert_raises(UnknownObjectException) { browser.button(:id, "missingID").click }
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_disabled_exception
|
32
|
+
assert_raises(ObjectDisabledException) { browser.button(:caption, "Disabled Button").click }
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_exception_with_enabled
|
36
|
+
assert_raises(UnknownObjectException) { browser.button(:name, "noName").enabled? }
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_properties
|
40
|
+
assert_equal("b1", browser.button(:index, 1).name)
|
41
|
+
assert_equal("b2", browser.button(:index, 1).id)
|
42
|
+
assert_equal("button", browser.button(:index, 1).type)
|
43
|
+
assert_equal("Click Me", browser.button(:index, 1).value)
|
44
|
+
assert_equal(false, browser.button(:index, 1).disabled)
|
45
|
+
assert_equal("italic_button", browser.button(:name, "b1").class_name)
|
46
|
+
assert_equal("", browser.button(:name , "b4").class_name)
|
47
|
+
|
48
|
+
assert_equal("b1", browser.button(:id, "b2").name)
|
49
|
+
assert_equal("b2", browser.button(:id, "b2").id)
|
50
|
+
assert_equal("button", browser.button(:id, "b2").type)
|
51
|
+
|
52
|
+
assert_equal("b4", browser.button(:index, 2).name)
|
53
|
+
assert_equal("b5", browser.button(:index, 2).id)
|
54
|
+
assert_equal("button", browser.button(:index, 2).type)
|
55
|
+
assert_equal("Disabled Button", browser.button(:index, 2).value)
|
56
|
+
assert_equal(true, browser.button(:index, 2).disabled)
|
57
|
+
|
58
|
+
assert_equal("", browser.button(:index, 2).title)
|
59
|
+
assert_equal("this is button1", browser.button(:index, 1).title)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_default_how
|
63
|
+
browser.button("Click Me").click
|
64
|
+
assert(browser.text.include?("PASS"))
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_click_and_caption
|
68
|
+
browser.button(:caption, "Click Me").click
|
69
|
+
assert(browser.text.include?("PASS") )
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_access_by_class
|
73
|
+
assert_equal('b1', browser.button(:class, 'italic_button').name)
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_access_by_class_name
|
77
|
+
assert_equal('b1', browser.button(:class_name, 'italic_button').name)
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_exists
|
81
|
+
assert(browser.button(:caption, "Click Me").exists?)
|
82
|
+
assert(browser.button(:caption, "Submit").exists?)
|
83
|
+
assert(browser.button(:name, "b1").exists?)
|
84
|
+
assert(browser.button(:id, "b2").exists?)
|
85
|
+
assert(browser.button(:caption, /sub/i).exists?)
|
86
|
+
|
87
|
+
assert_false(browser.button(:caption, "missingcaption").exists?)
|
88
|
+
assert_false(browser.button(:name, "missingname").exists?)
|
89
|
+
assert_false(browser.button(:id, "missingid").exists?)
|
90
|
+
assert_false(browser.button(:caption, /missing/i).exists?)
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_enabled
|
94
|
+
assert(browser.button(:caption, "Click Me").enabled?)
|
95
|
+
assert_false(browser.button(:caption, "Disabled Button").enabled?)
|
96
|
+
assert_false(browser.button(:name, "b4").enabled?)
|
97
|
+
assert_false(browser.button(:id, "b5").enabled?)
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
class TC_Button2 < Test::Unit::TestCase
|
103
|
+
location __FILE__
|
104
|
+
|
105
|
+
def setup
|
106
|
+
uses_page "buttons2.html"
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_exists
|
110
|
+
assert(browser.button(:caption, "Click Me2").exists?)
|
111
|
+
assert(browser.button(:caption, "Disabled Button2").exists?)
|
112
|
+
assert(browser.button(:caption, "Sign In").exists?)
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_button2
|
116
|
+
assert_equal("b6", browser.button(:id, "b7").name)
|
117
|
+
assert_equal("b7", browser.button(:name, "b6").id)
|
118
|
+
assert_equal("Click Me2", browser.button(:id, "b7").value)
|
119
|
+
assert_equal(false, browser.button(:id, "b7").disabled)
|
120
|
+
assert_equal("italic_button", browser.button(:name, "b6").class_name )
|
121
|
+
|
122
|
+
assert_equal("b8", browser.button(:id, "b9").name)
|
123
|
+
assert_equal("b9", browser.button(:name, "b8").id)
|
124
|
+
assert_equal("Disabled Button2", browser.button(:id, "b9").value)
|
125
|
+
assert_equal(false, browser.button(:id, "b9").enabled?)
|
126
|
+
assert_equal("", browser.button(:name, "b8").class_name)
|
127
|
+
assert_equal("Sign In", browser.button(:caption, "Sign In").value)
|
128
|
+
|
129
|
+
assert(browser.button(:caption, "Click Me").enabled?)
|
130
|
+
|
131
|
+
assert_false(browser.button(:caption, "Disabled Button2").enabled?)
|
132
|
+
|
133
|
+
assert_raises(ObjectDisabledException) { browser.button(:caption, "Disabled Button2").click }
|
134
|
+
|
135
|
+
browser.button(:caption, "Click Me2").click
|
136
|
+
assert(browser.text.include?("PASS"))
|
137
|
+
end
|
138
|
+
|
139
|
+
tag_method :test_buttons_length, :fails_on_ie
|
140
|
+
def test_buttons_length
|
141
|
+
arrButtons = browser.buttons
|
142
|
+
assert_equal(7, arrButtons.length)
|
143
|
+
end
|
144
|
+
|
145
|
+
def test_buttons
|
146
|
+
arrButtons = browser.buttons
|
147
|
+
assert_equal("b2", arrButtons[1].id)
|
148
|
+
assert_equal("b5", arrButtons[2].id)
|
149
|
+
assert_equal("Submit", arrButtons[3].value)
|
150
|
+
assert_equal("sub3", arrButtons[4].name)
|
151
|
+
assert_equal("b7", arrButtons[5].id)
|
152
|
+
assert_equal("b9", arrButtons[6].id)
|
153
|
+
assert_equal("Sign In", arrButtons[7].value)
|
154
|
+
end
|
155
|
+
|
156
|
+
# Tests collection class
|
157
|
+
def test_class_buttons
|
158
|
+
arr_buttons = browser.buttons
|
159
|
+
arr_buttons.each do |b|
|
160
|
+
assert_class b, 'Button'
|
161
|
+
end
|
162
|
+
# test properties
|
163
|
+
assert_equal("b2", arr_buttons[1].id)
|
164
|
+
assert_equal("b1", arr_buttons[1].name)
|
165
|
+
assert_equal("button", arr_buttons[1].type)
|
166
|
+
assert_equal("Click Me", arr_buttons[1].value)
|
167
|
+
assert_equal(false, arr_buttons[1].disabled)
|
168
|
+
assert_equal("italic_button", arr_buttons[1].class_name)
|
169
|
+
assert_equal( "this is button1", arr_buttons[1].title)
|
170
|
+
|
171
|
+
assert_equal("b5", arr_buttons[2].id)
|
172
|
+
assert_equal("b4", arr_buttons[2].name)
|
173
|
+
assert_equal("button", arr_buttons[2].type)
|
174
|
+
assert_equal("Disabled Button", arr_buttons[2].value)
|
175
|
+
assert_equal(true, arr_buttons[2].disabled)
|
176
|
+
assert_equal( "", arr_buttons[2].title)
|
177
|
+
assert_equal("", arr_buttons[2].class_name)
|
178
|
+
|
179
|
+
assert_equal("Submit", arr_buttons[3].value)
|
180
|
+
assert_equal("sub3", arr_buttons[4].name)
|
181
|
+
assert_equal("b7", arr_buttons[5].id)
|
182
|
+
assert_equal("b9", arr_buttons[6].id)
|
183
|
+
assert_equal("Sign In", arr_buttons[7].value)
|
184
|
+
end
|
185
|
+
|
186
|
+
def test_hash_syntax
|
187
|
+
assert_equal('Click Me2', browser.button(:id => 'b7').value)
|
188
|
+
end
|
189
|
+
|
190
|
+
def test_class_and_index
|
191
|
+
assert_equal('Click Me2',
|
192
|
+
browser.button(:class => 'italic_button', :index => 2).value)
|
193
|
+
end
|
194
|
+
|
195
|
+
def test_name_and_id #sick, but what the hell
|
196
|
+
assert_equal('Disabled Button2',
|
197
|
+
browser.button(:name => 'b8', :id => 'b9').value)
|
198
|
+
end
|
199
|
+
|
200
|
+
def test_not_found_with_multi
|
201
|
+
exception = assert_raise(UnknownObjectException) do
|
202
|
+
browser.button(:value => 'Click Me', :index => 2).name
|
203
|
+
end
|
204
|
+
# can't assume hash ordering
|
205
|
+
assert_match(/Unable to locate element, using \{(:index=>2, :value=>"Click Me"|:value=>"Click Me", :index=>2)\}/, exception.message)
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
class TC_Button_Frame < Test::Unit::TestCase
|
210
|
+
location __FILE__
|
211
|
+
|
212
|
+
def setup
|
213
|
+
goto_page "frame_buttons.html"
|
214
|
+
end
|
215
|
+
|
216
|
+
def test_in_frame
|
217
|
+
assert(browser.frame("buttonFrame").button(:caption, "Click Me").enabled?)
|
218
|
+
end
|
219
|
+
|
220
|
+
def test_error_in_frame
|
221
|
+
assert_raises(UnknownObjectException) { browser.button(:caption, "Disabled Button").enabled?}
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
@@ -0,0 +1,70 @@
|
|
1
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
2
|
+
require 'unittests/setup'
|
3
|
+
|
4
|
+
class TC_Dd < Test::Unit::TestCase
|
5
|
+
include Watir::Exception
|
6
|
+
location __FILE__
|
7
|
+
|
8
|
+
def setup
|
9
|
+
uses_page "definition_lists.html"
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_exists
|
13
|
+
assert browser.dd(:id, "someone").exists?, "Could not find <dd> by :id"
|
14
|
+
assert browser.dd(:class, "name").exists?, "Could not find <dd> by :class"
|
15
|
+
assert_nothing_raised do
|
16
|
+
browser.dd(:xpath, "//dd[@id='someone']").locate
|
17
|
+
end
|
18
|
+
assert browser.dd(:xpath, "//dd[@id='someone']").exists?, "Could not find <dd> by :xpath"
|
19
|
+
assert browser.dd(:index, 1).exists?, "Could not find <dd> by :index"
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_does_not_exist
|
23
|
+
assert !browser.dd(:id, 'no_such_id').exists?, "Found non-existing <dd>"
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_attribute_class_name
|
27
|
+
assert_equal "name", browser.dd(:id, "someone").class_name
|
28
|
+
assert_equal "", browser.dd(:id, 'city').class_name
|
29
|
+
assert_raises(UnknownObjectException) do
|
30
|
+
browser.dd(:id, 'no_such_id').class_name
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_attribute_id
|
35
|
+
assert_equal "someone", browser.dd(:class, 'name').id
|
36
|
+
assert_equal "", browser.dd(:class, 'address').id
|
37
|
+
assert_raises(UnknownObjectException) do
|
38
|
+
browser.dd(:id, 'no_such_id').id
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_attribute_title
|
43
|
+
assert_equal "someone", browser.dd(:class, 'name').title
|
44
|
+
assert_equal "", browser.dd(:class, 'noop').title
|
45
|
+
assert_raises(UnknownObjectException) do
|
46
|
+
browser.dd(:id, 'no_such_id').title
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_attribute_text
|
51
|
+
assert_equal "John Doe", browser.dd(:id, "someone").text
|
52
|
+
assert_equal "", browser.dd(:class, 'noop').text
|
53
|
+
assert_raises(UnknownObjectException) do
|
54
|
+
browser.dd(:id, 'no_such_id').text
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_dd_iterator
|
59
|
+
assert_equal(11, browser.dds.length)
|
60
|
+
assert_equal("education", browser.dds[2].title)
|
61
|
+
|
62
|
+
browser.dds.each_with_index do |dd, idx|
|
63
|
+
assert_equal(browser.dd(:index,idx+1).text, dd.text)
|
64
|
+
assert_equal(browser.dd(:index,idx+1).id, dd.id)
|
65
|
+
assert_equal(browser.dd(:index,idx+1).class_name , dd.class_name)
|
66
|
+
assert_equal(browser.dd(:index,idx+1).title, dd.title)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
|
2
|
+
require 'unittests/setup'
|
3
|
+
|
4
|
+
class TC_Dl < Test::Unit::TestCase
|
5
|
+
include Watir::Exception
|
6
|
+
location __FILE__
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@html_dir = "#{File.dirname(__FILE__)}/html"
|
10
|
+
uses_page "definition_lists.html"
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_exists
|
14
|
+
assert browser.dl(:id, "experience-list").exists?, "Could not find <dl> by :id"
|
15
|
+
assert browser.dl(:class, "list").exists?, "Could not find <dl> by :class"
|
16
|
+
assert browser.dl(:xpath, "//dl[@id='experience-list']").exists?, "Could not find <dl> by :xpath"
|
17
|
+
assert browser.dl(:index, 1).exists?, "Could not find <dl> by :index"
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_does_not_exist
|
21
|
+
assert !browser.dl(:id, 'no_such_id').exists?, "Found non-existing <dl>"
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_attribute_class_name
|
25
|
+
assert_equal "list", browser.dl(:id, "experience-list").class_name
|
26
|
+
assert_equal "", browser.dl(:id, 'noop').class_name
|
27
|
+
assert_raises(UnknownObjectException) do
|
28
|
+
browser.dl(:id, 'no_such_id').class_name
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_attribute_id
|
33
|
+
assert_equal "experience-list", browser.dl(:class, 'list').id
|
34
|
+
assert_equal "", browser.dl(:class, 'personalia').id
|
35
|
+
assert_raises(UnknownObjectException) do
|
36
|
+
browser.dl(:id, 'no_such_id').id
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_attribute_title
|
41
|
+
assert_equal "experience", browser.dl(:class, 'list').title
|
42
|
+
assert_equal "", browser.dl(:id, 'noop').title
|
43
|
+
assert_raises(UnknownObjectException) do
|
44
|
+
browser.dl(:id, 'no_such_id').title
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_attribute_text
|
49
|
+
assert_match /11 years/, browser.dl(:id, "experience-list").text
|
50
|
+
assert_equal "", browser.dl(:id, 'noop').text
|
51
|
+
assert_raises(UnknownObjectException) do
|
52
|
+
browser.dl(:id, 'no_such_id').text
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_dls_iterator
|
57
|
+
assert_equal(3, browser.dls.length)
|
58
|
+
assert_equal("experience-list", browser.dls[1].id)
|
59
|
+
|
60
|
+
browser.dls.each_with_index do |dl, idx|
|
61
|
+
assert_equal(browser.dl(:index,idx+1).text, dl.text)
|
62
|
+
assert_equal(browser.dl(:index,idx+1).id, dl.id)
|
63
|
+
assert_equal(browser.dl(:index,idx+1).class_name , dl.class_name)
|
64
|
+
assert_equal(browser.dl(:index,idx+1).title, dl.title)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|