commonwatir 1.9.2 → 2.0.0.rc2
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/CHANGES +27 -0
- data/VERSION +1 -1
- data/lib/watir/browser.rb +4 -0
- data/lib/watir/browsers.rb +1 -1
- data/lib/watir/options.rb +3 -0
- data/unittests/buttons_test.rb +76 -11
- data/unittests/dd_test.rb +15 -1
- data/unittests/dl_test.rb +15 -1
- data/unittests/dt_test.rb +15 -1
- data/unittests/em_test.rb +15 -1
- data/unittests/strong_test.rb +15 -1
- data/unittests/whitespace_test.rb +6 -0
- metadata +14 -10
data/CHANGES
CHANGED
@@ -1,3 +1,30 @@
|
|
1
|
+
== Version 2.0.0 - 2011/07/XX
|
2
|
+
|
3
|
+
* RIP FireWatir - there won't be any new releases
|
4
|
+
* all elements are using 0-based indexing instead of old 1-based indexing:
|
5
|
+
- disable it temporarily: require "watir"; Watir.options[:zero_based_indexing] = false
|
6
|
+
* #radio and #checkbox methods doesn't allow 3 parameters anymore for locating with "value"
|
7
|
+
- use browser.radio(:name => "something", :value => "some value") syntax instead for locating with "value"
|
8
|
+
* all element methods accept now multiple-specifiers with hash syntax, for example:
|
9
|
+
- browser.element(:class => "someclass", :name => "somename")
|
10
|
+
* all elements are searchable by :xpath and :css now (note that it's usually slower than searching by other specifiers)
|
11
|
+
* #button, #form and #frame doesn't accept single string as a specifier anymore to search by name:
|
12
|
+
- use browser.frame(:name => "name") or browser.frame(:name, "name") syntax instead
|
13
|
+
* :index => 0 is used as a default specifier if nothing is specified:
|
14
|
+
- browser.div(:id => "id").table.tr is same as browser.div(:id => "id").table(:index => 0).tr(:index => 0)
|
15
|
+
* all collection methods accept now specifiers too:
|
16
|
+
- browser.divs(:class => "someclass").each {|div| puts div.class_name} # => "someclass"
|
17
|
+
* removed FormElement class
|
18
|
+
* renamed CheckBox class to Checkbox
|
19
|
+
* renamed CheckBoxes class to Checkboxes
|
20
|
+
* added aliases:
|
21
|
+
- tr => row
|
22
|
+
- trs => rows
|
23
|
+
- td => cell
|
24
|
+
- tds => cells
|
25
|
+
- a => link
|
26
|
+
- as => links
|
27
|
+
|
1
28
|
== Version 1.9.2 - 2011/07/11
|
2
29
|
|
3
30
|
=== IE improvements
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0.rc2
|
data/lib/watir/browser.rb
CHANGED
data/lib/watir/browsers.rb
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
Watir::Browser.support :name => 'ie', :class => 'Watir::IE',
|
6
6
|
:library => 'watir/ie', :gem => 'watir',
|
7
|
-
:options => [:speed, :visible]
|
7
|
+
:options => [:speed, :visible, :zero_based_indexing]
|
8
8
|
|
9
9
|
Watir::Browser.support :name => 'firefox', :class => 'FireWatir::Firefox',
|
10
10
|
:library => 'firewatir'
|
data/lib/watir/options.rb
CHANGED
data/unittests/buttons_test.rb
CHANGED
@@ -18,10 +18,6 @@ class TC_Button < Test::Unit::TestCase
|
|
18
18
|
assert_raises(UnknownObjectException) { browser.button(:name, "noName").value }
|
19
19
|
end
|
20
20
|
|
21
|
-
def test_exception_when_one_argument
|
22
|
-
assert_raises(UnknownObjectException) { browser.button( "Missing Caption").click }
|
23
|
-
end
|
24
|
-
|
25
21
|
def test_exceptions_with_click
|
26
22
|
assert_raises(UnknownObjectException) { browser.button(:caption, "Missing Caption").click }
|
27
23
|
assert_raises(UnknownObjectException) { browser.button(:id, "missingID").click }
|
@@ -35,6 +31,7 @@ class TC_Button < Test::Unit::TestCase
|
|
35
31
|
assert_raises(UnknownObjectException) { browser.button(:name, "noName").enabled? }
|
36
32
|
end
|
37
33
|
|
34
|
+
tag_method :test_properties, :fails_on_ie
|
38
35
|
def test_properties
|
39
36
|
assert_equal("b1", browser.button(:index, 1).name)
|
40
37
|
assert_equal("b2", browser.button(:index, 1).id)
|
@@ -57,10 +54,29 @@ class TC_Button < Test::Unit::TestCase
|
|
57
54
|
assert_equal("", browser.button(:index, 2).title)
|
58
55
|
assert_equal("this is button1", browser.button(:index, 1).title)
|
59
56
|
end
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
57
|
+
|
58
|
+
tag_method :test_properties_ie, :fails_on_firefox
|
59
|
+
def test_properties_ie
|
60
|
+
assert_equal("b1", browser.button(:index, 0).name)
|
61
|
+
assert_equal("b2", browser.button(:index, 0).id)
|
62
|
+
assert_equal("button", browser.button(:index, 0).type)
|
63
|
+
assert_equal("Click Me", browser.button(:index, 0).value)
|
64
|
+
assert_equal(false, browser.button(:index, 0).disabled)
|
65
|
+
assert_equal("italic_button", browser.button(:name, "b1").class_name)
|
66
|
+
assert_equal("", browser.button(:name , "b4").class_name)
|
67
|
+
|
68
|
+
assert_equal("b1", browser.button(:id, "b2").name)
|
69
|
+
assert_equal("b2", browser.button(:id, "b2").id)
|
70
|
+
assert_equal("button", browser.button(:id, "b2").type)
|
71
|
+
|
72
|
+
assert_equal("b4", browser.button(:index, 1).name)
|
73
|
+
assert_equal("b5", browser.button(:index, 1).id)
|
74
|
+
assert_equal("button", browser.button(:index, 1).type)
|
75
|
+
assert_equal("Disabled Button", browser.button(:index, 1).value)
|
76
|
+
assert_equal(true, browser.button(:index, 1).disabled)
|
77
|
+
|
78
|
+
assert_equal("", browser.button(:index, 1).title)
|
79
|
+
assert_equal("this is button1", browser.button(:index, 0).title)
|
64
80
|
end
|
65
81
|
|
66
82
|
def test_click_and_caption
|
@@ -135,12 +151,12 @@ class TC_Button2 < Test::Unit::TestCase
|
|
135
151
|
assert(browser.text.include?("PASS"))
|
136
152
|
end
|
137
153
|
|
138
|
-
tag_method :test_buttons_length, :fails_on_ie
|
139
154
|
def test_buttons_length
|
140
155
|
arrButtons = browser.buttons
|
141
156
|
assert_equal(7, arrButtons.length)
|
142
157
|
end
|
143
158
|
|
159
|
+
tag_method :test_buttons, :fails_on_ie
|
144
160
|
def test_buttons
|
145
161
|
arrButtons = browser.buttons
|
146
162
|
assert_equal("b2", arrButtons[1].id)
|
@@ -152,7 +168,19 @@ class TC_Button2 < Test::Unit::TestCase
|
|
152
168
|
assert_equal("Sign In", arrButtons[7].value)
|
153
169
|
end
|
154
170
|
|
155
|
-
|
171
|
+
tag_method :test_buttons_ie, :fails_on_firefox
|
172
|
+
def test_buttons_ie
|
173
|
+
arrButtons = browser.buttons
|
174
|
+
assert_equal("b2", arrButtons[0].id)
|
175
|
+
assert_equal("b5", arrButtons[1].id)
|
176
|
+
assert_equal("Submit", arrButtons[2].value)
|
177
|
+
assert_equal("sub3", arrButtons[3].name)
|
178
|
+
assert_equal("b7", arrButtons[4].id)
|
179
|
+
assert_equal("b9", arrButtons[5].id)
|
180
|
+
assert_equal("Sign In", arrButtons[6].value)
|
181
|
+
end
|
182
|
+
|
183
|
+
tag_method :test_class_buttons, :fails_on_ie
|
156
184
|
def test_class_buttons
|
157
185
|
arr_buttons = browser.buttons
|
158
186
|
arr_buttons.each do |b|
|
@@ -182,15 +210,52 @@ class TC_Button2 < Test::Unit::TestCase
|
|
182
210
|
assert_equal("Sign In", arr_buttons[7].value)
|
183
211
|
end
|
184
212
|
|
213
|
+
tag_method :test_class_buttons_ie, :fails_on_firefox
|
214
|
+
def test_class_buttons_ie
|
215
|
+
arr_buttons = browser.buttons
|
216
|
+
arr_buttons.each do |b|
|
217
|
+
assert_class b, 'Button'
|
218
|
+
end
|
219
|
+
# test properties
|
220
|
+
assert_equal("b2", arr_buttons[0].id)
|
221
|
+
assert_equal("b1", arr_buttons[0].name)
|
222
|
+
assert_equal("button", arr_buttons[0].type)
|
223
|
+
assert_equal("Click Me", arr_buttons[0].value)
|
224
|
+
assert_equal(false, arr_buttons[0].disabled)
|
225
|
+
assert_equal("italic_button", arr_buttons[0].class_name)
|
226
|
+
assert_equal( "this is button1", arr_buttons[0].title)
|
227
|
+
|
228
|
+
assert_equal("b5", arr_buttons[1].id)
|
229
|
+
assert_equal("b4", arr_buttons[1].name)
|
230
|
+
assert_equal("button", arr_buttons[1].type)
|
231
|
+
assert_equal("Disabled Button", arr_buttons[1].value)
|
232
|
+
assert_equal(true, arr_buttons[1].disabled)
|
233
|
+
assert_equal( "", arr_buttons[1].title)
|
234
|
+
assert_equal("", arr_buttons[1].class_name)
|
235
|
+
|
236
|
+
assert_equal("Submit", arr_buttons[2].value)
|
237
|
+
assert_equal("sub3", arr_buttons[3].name)
|
238
|
+
assert_equal("b7", arr_buttons[4].id)
|
239
|
+
assert_equal("b9", arr_buttons[5].id)
|
240
|
+
assert_equal("Sign In", arr_buttons[6].value)
|
241
|
+
end
|
242
|
+
|
185
243
|
def test_hash_syntax
|
186
244
|
assert_equal('Click Me2', browser.button(:id => 'b7').value)
|
187
245
|
end
|
188
246
|
|
247
|
+
tag_method :test_class_and_index, :fails_on_ie
|
189
248
|
def test_class_and_index
|
190
249
|
assert_equal('Click Me2',
|
191
250
|
browser.button(:class => 'italic_button', :index => 2).value)
|
192
251
|
end
|
193
252
|
|
253
|
+
tag_method :test_class_and_index_ie, :fails_on_firefox
|
254
|
+
def test_class_and_index_ie
|
255
|
+
assert_equal('Click Me2',
|
256
|
+
browser.button(:class => 'italic_button', :index => 1).value)
|
257
|
+
end
|
258
|
+
|
194
259
|
def test_name_and_id #sick, but what the hell
|
195
260
|
assert_equal('Disabled Button2',
|
196
261
|
browser.button(:name => 'b8', :id => 'b9').value)
|
@@ -213,7 +278,7 @@ class TC_Button_Frame < Test::Unit::TestCase
|
|
213
278
|
end
|
214
279
|
|
215
280
|
def test_in_frame
|
216
|
-
assert(browser.frame("buttonFrame").button(:caption, "Click Me").enabled?)
|
281
|
+
assert(browser.frame(:name, "buttonFrame").button(:caption, "Click Me").enabled?)
|
217
282
|
end
|
218
283
|
|
219
284
|
def test_error_in_frame
|
data/unittests/dd_test.rb
CHANGED
@@ -55,6 +55,7 @@ class TC_Dd < Test::Unit::TestCase
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
+
tag_method :test_dd_iterator, :fails_on_ie
|
58
59
|
def test_dd_iterator
|
59
60
|
assert_equal(11, browser.dds.length)
|
60
61
|
assert_equal("education", browser.dds[2].title)
|
@@ -66,5 +67,18 @@ class TC_Dd < Test::Unit::TestCase
|
|
66
67
|
assert_equal(browser.dd(:index,idx+1).title, dd.title)
|
67
68
|
end
|
68
69
|
end
|
70
|
+
|
71
|
+
tag_method :test_dd_iterator_ie, :fails_on_firefox
|
72
|
+
def test_dd_iterator_ie
|
73
|
+
assert_equal(11, browser.dds.length)
|
74
|
+
assert_equal("education", browser.dds[1].title)
|
75
|
+
|
76
|
+
browser.dds.each_with_index do |dd, idx|
|
77
|
+
assert_equal(browser.dd(:index,idx).text, dd.text)
|
78
|
+
assert_equal(browser.dd(:index,idx).id, dd.id)
|
79
|
+
assert_equal(browser.dd(:index,idx).class_name , dd.class_name)
|
80
|
+
assert_equal(browser.dd(:index,idx).title, dd.title)
|
81
|
+
end
|
82
|
+
end
|
69
83
|
|
70
|
-
end
|
84
|
+
end
|
data/unittests/dl_test.rb
CHANGED
@@ -53,6 +53,7 @@ class TC_Dl < Test::Unit::TestCase
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
tag_method :test_dls_iterator, :fails_on_ie
|
56
57
|
def test_dls_iterator
|
57
58
|
assert_equal(3, browser.dls.length)
|
58
59
|
assert_equal("experience-list", browser.dls[1].id)
|
@@ -65,4 +66,17 @@ class TC_Dl < Test::Unit::TestCase
|
|
65
66
|
end
|
66
67
|
end
|
67
68
|
|
68
|
-
|
69
|
+
tag_method :test_dls_iterator_ie, :fails_on_firefox
|
70
|
+
def test_dls_iterator_ie
|
71
|
+
assert_equal(3, browser.dls.length)
|
72
|
+
assert_equal("experience-list", browser.dls[0].id)
|
73
|
+
|
74
|
+
browser.dls.each_with_index do |dl, idx|
|
75
|
+
assert_equal(browser.dl(:index,idx).text, dl.text)
|
76
|
+
assert_equal(browser.dl(:index,idx).id, dl.id)
|
77
|
+
assert_equal(browser.dl(:index,idx).class_name , dl.class_name)
|
78
|
+
assert_equal(browser.dl(:index,idx).title, dl.title)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
data/unittests/dt_test.rb
CHANGED
@@ -53,6 +53,7 @@ class TC_Dt < Test::Unit::TestCase
|
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
56
|
+
tag_method :test_dts_iterator, :fails_on_ie
|
56
57
|
def test_dts_iterator
|
57
58
|
assert_equal(11, browser.dts.length)
|
58
59
|
assert_equal("experience", browser.dts[1].id)
|
@@ -65,4 +66,17 @@ class TC_Dt < Test::Unit::TestCase
|
|
65
66
|
end
|
66
67
|
end
|
67
68
|
|
68
|
-
|
69
|
+
tag_method :test_dts_iterator_ie, :fails_on_firefox
|
70
|
+
def test_dts_iterator_ie
|
71
|
+
assert_equal(11, browser.dts.length)
|
72
|
+
assert_equal("experience", browser.dts[0].id)
|
73
|
+
|
74
|
+
browser.dts.each_with_index do |dt, idx|
|
75
|
+
assert_equal(browser.dt(:index,idx).text, dt.text)
|
76
|
+
assert_equal(browser.dt(:index,idx).id, dt.id)
|
77
|
+
assert_equal(browser.dt(:index,idx).class_name , dt.class_name)
|
78
|
+
assert_equal(browser.dt(:index,idx).title, dt.title)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
data/unittests/em_test.rb
CHANGED
@@ -52,6 +52,7 @@ class TC_Em < Test::Unit::TestCase
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
55
|
+
tag_method :test_em_iterator, :fails_on_ie
|
55
56
|
def test_em_iterator
|
56
57
|
assert_equal(3, browser.ems.length)
|
57
58
|
assert_equal("two text", browser.ems[2].text)
|
@@ -64,4 +65,17 @@ class TC_Em < Test::Unit::TestCase
|
|
64
65
|
end
|
65
66
|
end
|
66
67
|
|
67
|
-
|
68
|
+
tag_method :test_em_iterator_ie, :fails_on_firefox
|
69
|
+
def test_em_iterator_ie
|
70
|
+
assert_equal(3, browser.ems.length)
|
71
|
+
assert_equal("two text", browser.ems[1].text)
|
72
|
+
|
73
|
+
browser.ems.each_with_index do |em, idx|
|
74
|
+
assert_equal browser.em(:index, idx).text, em.text
|
75
|
+
assert_equal browser.em(:index, idx).id, em.id
|
76
|
+
assert_equal browser.em(:index, idx).class_name, em.class_name
|
77
|
+
assert_equal browser.em(:index, idx).title, em.title
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
data/unittests/strong_test.rb
CHANGED
@@ -17,6 +17,7 @@ class TC_Strong < Test::Unit::TestCase
|
|
17
17
|
assert browser.strong(:text, /this is a/).exists?, "Could not finr <strong> by :text"
|
18
18
|
end
|
19
19
|
|
20
|
+
tag_method :test_strong_iterator, :fails_on_ie
|
20
21
|
def test_strong_iterator
|
21
22
|
assert_equal(2, browser.strongs.length)
|
22
23
|
assert_equal("this is a strong", browser.strongs[1].text)
|
@@ -29,4 +30,17 @@ class TC_Strong < Test::Unit::TestCase
|
|
29
30
|
end
|
30
31
|
end
|
31
32
|
|
32
|
-
|
33
|
+
tag_method :test_strong_iterator_ie, :fails_on_firefox
|
34
|
+
def test_strong_iterator_ie
|
35
|
+
assert_equal(2, browser.strongs.length)
|
36
|
+
assert_equal("this is a strong", browser.strongs[0].text)
|
37
|
+
|
38
|
+
browser.strongs.each_with_index do |strong, idx|
|
39
|
+
assert_equal(browser.strong(:index,idx).text, strong.text)
|
40
|
+
assert_equal(browser.strong(:index,idx).id, strong.id)
|
41
|
+
assert_equal(browser.strong(:index,idx).class_name , strong.class_name)
|
42
|
+
assert_equal(browser.strong(:index,idx).title, strong.title)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
@@ -10,10 +10,16 @@ class TC_WhiteSpace < Test::Unit::TestCase
|
|
10
10
|
uses_page "whitespace.html"
|
11
11
|
end
|
12
12
|
|
13
|
+
tag_method :test_text_with_nbsp, :fails_on_ie
|
13
14
|
def test_text_with_nbsp
|
14
15
|
assert_equal 'Login', browser.link(:index => 1).text
|
15
16
|
end
|
16
17
|
|
18
|
+
tag_method :test_text_with_nbsp_ie, :fails_on_firefox
|
19
|
+
def test_text_with_nbsp_ie
|
20
|
+
assert_equal 'Login', browser.link(:index => 0).text
|
21
|
+
end
|
22
|
+
|
17
23
|
def test_nbsp_beginning_and_end
|
18
24
|
assert browser.link(:text, 'Login').exists?
|
19
25
|
end
|
metadata
CHANGED
@@ -1,13 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonwatir
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 15424081
|
5
|
+
prerelease: 6
|
6
6
|
segments:
|
7
|
-
- 1
|
8
|
-
- 9
|
9
7
|
- 2
|
10
|
-
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
- rc
|
11
|
+
- 2
|
12
|
+
version: 2.0.0.rc2
|
11
13
|
platform: ruby
|
12
14
|
authors:
|
13
15
|
- Bret Pettichord
|
@@ -15,7 +17,7 @@ autorequire:
|
|
15
17
|
bindir: bin
|
16
18
|
cert_chain: []
|
17
19
|
|
18
|
-
date: 2011-07-
|
20
|
+
date: 2011-07-24 00:00:00 Z
|
19
21
|
dependencies:
|
20
22
|
- !ruby/object:Gem::Dependency
|
21
23
|
name: user-choices
|
@@ -123,12 +125,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
125
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
124
126
|
none: false
|
125
127
|
requirements:
|
126
|
-
- - "
|
128
|
+
- - ">"
|
127
129
|
- !ruby/object:Gem::Version
|
128
|
-
hash:
|
130
|
+
hash: 25
|
129
131
|
segments:
|
130
|
-
-
|
131
|
-
|
132
|
+
- 1
|
133
|
+
- 3
|
134
|
+
- 1
|
135
|
+
version: 1.3.1
|
132
136
|
requirements: []
|
133
137
|
|
134
138
|
rubyforge_project: wtr
|