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.
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