watir 1.4.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. data/bin/watir-console +1 -0
  2. data/changes.rb +119 -0
  3. data/license.rb +37 -0
  4. data/readme.rb +55 -120
  5. data/unittests/buttons_test.rb +107 -104
  6. data/unittests/buttons_xpath_test.rb +69 -0
  7. data/unittests/checkbox_test.rb +154 -141
  8. data/unittests/checkbox_xpath_test.rb +107 -0
  9. data/unittests/core_tests.rb +6 -2
  10. data/unittests/css_test.rb +50 -50
  11. data/unittests/defer_test.rb +47 -0
  12. data/unittests/dialog_test.rb +78 -0
  13. data/unittests/div2_xpath_test.rb +22 -0
  14. data/unittests/div_test.rb +159 -159
  15. data/unittests/div_xpath_test.rb +96 -0
  16. data/unittests/errorchecker_test.rb +22 -22
  17. data/unittests/filefield_test.rb +30 -23
  18. data/unittests/filefield_xpath_test.rb +35 -0
  19. data/unittests/form_test.rb +250 -229
  20. data/unittests/form_xpath_test.rb +253 -0
  21. data/unittests/frame_test.rb +123 -108
  22. data/unittests/google_form_test.rb +17 -0
  23. data/unittests/html/JavascriptClick.html +39 -0
  24. data/unittests/html/buttons1.html +3 -2
  25. data/unittests/html/checkboxes1.html +32 -14
  26. data/unittests/html/complex_table.html +1 -1
  27. data/unittests/html/depot_store.html +59 -0
  28. data/unittests/html/div.html +3 -21
  29. data/unittests/html/div_xml.html +21 -0
  30. data/unittests/html/fileupload.html +2 -2
  31. data/unittests/html/forms2.html +3 -3
  32. data/unittests/html/forms3.html +2 -2
  33. data/unittests/html/frame_links.html +2 -2
  34. data/unittests/html/google_india.html +119 -0
  35. data/unittests/html/iframeTest.html +2 -2
  36. data/unittests/html/images/map.GIF +0 -0
  37. data/unittests/html/images/map2.gif +0 -0
  38. data/unittests/html/images1.html +17 -2
  39. data/unittests/html/javascriptevents.html +3 -7
  40. data/unittests/html/links1.html +9 -8
  41. data/unittests/html/links_multi.html +14 -0
  42. data/unittests/html/list_matters.html +720 -0
  43. data/unittests/html/lists.html +18 -0
  44. data/unittests/html/map_test.html +31 -0
  45. data/unittests/html/modal_dialog.html +10 -0
  46. data/unittests/html/modal_dialog_launcher.html +12 -0
  47. data/unittests/html/new_browser.html +17 -0
  48. data/unittests/html/pass.html +3 -0
  49. data/unittests/html/popups1.html +1 -1
  50. data/unittests/html/pre.html +28 -0
  51. data/unittests/html/radioButtons1.html +6 -5
  52. data/unittests/html/selectboxes1.html +12 -11
  53. data/unittests/html/simple_table.html +1 -1
  54. data/unittests/html/simple_table_columns.html +1 -1
  55. data/unittests/html/table1.html +1 -1
  56. data/unittests/html/tableCell_using_xpath.html +19 -0
  57. data/unittests/html/textfields1.html +6 -4
  58. data/unittests/html/xpath_nbsp.html +12 -0
  59. data/unittests/ie_exists_test.rb +32 -0
  60. data/unittests/ie_mock.rb +78 -79
  61. data/unittests/ie_test.rb +39 -39
  62. data/unittests/images_test.rb +132 -155
  63. data/unittests/images_xpath_test.rb +91 -0
  64. data/unittests/links_multi_test.rb +36 -0
  65. data/unittests/links_test.rb +158 -152
  66. data/unittests/links_xpath_test.rb +40 -0
  67. data/unittests/lists_test.rb +29 -0
  68. data/unittests/map_test.rb +99 -0
  69. data/unittests/minmax_test.rb +23 -23
  70. data/unittests/navigate_test.rb +43 -51
  71. data/unittests/nbsp_xpath_test.rb +18 -0
  72. data/unittests/other/WindowLogonExample.rb +28 -0
  73. data/unittests/{WindowLogonExtra.rb → other/WindowLogonExtra.rb} +0 -0
  74. data/unittests/{all_tests_concurrent.rb → other/all_tests_concurrent.rb} +23 -23
  75. data/unittests/other/navigate_exception_test.rb +14 -0
  76. data/unittests/other/rexml_unit_test.rb +24 -0
  77. data/unittests/other/testcase_method_order_test.rb +36 -0
  78. data/unittests/other/testcase_verify_test.rb +25 -0
  79. data/unittests/other/wait_until_test.rb +99 -0
  80. data/unittests/pagecontainstext_test.rb +56 -37
  81. data/unittests/parent_child_test.rb +55 -0
  82. data/unittests/popups_test.rb +37 -37
  83. data/unittests/pre_test.rb +52 -0
  84. data/unittests/radios_test.rb +186 -155
  85. data/unittests/radios_xpath_test.rb +101 -0
  86. data/unittests/screen_capture_test.rb +41 -41
  87. data/unittests/selectbox_test.rb +223 -181
  88. data/unittests/selectbox_xpath_test.rb +113 -0
  89. data/unittests/setup.rb +29 -25
  90. data/unittests/speed_settings_test.rb +22 -0
  91. data/unittests/table_cell_using_xpath_test.rb +40 -0
  92. data/unittests/table_test.rb +315 -284
  93. data/unittests/table_xpath_test.rb +114 -0
  94. data/unittests/textarea_test.rb +81 -0
  95. data/unittests/textarea_xpath_test.rb +82 -0
  96. data/unittests/textfields_test.rb +205 -229
  97. data/unittests/textfields_xpath_test.rb +111 -0
  98. data/unittests/window_tests.rb +7 -0
  99. data/unittests/windows/attach_to_existing_window_test.rb +52 -0
  100. data/unittests/windows/attach_to_new_window_test.rb +82 -0
  101. data/unittests/windows/close_window_test.rb +22 -0
  102. data/unittests/windows/frame_links_test.rb +25 -0
  103. data/unittests/windows/ie-each_test.rb +48 -0
  104. data/unittests/windows/iedialog_test.rb +55 -0
  105. data/unittests/windows/js_events_test.rb +57 -0
  106. data/unittests/windows/jscriptExtraAlert.rb +6 -0
  107. data/unittests/windows/jscriptExtraConfirmCancel.rb +7 -0
  108. data/unittests/windows/jscriptExtraConfirmOk.rb +7 -0
  109. data/unittests/{jscriptPushButton.rb → windows/jscriptPushButton.rb} +1 -1
  110. data/unittests/windows/jscript_test.rb +64 -0
  111. data/unittests/windows/modal_dialog_test.rb +127 -0
  112. data/unittests/windows/new.rb +56 -0
  113. data/unittests/windows/open_close_test.rb +22 -0
  114. data/unittests/windows/send_keys_test.rb +34 -0
  115. data/unittests/xpath_tests.rb +10 -0
  116. data/watir.rb +4344 -3565
  117. data/watir/IEDialog/Release/IEDialog.dll +0 -0
  118. data/watir/WindowHelper.rb +13 -11
  119. data/watir/assertions.rb +36 -0
  120. data/watir/camel_case.rb +14 -5
  121. data/watir/close_all.rb +38 -0
  122. data/watir/contrib/enabled_popup.rb +21 -0
  123. data/watir/contrib/ie-new-process.rb +27 -0
  124. data/watir/contrib/page_checker.rb +29 -0
  125. data/watir/contrib/visible.rb +47 -0
  126. data/watir/cookiemanager.rb +4 -4
  127. data/watir/datahandler.rb +107 -0
  128. data/watir/dialog.rb +46 -0
  129. data/watir/elements.rb +65 -0
  130. data/watir/exceptions.rb +18 -36
  131. data/watir/ie-process.rb +40 -0
  132. data/watir/irb-history.rb +31 -0
  133. data/watir/process.rb +20 -0
  134. data/watir/testUnitAddons.rb +3 -42
  135. data/watir/testcase.rb +58 -0
  136. data/watir/utils.rb +20 -0
  137. data/watir/waiter.rb +88 -0
  138. data/watir/watir_simple.rb +4 -4
  139. data/watir/win32ole.rb +8 -0
  140. data/watir/win32ole/win32ole.so +0 -0
  141. data/watir/winClicker.rb +374 -400
  142. metadata +209 -128
  143. data/unittests/WindowLogonExample.rb +0 -30
  144. data/unittests/attachToExistingWindow_test.rb +0 -40
  145. data/unittests/js_events_test.rb +0 -77
  146. data/unittests/jscriptExtraAlert.rb +0 -6
  147. data/unittests/jscriptExtraConfirmCancel.rb +0 -7
  148. data/unittests/jscriptExtraConfirmOk.rb +0 -7
  149. data/unittests/jscript_test.rb +0 -57
  150. data/unittests/send_keys_test.rb +0 -29
  151. data/unittests/textAreafields_test.rb +0 -81
@@ -0,0 +1,96 @@
1
+ # feature tests for Divs, Spans and P's
2
+ # revision: $Revision: 962 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_Divs_XPath < Test::Unit::TestCase
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(:xpath , "//div[@id='div77']/").click }
16
+ assert_raises(UnknownObjectException) {$ie.div(:xpath , "//div[@title='div77']/").click }
17
+
18
+ assert($ie.text_field(:xpath, "//input[@name='text1']/").verify_contains("0") )
19
+ $ie.div(:xpath , "//div[@id='div3']/").click
20
+ assert($ie.text_field(:xpath, "//input[@name='text1']/").verify_contains("1") )
21
+ $ie.div(:xpath , "//div[@id='div4']/").click
22
+ assert($ie.text_field(:xpath, "//input[@name='text1']/").verify_contains("0") )
23
+ end
24
+
25
+ def test_div_properties
26
+ assert_raises(UnknownObjectException) {$ie.div(:xpath , "//div[@id='div77']/").text }
27
+ assert_raises(UnknownObjectException) {$ie.div(:xpath , "//div[@title='div77']/").text }
28
+
29
+ assert_equal("This div has an onClick that increments text1",
30
+ $ie.div(:xpath , "//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(:xpath , "//div[@title='Test1']/").text.strip )
33
+
34
+ assert_raises(UnknownObjectException) {$ie.div(:xpath , "//div[@id='div77']/").class_name }
35
+ assert_equal("blueText" , $ie.div(:xpath , "//div[@id='div2']/").class_name )
36
+ assert_equal("" , $ie.div(:xpath , "//div[@id='div1']/").class_name )
37
+ end
38
+
39
+ def test_objects_in_div
40
+ assert($ie.div(:xpath , "//div[@id='buttons1']/").button(:index,1).exists? )
41
+ assert(!$ie.div(:xpath , "//div[@id='buttons1']/").button(:index,3).exists? )
42
+ assert($ie.div(:xpath , "//div[@id='buttons1']/").button(:name,'b1').exists? )
43
+
44
+ assert($ie.div(:xpath , "//div[@id='buttons2']/").button(:index,1).exists? )
45
+ assert($ie.div(:xpath , "//div[@id='buttons2']/").button(:index,2).exists? )
46
+ assert(!$ie.div(:xpath , "//div[@id='buttons1']/").button(:index,3).exists? )
47
+
48
+ $ie.div(:xpath , "//div[@id='buttons1']/").button(:index,1).click
49
+
50
+ assert_equal( 'button1' , $ie.div(:xpath , "//div[@id='text_fields1']/").text_field(:index,1).value)
51
+
52
+ assert_equal( 3 , $ie.div(:xpath , "//div[@id='text_fields1']/").text_fields.length )
53
+ end
54
+
55
+ def test_span_properties
56
+ assert_raises(UnknownObjectException) {$ie.span(:xpath , "//span[@id='span77']/").text }
57
+ assert_raises(UnknownObjectException) {$ie.span(:xpath , "//span[@title='span77']/").text }
58
+
59
+ assert_equal("This span has an onClick that increments text2" , $ie.span(:xpath , "//span[@id='span3']/").text.strip )
60
+ assert_equal("This text is in a span with an id of span1 and title of test2" , $ie.span(:xpath , "//span[@title='Test2']/").text.strip )
61
+
62
+ assert_raises(UnknownObjectException) {$ie.span(:xpath , "//span[@id='span77']/").class_name }
63
+ assert_equal("blueText" , $ie.span(:xpath , "//span[@id='span2']/").class_name )
64
+ assert_equal("" , $ie.span(:xpath , "//span[@id='span1']/").class_name )
65
+ end
66
+
67
+ def test_objects_in_span
68
+ assert($ie.span(:xpath , "//span[@id='buttons1']/").button(:index,1).exists? )
69
+ assert(!$ie.span(:xpath , "//span[@id='buttons1']/").button(:index,3).exists? )
70
+ assert($ie.span(:xpath , "//span[@id='buttons1']/").button(:name,'b1').exists? )
71
+
72
+ assert($ie.span(:xpath , "//span[@id='buttons2']/").button(:index,1).exists? )
73
+ assert($ie.span(:xpath , "//span[@id='buttons2']/").button(:index,2).exists? )
74
+ assert(!$ie.span(:xpath , "//span[@id='buttons1']/").button(:index,3).exists? )
75
+
76
+ $ie.span(:xpath , "//span[@id='buttons1']/").button(:index,1).click
77
+
78
+ assert_equal( 'button1' , $ie.span(:xpath , "//span[@id='text_fields1']/").text_field(:index,1).value)
79
+
80
+ assert_equal( 3 , $ie.span(:xpath , "//span[@id='text_fields1']/").text_fields.length )
81
+ end
82
+
83
+ def test_p
84
+ assert($ie.p(:xpath , "//p[@id='number1']/").exists?)
85
+ assert($ie.p(:xpath , "//p[@title='test_3']/").exists?)
86
+
87
+ assert(!$ie.p(:xpath , "//p[@id='missing']/").exists?)
88
+ assert(!$ie.p(:xpath , "//p[@title='test_55']/").exists?)
89
+
90
+ assert_raises( UnknownObjectException) {$ie.p(:xpath , "//p[@id='missing']/").class_name }
91
+ assert_raises( UnknownObjectException) {$ie.p(:xpath , "//p[@id='missing']/").text }
92
+ assert_raises( UnknownObjectException) {$ie.p(:xpath , "//p[@id='missing']/").title }
93
+ assert_raises( UnknownObjectException) {$ie.p(:xpath , "//p[@id='missing']/").to_s }
94
+ assert_raises( UnknownObjectException) {$ie.p(:xpath , "//p[@id='missing']/").disabled }
95
+ end
96
+ end
@@ -1,29 +1,29 @@
1
1
  # feature tests for Goto
2
- # revision: $Revision: 1.2 $
2
+ # revision: $Revision: 958 $
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_error_checker< Test::Unit::TestCase
8
- include Watir
9
-
10
- def goto_page(page)
11
- $ie.goto($htmlRoot + page)
12
- end
13
-
14
- def test_simple_checker
15
- button_checker = Proc.new{
16
- |ie| raise RuntimeError, "text 'buttons' was missing" if !ie.pageContainsText(/buttons/)
17
- }
18
-
19
- $ie.add_checker(button_checker )
20
- assert_raises( RuntimeError ) { goto_page('forms3.html') }
21
- assert_nothing_raised { goto_page('buttons1.html') }
22
-
23
- $ie.disable_checker( button_checker )
24
- assert_nothing_raised { goto_page('forms3.html') }
25
-
26
- end
27
-
28
-
8
+ include Watir
9
+
10
+ def goto_page(page)
11
+ $ie.goto($htmlRoot + page)
12
+ end
13
+
14
+ def test_simple_checker
15
+ button_checker = Proc.new{
16
+ |ie| raise RuntimeError, "text 'buttons' was missing" if !ie.pageContainsText(/buttons/)
17
+ }
18
+
19
+ $ie.add_checker(button_checker )
20
+ assert_raises( RuntimeError ) { goto_page('forms3.html') }
21
+ assert_nothing_raised { goto_page('buttons1.html') }
22
+
23
+ $ie.disable_checker( button_checker )
24
+ assert_nothing_raised { goto_page('forms3.html') }
25
+
26
+ end
27
+
28
+
29
29
  end
@@ -1,35 +1,42 @@
1
- # feature tests for TextArea Fields
2
- # revision: $Revision: 1.3 $
1
+ # feature tests for file Fields
2
+ # revision: $Revision: 1138 $
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_FileField < Test::Unit::TestCase
8
8
  include Watir
9
-
10
- def gotoPage()
11
- $ie.goto($htmlRoot + "fileupload.html")
9
+
10
+ def goto_page
11
+ $ie.goto($htmlRoot + "fileupload.html")
12
12
  end
13
+
14
+ def test_file_field_Exists
15
+ goto_page
13
16
 
14
- def test_fileField_Exists
15
- gotoPage()
16
- #test for existance of 4 file area
17
- assert($ie.fileField(:name,"file1").exists?)
18
- assert($ie.fileField(:id,"file2").exists?)
19
- #test for missing
20
- assert_false($ie.fileField(:name, "missing").exists?)
21
- assert_false($ie.fileField(:name,"totallybogus").exists?)
22
- #pop one open and put something in it.
23
- $ie.fileField(:name,"file1").set($htmlRoot + "fileupload.html")
24
- #click the upload button
25
- $ie.button(:name,"upload").click
17
+ # test for existance of 4 file area
18
+ assert($ie.file_field(:name,"file1").exists?)
19
+ assert($ie.file_field(:id,"file2").exists?)
26
20
 
27
- assert($ie.contains_text("PASS"))
28
- end
21
+ # test for missing
22
+ assert(!$ie.file_field(:name, "missing").exists?)
23
+ assert(!$ie.file_field(:name,"totallybogus").exists?)
29
24
 
30
- def test_iterator
31
- gotoPage()
32
- assert_equal(6, $ie.file_fields.length)
33
- end
25
+ # pop one open and put something in it.
26
+ file = $htmlRoot + "fileupload.html"
27
+ file.gsub! 'file://', ''
28
+ file.gsub! '/', '\\'
29
+ $ie.file_field(:name,"file1").set(file)
30
+ assert_equal file, $ie.file_field(:name,"file1").value
34
31
 
32
+ # click the upload button
33
+ $ie.button(:name,"upload").click
34
+ assert($ie.text.include?("PASS"))
35
+ end
36
+
37
+ def test_iterator
38
+ goto_page
39
+ assert_equal(6, $ie.file_fields.length)
40
+ end
41
+
35
42
  end
@@ -0,0 +1,35 @@
1
+ # feature tests for TextArea Fields
2
+ # revision: $Revision: 963 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_FileField_XPath < Test::Unit::TestCase
8
+ include Watir
9
+
10
+ def goto_page
11
+ $ie.goto($htmlRoot + "fileupload.html")
12
+ end
13
+
14
+ def test_file_field_Exists
15
+ goto_page
16
+ #test for existance of 4 file area
17
+ assert($ie.file_field(:xpath, "//input[@name='file1']/").exists?)
18
+ assert($ie.file_field(:xpath, "//input[@id='file2']/").exists?)
19
+ #test for missing
20
+ assert(!$ie.file_field(:xpath, "//input[@name='missing']/").exists?)
21
+ assert(!$ie.file_field(:xpath, "//input[@name='totallybogus']/").exists?)
22
+ #pop one open and put something in it.
23
+ $ie.file_field(:xpath, "//input[@name='file1']/").set($htmlRoot + "fileupload.html")
24
+ #click the upload button
25
+ $ie.button(:xpath, "//input[@name='upload']/").click
26
+
27
+ assert($ie.text.include?("PASS"))
28
+ end
29
+
30
+ def test_iterator
31
+ goto_page
32
+ assert_equal(6, $ie.file_fields.length)
33
+ end
34
+
35
+ end
@@ -1,51 +1,66 @@
1
1
  # feature tests for Forms
2
- # revision: $Revision: 1.29 $
2
+ # revision: $Revision: 1079 $
3
3
 
4
4
  $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
5
  require 'unittests/setup'
6
6
 
7
- class TC_Forms2 < Test::Unit::TestCase
8
- def setup()
9
- $ie.goto($htmlRoot + "forms2.html")
10
- end
7
+ class TC_Forms2 < Test::Unit::TestCase # Note: there is no TC_Forms1
8
+ def setup
9
+ $ie.goto($htmlRoot + "forms2.html")
10
+ end
11
+
12
+ def test_Form_Exists
13
+ assert($ie.form(:name, "test2").exists?)
14
+ assert(!$ie.form(:name, "missing").exists?)
11
15
 
12
- def test_Form_Exists
13
- assert($ie.form(:name, "test2").exists?)
14
- assert_false($ie.form(:name, "missing").exists?)
15
-
16
- assert($ie.form("test2").exists?)
17
- assert_false($ie.form( "missing").exists?)
18
-
19
- assert($ie.form(:index, 1).exists?)
20
- assert_false($ie.form(:index, 88).exists?)
21
-
22
- assert($ie.form(:method, "get").exists?)
23
- assert_false($ie.form(:method, "missing").exists?)
24
-
25
- assert($ie.form(:action, "pass.html").exists?)
26
- assert_false($ie.form(:action, "missing").exists?)
27
- end
16
+ assert($ie.form("test2").exists?)
17
+ assert(!$ie.form( "missing").exists?)
18
+
19
+ assert($ie.form(:index, 1).exists?)
20
+ assert(!$ie.form(:index, 88).exists?)
21
+
22
+ assert($ie.form(:method, "get").exists?)
23
+ assert(!$ie.form(:method, "missing").exists?)
28
24
 
29
- def test_ButtonInForm
30
- assert($ie.form(:name ,"test2").button(:caption , "Submit").exists?)
31
- end
25
+ assert($ie.form(:id, 'f2').exists?)
26
+ assert(!$ie.form(:id, 'missing').exists?)
27
+
28
+ assert($ie.form(:action, "pass.html").exists?)
29
+ assert(!$ie.form(:action, "missing").exists?)
30
+ end
31
+
32
+ def test_ButtonInForm
33
+ assert($ie.form(:name, "test2").button(:caption , "Submit").exists?)
34
+ end
35
+
36
+ # The following tests from bug 2261
37
+ def test_form_html
38
+ assert_equal("\r\n<FORM id=f2 name=test2 action=pass2.html method=get><BR><INPUT type=submit value=Submit> </FORM>",
39
+ $ie.form(:name, 'test2').html)
40
+ end
41
+ def test_form_flash
42
+ assert_nothing_raised{ $ie.form(:name, 'test2').flash }
43
+ end
44
+ def test_form_sub_element
45
+ assert_equal('Click Me', $ie.form(:index, 1).button(:name, 'b1').value)
46
+ end
32
47
  end
33
48
 
34
49
  require 'unittests/iostring'
35
50
  class TC_Form_Display < Test::Unit::TestCase
36
- include MockStdoutTestCase
37
- def test_showforms
38
- $ie.goto($htmlRoot + "forms2.html")
39
- $stdout = @mockout
40
- $ie.showForms
41
- assert_equal(<<END_OF_MESSAGE, @mockout)
51
+ include MockStdoutTestCase
52
+ def test_showforms
53
+ $ie.goto($htmlRoot + "forms2.html")
54
+ $stdout = @mockout
55
+ $ie.showForms
56
+ assert_equal(<<END_OF_MESSAGE, @mockout)
42
57
  There are 4 forms
43
58
  Form name:
44
59
  id:
45
60
  method: get
46
61
  action: pass.html
47
62
  Form name: test2
48
- id:
63
+ id: f2
49
64
  method: get
50
65
  action: pass2.html
51
66
  Form name: test3
@@ -57,223 +72,229 @@ Form name: test2
57
72
  method: get
58
73
  action: pass2.html
59
74
  END_OF_MESSAGE
60
- end
75
+ end
61
76
  end
62
77
 
63
78
  class TC_Forms3 < Test::Unit::TestCase
64
- def setup()
65
- $ie.goto($htmlRoot + "forms3.html")
66
- end
79
+ def setup
80
+ $ie.goto($htmlRoot + "forms3.html")
81
+ end
82
+
83
+ # The following tests from bug 2261
84
+ def test_p_in_form
85
+ $ie.form(:name, 'buttonsubmit').p(:index, 1).text
86
+ end
87
+
88
+ def test_Form_Exists
89
+ assert($ie.form(:name, "test2").exists?)
90
+ assert(!$ie.form(:name, "missing").exists?)
67
91
 
68
- def test_Form_Exists
69
- assert($ie.form(:name, "test2").exists?)
70
- assert_false($ie.form(:name, "missing").exists?)
71
-
72
- assert($ie.form("test2").exists?)
73
- assert_false($ie.form( "missing").exists?)
74
-
75
- assert($ie.form(:index, 1).exists?)
76
- assert_false($ie.form(:index, 88).exists?)
77
-
78
- assert($ie.form(:method, "get").exists?)
79
- assert_false($ie.form(:method, "missing").exists?)
80
-
81
- assert($ie.form(:action, "pass.html").exists?)
82
- assert_false($ie.form(:action, "missing").exists?)
83
- end
84
-
85
- def test_getObject_when_non_watir_object_before_it
86
- # test for bug reported by Scott Pack, http://rubyforge.org/pipermail/wtr-general/2005-June/002223.html
87
- assert_equal("check1" , $ie.checkbox(:index,1).name )
88
- end
92
+ assert($ie.form("test2").exists?)
93
+ assert(!$ie.form( "missing").exists?)
89
94
 
90
- def test_showforms # add verification of output!
91
- $ie.showForms
92
- end
93
-
94
- def test_reset
95
-
96
- $ie.text_field(:id, "t1").set("Hello, reset test!")
97
- assert_equal($ie.text_field(:id, 't1').getContents, 'Hello, reset test!')
98
-
99
- $ie.button(:caption, "Reset").click
100
- assert_equal("" , $ie.text_field(:id, 't1').getContents )
101
-
102
- # also verify it works under a form
103
- $ie.text_field(:id, "t1").set("reset test - using a form")
104
- assert_equal($ie.text_field(:id, 't1').getContents, 'reset test - using a form')
105
-
106
- $ie.form(:index,2).button(:index,2).click
107
- assert_equal("" , $ie.text_field(:id, 't1').getContents )
108
-
109
- # also verify it works under a form, this time using the :id attribute
110
- $ie.text_field(:id, "t1").set("reset test - using a form")
111
- assert_equal($ie.text_field(:id, 't1').getContents, 'reset test - using a form')
112
-
113
- $ie.form(:index,2).button(:id,'reset_button').click
114
- assert_equal("" , $ie.text_field(:id, 't1').getContents )
95
+ assert($ie.form(:index, 1).exists?)
96
+ assert(!$ie.form(:index, 88).exists?)
97
+
98
+ assert($ie.form(:method, "get").exists?)
99
+ assert(!$ie.form(:method, "missing").exists?)
100
+
101
+ assert($ie.form(:action, "pass.html").exists?)
102
+ assert(!$ie.form(:action, "missing").exists?)
103
+ end
104
+
105
+ def test_index_other_element_before_it
106
+ # test for bug reported by Scott Pack, http://rubyforge.org/pipermail/wtr-general/2005-June/002223.html
107
+ assert_equal("check1" , $ie.checkbox(:index,1).name )
108
+ end
109
+
110
+ def test_reset
111
+ $ie.text_field(:id, "t1").set("Hello, reset test!")
112
+ assert_equal($ie.text_field(:id, 't1').getContents, 'Hello, reset test!')
113
+
114
+ $ie.button(:caption, "Reset").click
115
+ assert_equal("" , $ie.text_field(:id, 't1').getContents )
116
+
117
+ # also verify it works under a form
118
+ $ie.text_field(:id, "t1").set("reset test - using a form")
119
+ assert_equal($ie.text_field(:id, 't1').getContents, 'reset test - using a form')
120
+
121
+ $ie.form(:index,2).button(:index,2).click
122
+ assert_equal("" , $ie.text_field(:id, 't1').getContents )
123
+
124
+ # also verify it works under a form, this time using the :id attribute
125
+ $ie.text_field(:id, "t1").set("reset test - using a form")
126
+ assert_equal($ie.text_field(:id, 't1').getContents, 'reset test - using a form')
127
+
128
+ $ie.form(:index,2).button(:id,'reset_button').click
129
+ assert_equal("" , $ie.text_field(:id, 't1').getContents )
130
+ end
131
+
132
+ def test_flash1
133
+ $ie.form(:name ,"test2").button(:caption , "Submit").flash
134
+ end
135
+
136
+ def test_objects_with_same_name
137
+ assert_equal('textfield' ,$ie.text_field( :name , 'g1').value )
138
+ assert_equal('button' ,$ie.button( :name , 'g1').value )
139
+ assert_equal('1' ,$ie.checkbox( :name , 'g1').value )
140
+ assert_equal('2' ,$ie.radio( :name , 'g1').value )
141
+
142
+ assert_equal('textfield' ,$ie.text_field( :name , /g1/).value )
143
+ assert_equal('button' ,$ie.button( :name , /g1/).value )
144
+ assert_equal('1' ,$ie.checkbox( :name , /g1/).value )
145
+ assert_equal('2' ,$ie.radio( :name , /g1/).value )
146
+
147
+ assert_equal('textfield_id' ,$ie.text_field( :id , 'g1').value )
148
+ assert_equal('button_id' ,$ie.button( :id , 'g1').value )
149
+ assert_equal('1_id' ,$ie.checkbox( :id , 'g1').value )
150
+ assert_equal('2_id' ,$ie.radio( :id , 'g1').value )
115
151
 
116
- end
152
+ assert_equal('textfield_id' ,$ie.text_field( :id , /g1/).value )
153
+ assert_equal('button_id' ,$ie.button( :id , /g1/).value )
154
+ assert_equal('1_id' ,$ie.checkbox( :id , /g1/).value )
155
+ assert_equal('2_id' ,$ie.radio( :id , /g1/).value )
156
+ end
157
+
158
+ def test_flash2
159
+ $ie.button(:value, 'Click Me').flash
160
+ assert_raises( Watir::UnknownObjectException ) { $ie.text_field( :name , 'g177').flash }
161
+ end
162
+
163
+ def test_submitWithImage
164
+ assert( $ie.button(:alt , "submit").exists? )
165
+ assert( $ie.button(:alt , /sub/).exists? )
166
+
167
+ assert(! $ie.button(:alt , "missing").exists? )
168
+ assert(! $ie.button(:alt , /missing/).exists? )
169
+
170
+ #assert( $ie.button(:src , "file:///#{$myDir}/html/images/button.jpg").exists? ) # this doesnt work for everybody
171
+ assert( $ie.button(:src , /button/).exists? )
172
+
173
+ assert(! $ie.button(:src , "missing").exists? )
174
+ assert(! $ie.button(:src , /missing/).exists? )
175
+ assert_nothing_raised("raised an exception when it shouldnt have") { $ie.button(:src , /button/).click }
176
+
177
+ assert( $ie.text.include?("PASS") )
178
+ end
179
+ end
117
180
 
181
+ class TC_Forms3_Display < Test::Unit::TestCase
182
+ include MockStdoutTestCase # BUG in test: output not verified!
183
+ def test_show_stuff
184
+ $ie.goto($htmlRoot + "forms3.html")
185
+ $stdout = @mockout
186
+ $ie.showAllObjects
187
+ puts $ie.getText
188
+ puts $ie.getHTML
189
+ end
190
+ end
118
191
 
192
+ class TC_Forms4 < Test::Unit::TestCase
193
+ def setup
194
+ $ie.goto($htmlRoot + "forms4.html")
195
+ end
196
+
197
+ def test_find_text_field_ignoring_form
198
+ assert_equal($ie.text_field(:name, 'name').getContents, 'apple') # should it raise a not-unique error instead?
199
+ end
200
+
201
+ def test_correct_form_field_is_found_using_form_name
202
+ assert_equal($ie.form(:name, 'apple_form').text_field(:name, 'name').getContents, 'apple')
203
+ assert_equal($ie.form(:name, 'banana_form').text_field(:name, 'name').getContents, 'banana')
204
+ end
205
+
206
+ def test_correct_form_field_is_found_using_form_index
207
+ assert_equal($ie.form(:index, 1).text_field(:name, 'name').getContents, 'apple')
208
+ assert_equal($ie.form(:index, 2).text_field(:name, 'name').getContents, 'banana')
209
+ end
210
+
211
+ def test_using_text_on_form
212
+ $ie.form(:name, 'apple_form').text_field(:name, 'name').set('strudel')
213
+ assert_equal($ie.form(:index, 1).text_field(:name, 'name').getContents, 'strudel')
214
+ end
215
+
216
+ def test_submit
217
+ $ie.form(:name, 'apple_form').submit
218
+ assert( $ie.text.include?("PASS") )
219
+ end
220
+ end
119
221
 
120
- def test_flash1
121
- $ie.form(:name ,"test2").button(:caption , "Submit").flash
122
- end
123
-
124
- def test_objects_with_same_name
125
- assert_equal('textfield' ,$ie.text_field( :name , 'g1').value )
126
- assert_equal('button' ,$ie.button( :name , 'g1').value )
127
- assert_equal('1' ,$ie.checkbox( :name , 'g1').value )
128
- assert_equal('2' ,$ie.radio( :name , 'g1').value )
129
-
130
- assert_equal('textfield_id' ,$ie.text_field( :id , 'g1').value )
131
- assert_equal('button_id' ,$ie.button( :id , 'g1').value )
132
- assert_equal('1_id' ,$ie.checkbox( :id , 'g1').value )
133
- assert_equal('2_id' ,$ie.radio( :id , 'g1').value )
134
- end
222
+ class TC_Hidden_Fields < Test::Unit::TestCase
223
+ def setup
224
+ $ie.goto($htmlRoot + "forms3.html")
225
+ end
226
+
227
+ def test_hidden
135
228
 
136
- def test_flash2
137
- $ie.button(:value, 'Click Me').flash
138
- assert_raises( Watir::UnknownObjectException ) { $ie.text_field( :name , 'g177').flash }
139
- end
229
+ # test using index
230
+ assert( $ie.hidden(:index,1).exists? )
231
+ assert( $ie.hidden(:index,2).exists? )
232
+ assert(! $ie.hidden(:index,3).exists? )
140
233
 
141
- def test_showElements # add verification!
142
- $ie.showAllObjects
143
- end
234
+ $ie.hidden(:index,1).value = 44
235
+ $ie.hidden(:index,2).value = 55
144
236
 
145
- def test_showText
146
- puts $ie.getText
147
- end
237
+ $ie.button(:value , "Show Hidden").click
148
238
 
149
- def test_showHTML
150
- puts $ie.getHTML
151
- end
239
+ assert_equal("44" , $ie.text_field(:name , "vis1").value )
240
+ assert_equal("55" , $ie.text_field(:name , "vis2").value )
152
241
 
153
- def test_submitWithImage
154
- assert( $ie.button(:alt , "submit").exists? )
155
- assert( $ie.button(:alt , /sub/).exists? )
156
-
157
- assert_false( $ie.button(:alt , "missing").exists? )
158
- assert_false( $ie.button(:alt , /missing/).exists? )
159
-
160
- #assert( $ie.button(:src , "file:///#{$myDir}/html/images/button.jpg").exists? ) # this doesnt work for everybody
161
- assert( $ie.button(:src , /button/).exists? )
162
-
163
- assert_false( $ie.button(:src , "missing").exists? )
164
- assert_false( $ie.button(:src , /missing/).exists? )
165
- assert_nothing_raised("raised an exception when it shouldnt have") { $ie.button(:src , /button/).click }
166
-
167
- assert( $ie.contains_text("PASS") )
168
- end
169
- end
170
-
171
- class TC_Forms4 < Test::Unit::TestCase
172
- def setup()
173
- $ie.goto($htmlRoot + "forms4.html")
174
- end
242
+ # test using name and ID
243
+ assert( $ie.hidden(:name ,"hid1").exists? )
244
+ assert( $ie.hidden(:id,"hidden_1").exists? )
245
+ assert(! $ie.hidden(:name,"hidden_44").exists? )
246
+ assert(! $ie.hidden(:id,"hidden_55").exists? )
175
247
 
176
- def test_find_text_field_ignoring_form
177
- assert_equal($ie.text_field(:name, 'name').getContents, 'apple') # should it raise a not-unique error instead?
178
- end
248
+ $ie.hidden(:name ,"hid1").value = 444
249
+ $ie.hidden(:id,"hidden_1").value = 555
179
250
 
180
- def test_correct_form_field_is_found_using_form_name
181
- assert_equal($ie.form(:name, 'apple_form').text_field(:name, 'name').getContents, 'apple')
182
- assert_equal($ie.form(:name, 'banana_form').text_field(:name, 'name').getContents, 'banana')
183
- end
251
+ $ie.button(:value , "Show Hidden").click
184
252
 
185
- def test_correct_form_field_is_found_using_form_index
186
- assert_equal($ie.form(:index, 1).text_field(:name, 'name').getContents, 'apple')
187
- assert_equal($ie.form(:index, 2).text_field(:name, 'name').getContents, 'banana')
188
- end
253
+ assert_equal("444" , $ie.text_field(:name , "vis1").value )
254
+ assert_equal("555" , $ie.text_field(:name ,"vis2").value )
189
255
 
190
- def test_using_text_on_form
191
- $ie.form(:name, 'apple_form').text_field(:name, 'name').set('strudel')
192
- assert_equal($ie.form(:index, 1).text_field(:name, 'name').getContents, 'strudel')
193
- end
256
+ # test the over-ridden append method
257
+ $ie.hidden(:name ,"hid1").append("a")
258
+ $ie.button(:value , "Show Hidden").click
259
+ assert_equal("444a" , $ie.text_field(:name , "vis1").value )
260
+ assert_equal("555" , $ie.text_field(:name ,"vis2").value )
194
261
 
195
- def test_submit
196
- $ie.form(:name, 'apple_form').submit
197
- assert( $ie.contains_text("PASS") )
198
- end
199
- end
200
-
201
- class TC_Hidden_Fields < Test::Unit::TestCase
202
- def setup
203
- $ie.goto($htmlRoot + "forms3.html")
204
- end
262
+ # test the over-ridden clear method
263
+ $ie.hidden(:name ,"hid1").clear
264
+ $ie.button(:value , "Show Hidden").click
265
+ assert_equal("" , $ie.text_field(:name , "vis1").value )
266
+ assert_equal("555" , $ie.text_field(:name ,"vis2").value )
267
+
268
+ # test using a form
269
+ assert( $ie.form(:name , "has_a_hidden").hidden(:name ,"hid1").exists? )
270
+ assert( $ie.form(:name , "has_a_hidden").hidden(:id,"hidden_1").exists? )
271
+ assert(! $ie.form(:name , "has_a_hidden").hidden(:name,"hidden_44").exists? )
272
+ assert(! $ie.form(:name , "has_a_hidden").hidden(:id,"hidden_55").exists? )
273
+
274
+ $ie.form(:name , "has_a_hidden").hidden(:name ,"hid1").value = 222
275
+ $ie.form(:name , "has_a_hidden").hidden(:id,"hidden_1").value = 333
205
276
 
206
- def test_hidden
207
-
208
- # test using index
209
- assert( $ie.hidden(:index,1).exists? )
210
- assert( $ie.hidden(:index,2).exists? )
211
- assert_false( $ie.hidden(:index,3).exists? )
212
-
213
- $ie.hidden(:index,1).value = 44
214
- $ie.hidden(:index,2).value = 55
215
-
216
- $ie.button(:value , "Show Hidden").click
217
-
218
- assert_equal("44" , $ie.text_field(:name , "vis1").value )
219
- assert_equal("55" , $ie.text_field(:name , "vis2").value )
220
-
221
- # test using name and ID
222
- assert( $ie.hidden(:name ,"hid1").exists? )
223
- assert( $ie.hidden(:id,"hidden_1").exists? )
224
- assert_false( $ie.hidden(:name,"hidden_44").exists? )
225
- assert_false( $ie.hidden(:id,"hidden_55").exists? )
226
-
227
- $ie.hidden(:name ,"hid1").value = 444
228
- $ie.hidden(:id,"hidden_1").value = 555
229
-
230
- $ie.button(:value , "Show Hidden").click
231
-
232
- assert_equal("444" , $ie.text_field(:name , "vis1").value )
233
- assert_equal("555" , $ie.text_field(:name ,"vis2").value )
234
-
235
- # test the over-ridden append method
236
- $ie.hidden(:name ,"hid1").append("a")
237
- $ie.button(:value , "Show Hidden").click
238
- assert_equal("444a" , $ie.text_field(:name , "vis1").value )
239
- assert_equal("555" , $ie.text_field(:name ,"vis2").value )
240
-
241
- # test the over-ridden clear method
242
- $ie.hidden(:name ,"hid1").clear
243
- $ie.button(:value , "Show Hidden").click
244
- assert_equal("" , $ie.text_field(:name , "vis1").value )
245
- assert_equal("555" , $ie.text_field(:name ,"vis2").value )
246
-
247
- # test using a form
248
- assert( $ie.form(:name , "has_a_hidden").hidden(:name ,"hid1").exists? )
249
- assert( $ie.form(:name , "has_a_hidden").hidden(:id,"hidden_1").exists? )
250
- assert_false( $ie.form(:name , "has_a_hidden").hidden(:name,"hidden_44").exists? )
251
- assert_false( $ie.form(:name , "has_a_hidden").hidden(:id,"hidden_55").exists? )
252
-
253
- $ie.form(:name , "has_a_hidden").hidden(:name ,"hid1").value = 222
254
- $ie.form(:name , "has_a_hidden").hidden(:id,"hidden_1").value = 333
255
-
256
- $ie.button(:value , "Show Hidden").click
257
-
258
- assert_equal("222" , $ie.text_field(:name , "vis1").value )
259
- assert_equal("333" , $ie.text_field(:name ,"vis2").value )
260
-
261
- # iterators
262
- assert_equal(2, $ie.hiddens.length)
263
- count =1
264
- $ie.hiddens.each do |h|
265
- case count
266
- when 1
267
- assert_equal( "", h.id)
268
- assert_equal( "hid1", h.name)
269
- when 2
270
- assert_equal( "", h.name)
271
- assert_equal( "hidden_1", h.id)
272
- end
273
- count+=1
274
- end
275
-
276
- assert_equal("hid1" , $ie.hiddens[1].name )
277
- assert_equal("hidden_1" , $ie.hiddens[2].id )
277
+ $ie.button(:value , "Show Hidden").click
278
+
279
+ assert_equal("222" , $ie.text_field(:name , "vis1").value )
280
+ assert_equal("333" , $ie.text_field(:name ,"vis2").value )
281
+
282
+ # iterators
283
+ assert_equal(2, $ie.hiddens.length)
284
+ count =1
285
+ $ie.hiddens.each do |h|
286
+ case count
287
+ when 1
288
+ assert_equal( "", h.id)
289
+ assert_equal( "hid1", h.name)
290
+ when 2
291
+ assert_equal( "", h.name)
292
+ assert_equal( "hidden_1", h.id)
293
+ end
294
+ count+=1
278
295
  end
296
+
297
+ assert_equal("hid1" , $ie.hiddens[1].name )
298
+ assert_equal("hidden_1" , $ie.hiddens[2].id )
299
+ end
279
300
  end