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
data/unittests/core_tests.rb
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
# these are the tests that run reliably and invisibly
|
|
2
|
+
|
|
1
3
|
TOPDIR = File.join(File.dirname(__FILE__), '..')
|
|
2
4
|
$LOAD_PATH.unshift TOPDIR
|
|
3
5
|
|
|
6
|
+
require 'watir'
|
|
7
|
+
|
|
8
|
+
$HIDE_IE = true
|
|
9
|
+
|
|
4
10
|
require 'unittests/setup.rb'
|
|
5
11
|
|
|
6
12
|
Dir.chdir TOPDIR
|
|
7
13
|
$core_tests.each {|x| require x}
|
|
8
|
-
|
|
9
|
-
|
data/unittests/css_test.rb
CHANGED
|
@@ -1,60 +1,60 @@
|
|
|
1
1
|
# feature tests for css
|
|
2
|
-
# revision: $Revision:
|
|
2
|
+
# revision: $Revision: 962 $
|
|
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_CSS < Test::Unit::TestCase
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def isMessageDisplayed(message)
|
|
21
|
-
|
|
22
|
-
s = false
|
|
23
|
-
divs = $ie.getIE.document.getElementsByTagName("DIV")
|
|
24
|
-
#puts "Found #{divs.length} div tags"
|
|
25
|
-
divs.each do |d|
|
|
26
|
-
#puts "----Checking div #{d.id} innertext is ( #{d.innerText} )"
|
|
27
|
-
|
|
28
|
-
if d.innerText.to_s.downcase.match( /#{message}/i )
|
|
29
|
-
|
|
30
|
-
#puts "div #{d.invoke("id") } class is #{d.invoke("className") }"
|
|
31
|
-
if d.invoke("className").to_s.downcase.match(/show/i)
|
|
32
|
-
#puts "message is shown!!!"
|
|
33
|
-
s = true
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
#puts "Not Shown " if s== false
|
|
40
|
-
return s
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def gotoCSSPage()
|
|
44
|
-
$ie.goto($htmlRoot + "cssTest.html")
|
|
8
|
+
include Watir
|
|
9
|
+
|
|
10
|
+
def divTester( message )
|
|
11
|
+
|
|
12
|
+
divs = $ie.getIE.document.getElementsByTagName("DIV")
|
|
13
|
+
puts "Found #{divs.length} div tags"
|
|
14
|
+
divs.each do |d|
|
|
15
|
+
puts "Checking div #{d.id}"
|
|
16
|
+
puts "div #{d.invoke("id") } class is #{d.invoke("className") }"
|
|
45
17
|
end
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def isMessageDisplayed(message)
|
|
21
|
+
|
|
22
|
+
s = false
|
|
23
|
+
divs = $ie.getIE.document.getElementsByTagName("DIV")
|
|
24
|
+
#puts "Found #{divs.length} div tags"
|
|
25
|
+
divs.each do |d|
|
|
26
|
+
#puts "----Checking div #{d.id} innertext is ( #{d.innerText} )"
|
|
27
|
+
|
|
28
|
+
if d.innerText.to_s.downcase.match( /#{message}/i )
|
|
29
|
+
|
|
30
|
+
#puts "div #{d.invoke("id") } class is #{d.invoke("className") }"
|
|
31
|
+
if d.invoke("className").to_s.downcase.match(/show/i)
|
|
32
|
+
#puts "message is shown!!!"
|
|
33
|
+
s = true
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
end
|
|
58
37
|
end
|
|
38
|
+
|
|
39
|
+
#puts "Not Shown " if s== false
|
|
40
|
+
return s
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def gotoCSSPage
|
|
44
|
+
$ie.goto($htmlRoot + "cssTest.html")
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def test_SuccessMessage
|
|
48
|
+
gotoCSSPage
|
|
49
|
+
$ie.button( :caption , "Success").click
|
|
50
|
+
|
|
51
|
+
#isMessageDisplayed( "Success" )
|
|
52
|
+
#divTester( "Success" )
|
|
53
|
+
assert( isMessageDisplayed("Success") )
|
|
54
|
+
|
|
55
|
+
$ie.button( :caption , "Failure").click
|
|
56
|
+
|
|
57
|
+
assert(!isMessageDisplayed("Success") )
|
|
58
|
+
end
|
|
59
59
|
end
|
|
60
60
|
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# tests of deferring when a Watir object is bound to a com object (lazy evaluation)
|
|
2
|
+
|
|
3
|
+
# revision: $Revision: 962 $
|
|
4
|
+
|
|
5
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
|
|
6
|
+
require 'unittests/setup'
|
|
7
|
+
require 'unittests/buttons_test.rb'
|
|
8
|
+
|
|
9
|
+
class TC_Defer < Test::Unit::TestCase
|
|
10
|
+
def teardown
|
|
11
|
+
@ie_new.close if defined?(@ie_new)
|
|
12
|
+
$ie.goto('about:blank')
|
|
13
|
+
end
|
|
14
|
+
def test_binding_to_newly_loaded_page
|
|
15
|
+
@ie_new = Watir::IE.new
|
|
16
|
+
text_field = @ie_new.text_field(:name, 'text1')
|
|
17
|
+
button = @ie_new.button(:value, 'Clear Events Box')
|
|
18
|
+
div = @ie_new.div(:name, 'divvy')
|
|
19
|
+
@ie_new.goto($htmlRoot + "textfields1.html")
|
|
20
|
+
assert_equal('Hello World', text_field.value)
|
|
21
|
+
assert_equal('Clear Events Box', button.value)
|
|
22
|
+
assert_equal('Div Text', div.text)
|
|
23
|
+
end
|
|
24
|
+
def test_binding_to_refreshed_page
|
|
25
|
+
$ie.goto($htmlRoot + "textfields1.html")
|
|
26
|
+
text_field = $ie.text_field(:name, 'text1')
|
|
27
|
+
button = $ie.button(:value, 'Clear Events Box')
|
|
28
|
+
div = $ie.div(:name, 'divvy')
|
|
29
|
+
$ie.refresh
|
|
30
|
+
assert_equal('Hello World', text_field.value)
|
|
31
|
+
assert(text_field.enabled?)
|
|
32
|
+
assert_equal('Clear Events Box', button.value)
|
|
33
|
+
assert_equal('Div Text', div.text)
|
|
34
|
+
end
|
|
35
|
+
def test_exists
|
|
36
|
+
@ie_new = Watir::IE.new
|
|
37
|
+
text_field = @ie_new.text_field(:name, 'text1')
|
|
38
|
+
button = @ie_new.button(:value, 'Clear Events Box')
|
|
39
|
+
div = @ie_new.div(:name, 'divvy')
|
|
40
|
+
assert(!text_field.exists?)
|
|
41
|
+
assert(!button.exists?)
|
|
42
|
+
@ie_new.goto($htmlRoot + "textfields1.html")
|
|
43
|
+
assert(text_field.exists?)
|
|
44
|
+
assert(button.exists?)
|
|
45
|
+
assert(div.exists?)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Feature tests for Dialog class
|
|
2
|
+
# revision: $Revision: 1156 $
|
|
3
|
+
|
|
4
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
|
|
5
|
+
require 'unittests/setup'
|
|
6
|
+
require 'watir/dialog'
|
|
7
|
+
|
|
8
|
+
class TC_Dialog_Test < Test::Unit::TestCase
|
|
9
|
+
include Watir
|
|
10
|
+
|
|
11
|
+
def setup
|
|
12
|
+
$ie.goto($htmlRoot + 'JavascriptClick.html')
|
|
13
|
+
end
|
|
14
|
+
def teardown
|
|
15
|
+
begin
|
|
16
|
+
sleep 0.4 # XXX
|
|
17
|
+
dialog.button('OK').click
|
|
18
|
+
rescue
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_alert_without_bonus_script
|
|
23
|
+
$ie.button(:id, 'btnAlert').click_no_wait
|
|
24
|
+
sleep 0.4 # FIXME: need to be able to poll for window to exist
|
|
25
|
+
dialog.button("OK").click
|
|
26
|
+
assert_match(/Alert button!/, $ie.text_field(:id, "testResult").value)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def test_button_name_not_found
|
|
30
|
+
$ie.button(:id, 'btnAlert').click_no_wait
|
|
31
|
+
sleep 0.4 # FIXME replace with dialog.exists?
|
|
32
|
+
assert_raises(UnknownObjectException) { dialog.button("Yes").click }
|
|
33
|
+
dialog.button("OK").click
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def xtest_exists
|
|
37
|
+
autoit = WIN32OLE.new('AutoItX3.Control')
|
|
38
|
+
assert(! dialog.exists?) # known bug: finds main window instead of dialog!
|
|
39
|
+
$ie.button(:id, 'btnAlert').click_no_wait
|
|
40
|
+
sleep 0.4 # FIXME: need to add polling
|
|
41
|
+
assert dialog.exists?
|
|
42
|
+
dialog.button('OK').click
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_leaves_dialog_open
|
|
46
|
+
# should be closed in teardown
|
|
47
|
+
$ie.button(:id, 'btnAlert').click_no_wait
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_copy_array_elements
|
|
51
|
+
a = ['a', 'b', 'c']
|
|
52
|
+
copy = Array.new(a)
|
|
53
|
+
c = []
|
|
54
|
+
code = _code_that_copies_readonly_array(a, "c")
|
|
55
|
+
eval code
|
|
56
|
+
assert_equal copy, c
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def test_confirm_ok
|
|
60
|
+
$ie.button(:value, 'confirm').click_no_wait
|
|
61
|
+
assert dialog.exists?
|
|
62
|
+
dialog.button('OK').click
|
|
63
|
+
assert_equal "You pressed the Confirm and OK button!", $ie.text_field(:id, 'testResult').value
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def xtest_confirm_cancel
|
|
67
|
+
$ie.button(:value, 'confirm').click_no_wait
|
|
68
|
+
assert dialog.exists?
|
|
69
|
+
dialog.button('Cancel').click
|
|
70
|
+
assert_equal "You pressed the Confirm and Cancel button!", $ie.text_field(:id, 'testResult').value
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
def test_dialog_close
|
|
74
|
+
dialog.close
|
|
75
|
+
assert !dialog.exists?
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# defect reproduction
|
|
2
|
+
# revision: $Revision: 958 $
|
|
3
|
+
|
|
4
|
+
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
|
|
5
|
+
require 'unittests/setup'
|
|
6
|
+
|
|
7
|
+
class TC_Divs_XPath2 < Test::Unit::TestCase
|
|
8
|
+
def setup
|
|
9
|
+
$ie.goto($htmlRoot + "list_matters.html")
|
|
10
|
+
end
|
|
11
|
+
def test_div_with_text
|
|
12
|
+
# Note: this test fails, probably because of bad html to xml translation.
|
|
13
|
+
# However... the same xpath expression finds the right object in Selenium!
|
|
14
|
+
assert_equal('Add', $ie.div(:xpath, "//div[text()='Add' and @class='ButtonText']").text)
|
|
15
|
+
end
|
|
16
|
+
def test_div_with_contains
|
|
17
|
+
# Note: this test fails, probably because of bad html to xml translation.
|
|
18
|
+
# However... the same xpath expression finds the right object in Selenium!
|
|
19
|
+
assert_equal('Add', $ie.div(:xpath, "//div[contains(.,'Add') and @class='ButtonText']").text)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
end
|
data/unittests/div_test.rb
CHANGED
|
@@ -1,179 +1,179 @@
|
|
|
1
1
|
# feature tests for Divs, Spans and P's
|
|
2
|
-
# revision: $Revision:
|
|
2
|
+
# revision: $Revision: 1086 $
|
|
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_Divs < Test::Unit::TestCase
|
|
8
|
-
|
|
8
|
+
include Watir
|
|
9
|
+
|
|
10
|
+
def setup
|
|
11
|
+
$ie.goto($htmlRoot + "div.html")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_divs
|
|
15
|
+
assert_raises(UnknownObjectException) {$ie.div(:id , "div77").click }
|
|
16
|
+
assert_raises(UnknownObjectException) {$ie.div(:title , "div77").click }
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
assert($ie.text_field(:name, "text1").verify_contains("0") )
|
|
19
|
+
$ie.div(:id , "div3").click
|
|
20
|
+
assert($ie.text_field(:name, "text1").verify_contains("1") )
|
|
21
|
+
$ie.div(:id , "div4").click
|
|
22
|
+
assert($ie.text_field(:name, "text1").verify_contains("0") )
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def test_div_properties
|
|
26
|
+
assert_raises(UnknownObjectException) {$ie.div(:id , "div77").text }
|
|
27
|
+
assert_raises(UnknownObjectException) {$ie.div(:title , "div77").text }
|
|
13
28
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
assert($ie.text_field(:name, "text1").verify_contains("0") )
|
|
19
|
-
$ie.div(:id , "div3").click
|
|
20
|
-
assert($ie.text_field(:name, "text1").verify_contains("1") )
|
|
21
|
-
$ie.div(:id , "div4").click
|
|
22
|
-
assert($ie.text_field(:name, "text1").verify_contains("0") )
|
|
23
|
-
end
|
|
29
|
+
assert_equal("This div has an onClick that increments text1",
|
|
30
|
+
$ie.div(:id , "div3").text.strip )
|
|
31
|
+
assert_equal("This text is in a div with an id of div1 and title of test1",
|
|
32
|
+
$ie.div(:title , "Test1").text.strip )
|
|
24
33
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
assert_equal("This div has an onClick that increments text1",
|
|
30
|
-
$ie.div(:id , "div3").text.strip )
|
|
31
|
-
assert_equal("This text is in a div with an id of div1 and title of test1",
|
|
32
|
-
$ie.div(:title , "Test1").text.strip )
|
|
33
|
-
|
|
34
|
-
assert_raises(UnknownObjectException) {$ie.div(:id , "div77").class_name }
|
|
35
|
-
assert_equal("blueText" , $ie.div(:id , "div2").class_name )
|
|
36
|
-
assert_equal("" , $ie.div(:id , "div1").class_name )
|
|
37
|
-
|
|
38
|
-
assert_raises(UnknownObjectException) {$ie.div(:index , 44).class_name }
|
|
39
|
-
assert_equal("div1" , $ie.div(:index , 1).id )
|
|
40
|
-
assert_equal("" , $ie.div(:index , 1).class_name )
|
|
41
|
-
assert_equal("blueText" , $ie.div(:index , 2).class_name )
|
|
42
|
-
assert_equal("Div" , $ie.div(:index , 2).type)
|
|
43
|
-
assert_equal("" , $ie.div(:index , 2).value)
|
|
44
|
-
assert_equal(false , $ie.div(:index , 2).disabled)
|
|
45
|
-
assert_equal("" , $ie.div(:index , 2).name)
|
|
46
|
-
assert_equal("div2", $ie.div(:index , 2).id)
|
|
47
|
-
end
|
|
34
|
+
assert_raises(UnknownObjectException) {$ie.div(:id , "div77").class_name }
|
|
35
|
+
assert_equal("blueText" , $ie.div(:id , "div2").class_name )
|
|
36
|
+
assert_equal("" , $ie.div(:id , "div1").class_name )
|
|
48
37
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
end
|
|
38
|
+
assert_raises(UnknownObjectException) {$ie.div(:index , 44).class_name }
|
|
39
|
+
assert_equal("div1" , $ie.div(:index , 1).id )
|
|
40
|
+
assert_equal("" , $ie.div(:index , 1).class_name )
|
|
41
|
+
assert_equal("blueText" , $ie.div(:index , 2).class_name )
|
|
42
|
+
assert_equal("" , $ie.div(:index , 2).value)
|
|
43
|
+
assert_equal(false , $ie.div(:index , 2).disabled)
|
|
44
|
+
assert_equal("" , $ie.div(:index , 2).name)
|
|
45
|
+
assert_equal("div2", $ie.div(:index , 2).id)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def test_div_iterator
|
|
49
|
+
assert_equal( 7 , $ie.divs.length)
|
|
50
|
+
assert_equal( "div1" , $ie.divs[1].id )
|
|
63
51
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
assert_false($ie.div(:id, 'buttons1').button(:index,3).exists? )
|
|
72
|
-
|
|
73
|
-
$ie.div(:id, 'buttons1').button(:index,1).click
|
|
74
|
-
|
|
75
|
-
assert_equal( 'button1' , $ie.div(:id , 'text_fields1').text_field(:index,1).value)
|
|
76
|
-
|
|
77
|
-
assert_equal( 3 , $ie.div(:id , 'text_fields1').text_fields.length )
|
|
52
|
+
index =1
|
|
53
|
+
$ie.divs.each do |s|
|
|
54
|
+
# puts "each - div= " + s.to_s
|
|
55
|
+
assert_equal($ie.div(:index, index ).name , s.name )
|
|
56
|
+
assert_equal($ie.div(:index, index ).id , s.id )
|
|
57
|
+
assert_equal($ie.div(:index, index ).class_name , s.class_name )
|
|
58
|
+
index +=1
|
|
78
59
|
end
|
|
60
|
+
assert_equal(index-1, $ie.divs.length) # -1 as we add 1 at the end of the loop
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
def test_objects_in_div
|
|
64
|
+
assert($ie.div(:id, 'buttons1').button(:index,1).exists? )
|
|
65
|
+
assert(!$ie.div(:id, 'buttons1').button(:index,3).exists? )
|
|
66
|
+
assert($ie.div(:id, 'buttons1').button(:name,'b1').exists? )
|
|
79
67
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
assert_raises(UnknownObjectException) {$ie.span(:title , "span77").click }
|
|
84
|
-
|
|
85
|
-
assert($ie.text_field(:name, "text2").verify_contains("0") )
|
|
86
|
-
$ie.span(:id , "span3").click
|
|
87
|
-
assert($ie.text_field(:name, "text2").verify_contains("1") )
|
|
88
|
-
|
|
89
|
-
$ie.span(:id , "span4").click
|
|
90
|
-
assert($ie.text_field(:name, "text2").verify_contains("0") )
|
|
91
|
-
|
|
92
|
-
end
|
|
93
|
-
|
|
94
|
-
def test_span_properties
|
|
95
|
-
assert_raises(UnknownObjectException) {$ie.span(:id , "span77").text }
|
|
96
|
-
assert_raises(UnknownObjectException) {$ie.span(:title , "span77").text }
|
|
97
|
-
|
|
98
|
-
assert_equal("This span has an onClick that increments text2" , $ie.span(:id , "span3").text.strip )
|
|
99
|
-
assert_equal("This text is in a span with an id of span1 and title of test2" , $ie.span(:title , "Test2").text.strip )
|
|
100
|
-
|
|
101
|
-
assert_raises(UnknownObjectException) {$ie.span(:id , "span77").class_name }
|
|
102
|
-
assert_equal("blueText" , $ie.span(:id , "span2").class_name )
|
|
103
|
-
assert_equal("" , $ie.span(:id , "span1").class_name )
|
|
104
|
-
|
|
105
|
-
assert_raises(UnknownObjectException) {$ie.span(:index , 44).class_name }
|
|
106
|
-
assert_equal("span1" , $ie.span(:index , 1).id )
|
|
107
|
-
assert_equal("" , $ie.span(:index , 1).class_name )
|
|
108
|
-
assert_equal("blueText" , $ie.span(:index , 2).class_name )
|
|
109
|
-
assert_equal("Span" , $ie.span(:index , 2).type)
|
|
110
|
-
assert_equal("" , $ie.span(:index , 2).value)
|
|
111
|
-
assert_equal(false , $ie.span(:index , 2).disabled)
|
|
112
|
-
assert_equal("" , $ie.span(:index , 2).name)
|
|
113
|
-
assert_equal("span2", $ie.span(:index , 2).id)
|
|
114
|
-
end
|
|
68
|
+
assert($ie.div(:id, 'buttons2').button(:index,1).exists? )
|
|
69
|
+
assert($ie.div(:id, 'buttons2').button(:index,2).exists? )
|
|
70
|
+
assert(!$ie.div(:id, 'buttons1').button(:index,3).exists? )
|
|
115
71
|
|
|
116
|
-
|
|
117
|
-
assert_equal( 7 , $ie.spans.length)
|
|
118
|
-
assert_equal( "span1" , $ie.spans[1].id )
|
|
119
|
-
|
|
120
|
-
index = 1
|
|
121
|
-
$ie.spans.each do |s|
|
|
122
|
-
# puts "each - span = " + s.to_s
|
|
123
|
-
assert_equal($ie.span(:index, index ).name , s.name )
|
|
124
|
-
assert_equal($ie.span(:index, index ).id , s.id )
|
|
125
|
-
assert_equal($ie.span(:index, index ).class_name , s.class_name )
|
|
126
|
-
index +=1
|
|
127
|
-
end
|
|
128
|
-
assert_equal(index-1, $ie.spans.length) # -1 as we add 1 at the end of the loop
|
|
129
|
-
end
|
|
72
|
+
$ie.div(:id, 'buttons1').button(:index,1).click
|
|
130
73
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
74
|
+
assert_equal( 'button1' , $ie.div(:id , 'text_fields1').text_field(:index,1).value)
|
|
75
|
+
|
|
76
|
+
assert_equal( 3 , $ie.div(:id , 'text_fields1').text_fields.length )
|
|
77
|
+
$ie.div(:id, 'text_fields1').text_field(:name, 'div_text1').set("drink me")
|
|
78
|
+
assert_equal("drink me", $ie.div(:id, 'text_fields1').text_field(:name, 'div_text1').getContents)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
#---- Span Tests ---
|
|
82
|
+
def test_spans
|
|
83
|
+
assert_raises(UnknownObjectException) {$ie.span(:id , "span77").click }
|
|
84
|
+
assert_raises(UnknownObjectException) {$ie.span(:title , "span77").click }
|
|
85
|
+
|
|
86
|
+
assert($ie.text_field(:name, "text2").verify_contains("0") )
|
|
87
|
+
$ie.span(:id , "span3").click
|
|
88
|
+
assert($ie.text_field(:name, "text2").verify_contains("1") )
|
|
146
89
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
90
|
+
$ie.span(:id , "span4").click
|
|
91
|
+
assert($ie.text_field(:name, "text2").verify_contains("0") )
|
|
92
|
+
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def test_span_properties
|
|
96
|
+
assert_raises(UnknownObjectException) {$ie.span(:id , "span77").text }
|
|
97
|
+
assert_raises(UnknownObjectException) {$ie.span(:title , "span77").text }
|
|
98
|
+
|
|
99
|
+
assert_equal("This span has an onClick that increments text2" , $ie.span(:id , "span3").text.strip )
|
|
100
|
+
assert_equal("This text is in a span with an id of span1 and title of test2" , $ie.span(:title , "Test2").text.strip )
|
|
101
|
+
|
|
102
|
+
assert_raises(UnknownObjectException) {$ie.span(:id , "span77").class_name }
|
|
103
|
+
assert_equal("blueText" , $ie.span(:id , "span2").class_name )
|
|
104
|
+
assert_equal("" , $ie.span(:id , "span1").class_name )
|
|
105
|
+
|
|
106
|
+
assert_raises(UnknownObjectException) {$ie.span(:index , 44).class_name }
|
|
107
|
+
assert_equal("span1" , $ie.span(:index , 1).id )
|
|
108
|
+
assert_equal("" , $ie.span(:index , 1).class_name )
|
|
109
|
+
assert_equal("blueText" , $ie.span(:index , 2).class_name )
|
|
110
|
+
assert_equal("" , $ie.span(:index , 2).value)
|
|
111
|
+
assert_equal(false , $ie.span(:index , 2).disabled)
|
|
112
|
+
assert_equal("" , $ie.span(:index , 2).name)
|
|
113
|
+
assert_equal("span2", $ie.span(:index , 2).id)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def test_span_iterator
|
|
117
|
+
assert_equal(7, $ie.spans.length)
|
|
118
|
+
assert_equal("span1", $ie.spans[1].id)
|
|
119
|
+
|
|
120
|
+
index = 1
|
|
121
|
+
$ie.spans.each do |s|
|
|
122
|
+
# puts "each - span = " + s.to_s
|
|
123
|
+
assert_equal($ie.span(:index, index ).name , s.name )
|
|
124
|
+
assert_equal($ie.span(:index, index ).id , s.id )
|
|
125
|
+
assert_equal($ie.span(:index, index ).class_name , s.class_name )
|
|
126
|
+
index += 1
|
|
165
127
|
end
|
|
128
|
+
assert_equal(index - 1, $ie.spans.length) # -1 as we add 1 at the end of the loop
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def test_objects_in_span
|
|
132
|
+
assert($ie.span(:id, 'buttons1').button(:index,1).exists? )
|
|
133
|
+
assert(!$ie.span(:id, 'buttons1').button(:index,3).exists? )
|
|
134
|
+
assert($ie.span(:id, 'buttons1').button(:name,'b1').exists? )
|
|
135
|
+
|
|
136
|
+
assert($ie.span(:id, 'buttons2').button(:index,1).exists? )
|
|
137
|
+
assert($ie.span(:id, 'buttons2').button(:index,2).exists? )
|
|
138
|
+
assert(!$ie.span(:id, 'buttons1').button(:index,3).exists? )
|
|
139
|
+
|
|
140
|
+
$ie.span(:id, 'buttons1').button(:index,1).click
|
|
141
|
+
|
|
142
|
+
assert_equal( 'button1' , $ie.span(:id , 'text_fields1').text_field(:index,1).value)
|
|
143
|
+
|
|
144
|
+
assert_equal( 3 , $ie.span(:id , 'text_fields1').text_fields.length )
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
def test_p
|
|
148
|
+
assert($ie.p(:id, 'number1').exists?)
|
|
149
|
+
assert($ie.p(:index, 3).exists?)
|
|
150
|
+
assert($ie.p(:title, 'test_3').exists?)
|
|
151
|
+
|
|
152
|
+
assert(!$ie.p(:id, 'missing').exists?)
|
|
153
|
+
assert(!$ie.p(:index, 8).exists?)
|
|
154
|
+
assert(!$ie.p(:title, 'test_55').exists?)
|
|
155
|
+
|
|
156
|
+
assert_raises( UnknownObjectException) {$ie.p(:id , 'missing').class_name }
|
|
157
|
+
assert_raises( UnknownObjectException) {$ie.p(:id , 'missing').text }
|
|
158
|
+
assert_raises( UnknownObjectException) {$ie.p(:id , 'missing').title }
|
|
159
|
+
assert_raises( UnknownObjectException) {$ie.p(:id , 'missing').to_s }
|
|
160
|
+
assert_raises( UnknownObjectException) {$ie.p(:id , 'missing').disabled }
|
|
161
|
+
|
|
162
|
+
assert_equal( 'redText' , $ie.p(:index,1).class_name)
|
|
163
|
+
assert_equal( 'P_tag_1' , $ie.p(:index,1).title)
|
|
164
|
+
assert_equal( 'This text is in a p with an id of number2' , $ie.p(:index,2).text)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
def test_p_iterator
|
|
168
|
+
assert_equal( 3, $ie.ps.length)
|
|
169
|
+
assert_equal( 'italicText', $ie.ps[2].class_name)
|
|
170
|
+
assert_equal( 'number3', $ie.ps[3].id)
|
|
166
171
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
count=1
|
|
173
|
-
$ie.ps.each do |p|
|
|
174
|
-
assert_equal('number'+count.to_s , p.id)
|
|
175
|
-
count+=1
|
|
176
|
-
end
|
|
177
|
-
assert_equal( count-1 , $ie.ps.length)
|
|
172
|
+
count=1
|
|
173
|
+
$ie.ps.each do |p|
|
|
174
|
+
assert_equal('number'+count.to_s , p.id)
|
|
175
|
+
count+=1
|
|
178
176
|
end
|
|
177
|
+
assert_equal( count-1 , $ie.ps.length)
|
|
178
|
+
end
|
|
179
179
|
end
|