watir 3.0.0.rc2 → 3.0.0.rc3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +19 -0
- data/VERSION +1 -1
- data/lib/watir/close_all.rb +2 -2
- data/lib/watir/container.rb +6 -4
- data/lib/watir/cookies.rb +80 -0
- data/lib/watir/core.rb +7 -3
- data/lib/watir/dialogs/file_field.rb +0 -4
- data/lib/watir/drag_and_drop_helper.rb +68 -0
- data/lib/watir/element.rb +58 -156
- data/lib/watir/element_collection.rb +109 -0
- data/lib/watir/form.rb +7 -14
- data/lib/watir/frame.rb +11 -26
- data/lib/watir/ie-class.rb +17 -307
- data/lib/watir/ie.rb +0 -9
- data/lib/watir/image.rb +8 -25
- data/lib/watir/input_elements.rb +32 -81
- data/lib/watir/link.rb +2 -17
- data/lib/watir/locator.rb +29 -25
- data/lib/watir/modal_dialog.rb +26 -40
- data/lib/watir/non_control_elements.rb +111 -79
- data/lib/watir/page-container.rb +12 -1
- data/lib/watir/supported_elements.rb +172 -0
- data/lib/watir/table.rb +61 -89
- data/lib/watir/win32ole.rb +2 -3
- data/lib/watir/win32ole/1.9.3/win32ole.so +0 -0
- data/lib/watir/xpath_locator.rb +52 -0
- data/rakefile.rb +1 -1
- data/unittests/checkbox_test.rb +22 -32
- data/unittests/css_selector_test.rb +1 -6
- data/unittests/css_test.rb +1 -4
- data/unittests/div_test.rb +3 -21
- data/unittests/document_standards.rb +0 -4
- data/unittests/element_collections_test.rb +2 -2
- data/unittests/element_test.rb +1 -1
- data/unittests/form_test.rb +0 -30
- data/unittests/frame_test.rb +8 -49
- data/unittests/ie_test.rb +5 -9
- data/unittests/images_test.rb +6 -6
- data/unittests/index_specifier_test.rb +0 -1
- data/unittests/js_events_test.rb +1 -1
- data/unittests/links_multi_test.rb +0 -14
- data/unittests/links_test.rb +8 -51
- data/unittests/lists_test.rb +0 -9
- data/unittests/navigate_test.rb +1 -1
- data/unittests/nbsp_xpath_test.rb +1 -1
- data/unittests/no_wait_test.rb +3 -3
- data/unittests/parent_child_test.rb +0 -17
- data/unittests/pre_test.rb +0 -3
- data/unittests/radios_test.rb +31 -42
- data/unittests/selectbox_test.rb +18 -21
- data/unittests/selectbox_xpath_test.rb +11 -26
- data/unittests/table_test.rb +14 -79
- data/unittests/textfields_test.rb +8 -47
- data/unittests/windows/attach_to_new_window_test.rb +0 -8
- data/unittests/windows/frame_links_test.rb +5 -5
- data/unittests/windows/ie-each_test.rb +1 -1
- data/unittests/windows/modal_dialog_test.rb +2 -2
- data/watir.gemspec +3 -3
- metadata +81 -126
- data/lib/watir/camel_case.rb +0 -67
- data/lib/watir/collections.rb +0 -48
- data/lib/watir/cookiemanager.rb +0 -56
- data/lib/watir/element_collections.rb +0 -81
- data/lib/watir/html_element.rb +0 -30
- data/unittests/defer_test.rb +0 -47
- data/unittests/multiple_specifiers_test.rb +0 -29
- data/unittests/table_and_tablerow_to_a_test.rb +0 -117
- data/unittests/windows/iedialog_test.rb +0 -53
data/lib/watir/win32ole.rb
CHANGED
@@ -4,9 +4,8 @@
|
|
4
4
|
|
5
5
|
if RUBY_VERSION =~ /^1\.8/
|
6
6
|
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir', 'win32ole', '1.8.7'))
|
7
|
-
|
8
|
-
|
9
|
-
# $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir', 'win32ole', '1.9.2'))
|
7
|
+
elsif RUBY_VERSION =~ /^1\.9/
|
8
|
+
$LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'watir', 'win32ole', '1.9.3'))
|
10
9
|
else
|
11
10
|
# loading win32ole from stdlib
|
12
11
|
end
|
Binary file
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Watir
|
2
|
+
module XpathLocator
|
3
|
+
|
4
|
+
def xmlparser_document_object
|
5
|
+
@xml_parser_doc ||= begin
|
6
|
+
require 'nokogiri'
|
7
|
+
Nokogiri.parse("<html>#{@container.html}</html>")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# execute css selector and return an array of elements
|
12
|
+
def elements_by_css(selector)
|
13
|
+
xmlparser_document_object # Needed to ensure Nokogiri has been loaded
|
14
|
+
xpath = Nokogiri::CSS.xpath_for(selector)[0]
|
15
|
+
elements_by_xpath(xpath)
|
16
|
+
end
|
17
|
+
|
18
|
+
# return the first element that matches the css selector
|
19
|
+
def element_by_css(selector)
|
20
|
+
elements_by_css(selector)[0]
|
21
|
+
end
|
22
|
+
|
23
|
+
# return the first element that matches the xpath
|
24
|
+
def element_by_xpath(xpath)
|
25
|
+
elements_by_xpath(xpath)[0]
|
26
|
+
end
|
27
|
+
|
28
|
+
# execute xpath selector and return an array of elements
|
29
|
+
def elements_by_xpath(xpath)
|
30
|
+
doc = xmlparser_document_object
|
31
|
+
current_tag = @container.is_a?(IE) ? "body" : @container.tag_name
|
32
|
+
|
33
|
+
doc.xpath(xpath).reduce([]) do |elements, element|
|
34
|
+
absolute_xpath_parts = element.path.split("/")
|
35
|
+
first_tag_position = absolute_xpath_parts.index(current_tag) || absolute_xpath_parts.index("html") + 1
|
36
|
+
element_xpath_parts = absolute_xpath_parts[first_tag_position..-1]
|
37
|
+
elements << element_xpath_parts.reduce(@container.page_container) do |container, tag|
|
38
|
+
tag_name, index = tag.split(/[\[\]]/)
|
39
|
+
index = index ? index.to_i - 1 : 0
|
40
|
+
specifiers = {:tag_name => [tag_name]}
|
41
|
+
direct_children(container, container.send(:elements, specifiers))[index]
|
42
|
+
end.ole_object
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def direct_children container, elements
|
47
|
+
return elements if container.is_a?(IE)
|
48
|
+
elements.select {|el| el.parent == container}
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
data/rakefile.rb
CHANGED
data/unittests/checkbox_test.rb
CHANGED
@@ -13,7 +13,7 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
13
13
|
def test_checkbox_exceptions
|
14
14
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").id }
|
15
15
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").name }
|
16
|
-
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").disabled }
|
16
|
+
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").disabled? }
|
17
17
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").type }
|
18
18
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").value }
|
19
19
|
end
|
@@ -23,7 +23,7 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
23
23
|
assert_equal("", browser.checkbox(:index, 0).id )
|
24
24
|
assert_equal("checkbox", browser.checkbox(:index, 0).type )
|
25
25
|
assert_equal("on", browser.checkbox(:index, 0).value )
|
26
|
-
assert_equal(false, browser.checkbox(:index, 0).disabled )
|
26
|
+
assert_equal(false, browser.checkbox(:index, 0).disabled? )
|
27
27
|
end
|
28
28
|
def test_checkbox_properties
|
29
29
|
assert_equal("check_box_style", browser.checkbox(:name, "box1").class_name)
|
@@ -34,7 +34,7 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
34
34
|
assert(browser.checkbox(:name, "box6").exists?)
|
35
35
|
assert_equal("checkbox", browser.checkbox(:name => "box4", :value => 3).type )
|
36
36
|
assert_equal("checkbox", browser.checkbox(:name => "box6", :value => 'Milk').type )
|
37
|
-
assert_equal(false, browser.checkbox(:name => "box4", :value => 3).disabled )
|
37
|
+
assert_equal(false, browser.checkbox(:name => "box4", :value => 3).disabled? )
|
38
38
|
assert_equal("", browser.checkbox(:name => "box4", :value => 3).id )
|
39
39
|
|
40
40
|
assert_equal("box4-value5", browser.checkbox(:name => "box4", :value => 5).title)
|
@@ -77,73 +77,63 @@ class TC_CheckBox < Test::Unit::TestCase
|
|
77
77
|
end
|
78
78
|
|
79
79
|
def test_checkbox_isSet
|
80
|
-
assert_raises(UnknownObjectException ) { browser.checkbox(:name, "noName").
|
80
|
+
assert_raises(UnknownObjectException ) { browser.checkbox(:name, "noName").set? }
|
81
81
|
|
82
|
-
assert_false(browser.checkbox(:name, "box1").
|
83
|
-
assert_false(browser.checkbox(:name, "box2").
|
84
|
-
assert(browser.checkbox(:name, "box3").
|
82
|
+
assert_false(browser.checkbox(:name, "box1").set?)
|
83
|
+
assert_false(browser.checkbox(:name, "box2").set?)
|
84
|
+
assert(browser.checkbox(:name, "box3").set?)
|
85
85
|
|
86
|
-
assert_false(browser.checkbox(:name => "box4", :value => 2 ).
|
87
|
-
assert(browser.checkbox(:name => "box4", :value => 1 ).
|
86
|
+
assert_false(browser.checkbox(:name => "box4", :value => 2 ).set?)
|
87
|
+
assert(browser.checkbox(:name => "box4", :value => 1 ).set?)
|
88
88
|
|
89
|
-
assert_false(browser.checkbox(:name => 'box6', :value => 'Milk').
|
89
|
+
assert_false(browser.checkbox(:name => 'box6', :value => 'Milk').set?)
|
90
90
|
end
|
91
91
|
|
92
92
|
def test_checkbox_clear
|
93
93
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").clear }
|
94
94
|
browser.checkbox(:name, "box1").clear
|
95
|
-
assert_false(browser.checkbox(:name, "box1").
|
95
|
+
assert_false(browser.checkbox(:name, "box1").set?)
|
96
96
|
|
97
97
|
assert_raises(ObjectDisabledException) { browser.checkbox(:name, "box2").clear }
|
98
|
-
assert_false(browser.checkbox(:name, "box2").
|
98
|
+
assert_false(browser.checkbox(:name, "box2").set?)
|
99
99
|
|
100
100
|
browser.checkbox(:name, "box3").clear
|
101
|
-
assert_false(browser.checkbox(:name, "box3").
|
101
|
+
assert_false(browser.checkbox(:name, "box3").set?)
|
102
102
|
|
103
103
|
browser.checkbox(:name => "box4", :value => 1).clear
|
104
|
-
assert_false(browser.checkbox(:name => "box4", :value => 1).
|
104
|
+
assert_false(browser.checkbox(:name => "box4", :value => 1).set?)
|
105
105
|
|
106
106
|
browser.checkbox(:name => "box6", :value => 'Tea').clear
|
107
|
-
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_checkbox_getState
|
111
|
-
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").getState }
|
112
|
-
assert_equal( false, browser.checkbox(:name, "box1").getState )
|
113
|
-
assert_equal( true, browser.checkbox(:name, "box3").getState)
|
114
|
-
|
115
|
-
# checkboxes that have the same name but different values
|
116
|
-
assert_equal( false, browser.checkbox(:name => "box4", :value => 2).getState )
|
117
|
-
assert_equal( true, browser.checkbox(:name => "box4", :value => 1).getState)
|
107
|
+
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').set?)
|
118
108
|
end
|
119
109
|
|
120
110
|
def test_checkbox_set
|
121
111
|
assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").set }
|
122
112
|
browser.checkbox(:name, "box1").set
|
123
|
-
assert(browser.checkbox(:name, "box1").
|
113
|
+
assert(browser.checkbox(:name, "box1").set?)
|
124
114
|
|
125
115
|
assert_raises(ObjectDisabledException) { browser.checkbox(:name, "box2").set }
|
126
116
|
|
127
117
|
browser.checkbox(:name, "box3").set
|
128
|
-
assert(browser.checkbox(:name, "box3").
|
118
|
+
assert(browser.checkbox(:name, "box3").set?)
|
129
119
|
|
130
120
|
# checkboxes that have the same name but different values
|
131
121
|
browser.checkbox(:name => "box4", :value => 3).set
|
132
|
-
assert(browser.checkbox(:name => "box4", :value => 3).
|
122
|
+
assert(browser.checkbox(:name => "box4", :value => 3).set?)
|
133
123
|
|
134
124
|
# test set using the optinal true/false
|
135
125
|
# assumes the checkbox is already checked
|
136
126
|
browser.checkbox(:name, "box1").set( false )
|
137
|
-
assert_false(browser.checkbox(:name, "box1").
|
127
|
+
assert_false(browser.checkbox(:name, "box1").set?)
|
138
128
|
|
139
129
|
browser.checkbox(:name, "box1").set( true )
|
140
|
-
assert(browser.checkbox(:name, "box1").
|
130
|
+
assert(browser.checkbox(:name, "box1").set?)
|
141
131
|
|
142
132
|
browser.checkbox(:name => "box6", :value => 'Tea').set( false )
|
143
|
-
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').
|
133
|
+
assert_false(browser.checkbox(:name => "box6", :value => 'Tea').set?)
|
144
134
|
|
145
135
|
browser.checkbox(:name => "box6", :value => 'Tea').set( true )
|
146
|
-
assert(browser.checkbox(:name => "box6", :value => 'Tea').
|
136
|
+
assert(browser.checkbox(:name => "box6", :value => 'Tea').set?)
|
147
137
|
end
|
148
138
|
|
149
139
|
def test_checkboxes_access
|
@@ -37,13 +37,8 @@ class TC_CSS_Selector < Test::Unit::TestCase
|
|
37
37
|
assert_equal( "circle", browser.image(:css, "*[id ^= 'circ']").id )
|
38
38
|
end
|
39
39
|
|
40
|
-
def test_link
|
41
|
-
goto_page "links1.html"
|
42
|
-
assert_equal( "link_name", browser.link(:css, "*[name *= ink_nam]").name )
|
43
|
-
end
|
44
|
-
|
45
40
|
def test_table
|
46
41
|
goto_page "table1.html"
|
47
|
-
assert_equal( "Header", browser.
|
42
|
+
assert_equal( "Header", browser.th(:css , ".sample th").text )
|
48
43
|
end
|
49
44
|
end
|
data/unittests/css_test.rb
CHANGED
@@ -31,11 +31,8 @@ class TC_CSS < Test::Unit::TestCase
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def test_inline_style
|
34
|
-
|
34
|
+
assert_match(/300px/, browser.form(:index, 0).style)
|
35
35
|
end
|
36
36
|
|
37
|
-
def test_internal_style
|
38
|
-
assert_equal("#f00", browser.div(:id => "Container").style.backgroundColor)
|
39
|
-
end
|
40
37
|
end
|
41
38
|
|
data/unittests/div_test.rb
CHANGED
@@ -10,17 +10,6 @@ class TC_Divs < Test::Unit::TestCase
|
|
10
10
|
uses_page "div.html"
|
11
11
|
end
|
12
12
|
|
13
|
-
def test_divs
|
14
|
-
assert_raises(UnknownObjectException) { browser.div(:id, "div77").click }
|
15
|
-
assert_raises(UnknownObjectException) { browser.div(:title, "div77").click }
|
16
|
-
|
17
|
-
assert browser.text_field(:name, "text1").verify_contains("0")
|
18
|
-
browser.div(:id, "div3").click
|
19
|
-
assert browser.text_field(:name, "text1").verify_contains("1")
|
20
|
-
browser.div(:id, "div4").click
|
21
|
-
assert browser.text_field(:name, "text1").verify_contains("0")
|
22
|
-
end
|
23
|
-
|
24
13
|
tag_method :test_div_properties, :fails_on_firefox
|
25
14
|
def test_div_properties
|
26
15
|
assert_raises(UnknownObjectException) { browser.div(:id, "div77").text }
|
@@ -39,9 +28,7 @@ class TC_Divs < Test::Unit::TestCase
|
|
39
28
|
assert_equal("div1" , browser.div(:index, 0).id)
|
40
29
|
assert_equal("" , browser.div(:index, 0).class_name)
|
41
30
|
assert_equal("blueText" , browser.div(:index, 1).class_name)
|
42
|
-
assert_equal(
|
43
|
-
assert_equal(false , browser.div(:index, 1).disabled)
|
44
|
-
assert_equal("" , browser.div(:index, 1).name)
|
31
|
+
assert_equal(false , browser.div(:index, 1).disabled?)
|
45
32
|
assert_equal("div2", browser.div(:index, 1).id)
|
46
33
|
end
|
47
34
|
|
@@ -51,7 +38,6 @@ class TC_Divs < Test::Unit::TestCase
|
|
51
38
|
|
52
39
|
index = 0
|
53
40
|
browser.divs.each do |s|
|
54
|
-
assert_equal(browser.div(:index,index).name, s.name)
|
55
41
|
assert_equal(browser.div(:index,index).id, s.id)
|
56
42
|
assert_equal(browser.div(:index,index).class_name , s.class_name)
|
57
43
|
index += 1
|
@@ -118,9 +104,7 @@ class TC_Divs < Test::Unit::TestCase
|
|
118
104
|
assert_equal("span1" , browser.span(:index , 0).id )
|
119
105
|
assert_equal("" , browser.span(:index , 0).class_name )
|
120
106
|
assert_equal("blueText" , browser.span(:index , 1).class_name )
|
121
|
-
assert_equal(
|
122
|
-
assert_equal(false , browser.span(:index , 1).disabled)
|
123
|
-
assert_equal("" , browser.span(:index , 1).name)
|
107
|
+
assert_equal(false , browser.span(:index , 1).disabled?)
|
124
108
|
assert_equal("span2", browser.span(:index , 1).id)
|
125
109
|
end
|
126
110
|
|
@@ -130,8 +114,6 @@ class TC_Divs < Test::Unit::TestCase
|
|
130
114
|
|
131
115
|
index = 0
|
132
116
|
browser.spans.each do |s|
|
133
|
-
# puts "each - span = " + s.to_s
|
134
|
-
assert_equal(browser.span(:index, index ).name , s.name )
|
135
117
|
assert_equal(browser.span(:index, index ).id , s.id )
|
136
118
|
assert_equal(browser.span(:index, index ).class_name , s.class_name )
|
137
119
|
index += 1
|
@@ -166,7 +148,7 @@ class TC_Divs < Test::Unit::TestCase
|
|
166
148
|
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').text }
|
167
149
|
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').title }
|
168
150
|
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').to_s }
|
169
|
-
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').disabled }
|
151
|
+
assert_raises( UnknownObjectException) {browser.p(:id , 'missing').disabled? }
|
170
152
|
|
171
153
|
assert_equal('redText' , browser.p(:index,0).class_name)
|
172
154
|
assert_equal('P_tag_1' , browser.p(:index,0).title)
|
@@ -10,7 +10,6 @@ class TC_DocumentStandards_Quirks < Test::Unit::TestCase
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def test_elements_exist_or_not
|
13
|
-
assert(browser.document_mode.to_i == 5)
|
14
13
|
assert(browser.text_field(:name,"quirks_text").exists?)
|
15
14
|
browser.text_field(:name,"quirks_text").set "test"
|
16
15
|
browser.text_field(:name,"quirks_text").fire_event "onClick"
|
@@ -26,7 +25,6 @@ class TC_DocumentStandards_IE7 < Test::Unit::TestCase
|
|
26
25
|
end
|
27
26
|
|
28
27
|
def test_elements_exist_or_not
|
29
|
-
assert(browser.document_mode.to_i == 7)
|
30
28
|
assert(browser.text_field(:name,"ie7_text").exists?)
|
31
29
|
browser.text_field(:name,"ie7_text").set "test"
|
32
30
|
browser.text_field(:name,"ie7_text").fire_event "onClick"
|
@@ -42,7 +40,6 @@ class TC_DocumentStandards_IE8 < Test::Unit::TestCase
|
|
42
40
|
end
|
43
41
|
|
44
42
|
def test_elements_exist_or_not
|
45
|
-
assert(browser.document_mode.to_i == 8)
|
46
43
|
assert(browser.text_field(:name,"ie8_text").exists?)
|
47
44
|
browser.text_field(:name,"ie8_text").set "test"
|
48
45
|
browser.text_field(:name,"ie8_text").fire_event "onClick"
|
@@ -58,7 +55,6 @@ class TC_DocumentStandards_IE9 < Test::Unit::TestCase
|
|
58
55
|
end
|
59
56
|
|
60
57
|
def test_elements_exist_or_not
|
61
|
-
assert(browser.document_mode.to_i == 9)
|
62
58
|
assert(browser.text_field(:name,"ie9_text").exists?)
|
63
59
|
browser.text_field(:name,"ie9_text").set "test"
|
64
60
|
browser.text_field(:name,"ie9_text").fire_event "onClick"
|
@@ -28,8 +28,8 @@ class TC_ElementCollections < Test::Unit::TestCase
|
|
28
28
|
def test_brackets
|
29
29
|
assert browser.buttons[0], browser.buttons(:class => "one")
|
30
30
|
assert browser.buttons[1].exists?
|
31
|
-
|
32
|
-
|
31
|
+
assert browser.buttons[2].exists? == false
|
32
|
+
assert_raise(Watir::Exception::UnknownObjectException) {browser.buttons[2].click}
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_first
|
data/unittests/element_test.rb
CHANGED
@@ -21,7 +21,7 @@ class TC_Elements < Test::Unit::TestCase
|
|
21
21
|
def test_element_iterator
|
22
22
|
assert_equal 3, browser.elements(:class, 'blueText').length
|
23
23
|
assert_equal 3, browser.elements(:class, 'blueText').size
|
24
|
-
assert_equal("
|
24
|
+
assert_equal("number3", browser.elements(:class, 'blueText')[2].id)
|
25
25
|
|
26
26
|
index = 0
|
27
27
|
browser.elements(:id, /div/).each do |s|
|
data/unittests/form_test.rb
CHANGED
@@ -80,36 +80,6 @@ class TC_Forms_Collection < Test::Unit::TestCase
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
-
class TC_Form_Display < Test::Unit::TestCase
|
84
|
-
include CaptureIOHelper
|
85
|
-
def test_showforms
|
86
|
-
goto_page "forms2.html"
|
87
|
-
actual = capture_stdout { browser.showForms }
|
88
|
-
expected = <<END_OF_MESSAGE
|
89
|
-
There are 4 forms
|
90
|
-
Form name:
|
91
|
-
id:
|
92
|
-
method: get
|
93
|
-
action: pass.html
|
94
|
-
Form name: test2
|
95
|
-
id: f2
|
96
|
-
method: get
|
97
|
-
action: pass2.html
|
98
|
-
Form name: test3
|
99
|
-
id:
|
100
|
-
method: get
|
101
|
-
action: pass2.html
|
102
|
-
Form name: test2
|
103
|
-
id:
|
104
|
-
method: get
|
105
|
-
action: pass2.html
|
106
|
-
END_OF_MESSAGE
|
107
|
-
actual.gsub!(/(action: )file:.*\/(.*)$/,'\\1\\2') if actual =~ /file:/
|
108
|
-
actual.gsub!(/\s+\n/,"\n")
|
109
|
-
assert_equal(expected, actual)
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
83
|
class TC_Forms3 < Test::Unit::TestCase
|
114
84
|
def setup
|
115
85
|
goto_page "forms3.html"
|
data/unittests/frame_test.rb
CHANGED
@@ -11,26 +11,26 @@ class TC_Frames < Test::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_frame_no_what
|
14
|
-
assert_raises(
|
14
|
+
assert_raises(UnknownFrameException) { browser.frame(:name => "missingFrame").html }
|
15
15
|
assert_raises(UnknownObjectException) { browser.frame(:name => "buttonFrame2").button(:id, "b2").enabled? }
|
16
16
|
assert(browser.frame(:name => "buttonFrame").button(:id, "b2").enabled?)
|
17
17
|
assert_false(browser.frame(:name => "buttonFrame").button(:caption, "Disabled Button").enabled?)
|
18
18
|
end
|
19
19
|
|
20
20
|
def test_frame_using_name
|
21
|
-
assert_raises(
|
21
|
+
assert_raises(UnknownFrameException) { browser.frame(:name, "missingFrame").html }
|
22
22
|
assert_raises(UnknownObjectException) { browser.frame(:name, "buttonFrame2").button(:id, "b2").enabled? }
|
23
23
|
assert(browser.frame(:name, "buttonFrame").button(:id, "b2").enabled?)
|
24
24
|
assert_false(browser.frame(:name, "buttonFrame").button(:caption, "Disabled Button").enabled?)
|
25
25
|
end
|
26
26
|
|
27
27
|
def test_frame_using_name_and_regexp
|
28
|
-
assert_raises(
|
28
|
+
assert_raises(UnknownFrameException) { browser.frame(:name, /missingFrame/).button(:id, "b2").enabled? }
|
29
29
|
assert(browser.frame(:name, /button/).button(:id, "b2").enabled?)
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_frame_using_index
|
33
|
-
assert_raises(
|
33
|
+
assert_raises(UnknownFrameException) { browser.frame(:index, 7).button(:id, "b2").enabled? }
|
34
34
|
assert_raises(UnknownObjectException) { browser.frame(:index, 1).button(:id, "b2").enabled? }
|
35
35
|
assert(browser.frame(:index, 0 ).button(:id, "b2").enabled?)
|
36
36
|
assert_false(browser.frame(:index, 0).button(:caption, "Disabled Button").enabled?)
|
@@ -58,11 +58,11 @@ class TC_Frames2 < Test::Unit::TestCase
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def test_frame_with_no_name
|
61
|
-
assert_raises(
|
61
|
+
assert_raises(UnknownFrameException) { browser.frame(:name, "missingFrame").button(:id, "b2").enabled? }
|
62
62
|
end
|
63
63
|
|
64
64
|
def test_frame_by_id
|
65
|
-
assert_raises(
|
65
|
+
assert_raises(UnknownFrameException) { browser.frame(:id, "missingFrame").button(:id, "b2").enabled? }
|
66
66
|
assert(browser.frame(:id, 'first_frame').button(:id, "b2").enabled?)
|
67
67
|
end
|
68
68
|
|
@@ -80,8 +80,8 @@ class TC_NestedFrames < Test::Unit::TestCase
|
|
80
80
|
end
|
81
81
|
|
82
82
|
def test_frame
|
83
|
-
assert_raises(
|
84
|
-
assert_raises(
|
83
|
+
assert_raises(UnknownFrameException) { browser.frame(:name => "missingFrame").button(:id, "b2").enabled? }
|
84
|
+
assert_raises(UnknownFrameException) { browser.frame(:name => "nestedFrame").frame(:name => "subFrame").button(:id, "b2").enabled? }
|
85
85
|
assert(browser.frame(:name => "nestedFrame").frame(:name => "senderFrame").button(:name, "sendIt").enabled?)
|
86
86
|
browser.frame(:name => "nestedFrame").frame(:name => "senderFrame").text_field(:index, "0").set("Hello")
|
87
87
|
browser.frame(:name => "nestedFrame").frame(:name => "senderFrame").button(:name, "sendIt").click
|
@@ -112,47 +112,6 @@ class TC_IFrames < Test::Unit::TestCase
|
|
112
112
|
|
113
113
|
end
|
114
114
|
|
115
|
-
class TC_show_frames < Test::Unit::TestCase
|
116
|
-
include CaptureIOHelper
|
117
|
-
|
118
|
-
def capture_and_compare(page, expected)
|
119
|
-
goto_page page
|
120
|
-
actual = capture_stdout { browser.showFrames }
|
121
|
-
assert_equal(expected, actual)
|
122
|
-
end
|
123
|
-
|
124
|
-
tag_method :test_show_nested_frames, :fails_on_firefox
|
125
|
-
|
126
|
-
def test_show_nested_frames
|
127
|
-
capture_and_compare("nestedFrames.html", <<END_OF_MESSAGE)
|
128
|
-
there are 2 frames
|
129
|
-
frame index: 1 name: nestedFrame
|
130
|
-
frame index: 2 name: nestedFrame2
|
131
|
-
END_OF_MESSAGE
|
132
|
-
end
|
133
|
-
|
134
|
-
tag_method :test_button_frames, :fails_on_firefox
|
135
|
-
|
136
|
-
def test_button_frames
|
137
|
-
capture_and_compare("frame_buttons.html", <<END_OF_MESSAGE)
|
138
|
-
there are 2 frames
|
139
|
-
frame index: 1 name: buttonFrame
|
140
|
-
frame index: 2 name: buttonFrame2
|
141
|
-
END_OF_MESSAGE
|
142
|
-
end
|
143
|
-
|
144
|
-
tag_method :test_iframes, :fails_on_firefox
|
145
|
-
|
146
|
-
def test_iframes
|
147
|
-
capture_and_compare("iframeTest.html", <<END_OF_MESSAGE)
|
148
|
-
there are 2 frames
|
149
|
-
frame index: 1 name: senderFrame
|
150
|
-
frame index: 2 name: receiverFrame
|
151
|
-
END_OF_MESSAGE
|
152
|
-
end
|
153
|
-
|
154
|
-
end
|
155
|
-
|
156
115
|
class TC_Frames_click_no_wait < Test::Unit::TestCase
|
157
116
|
def setup
|
158
117
|
goto_page "frame_buttons.html"
|