watir 1.4.1

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 (98) hide show
  1. data/readme.rb +211 -0
  2. data/unittests/WindowLogonExample.rb +30 -0
  3. data/unittests/WindowLogonExtra.rb +7 -0
  4. data/unittests/all_tests.rb +10 -0
  5. data/unittests/all_tests_concurrent.rb +57 -0
  6. data/unittests/attachToExistingWindow_test.rb +40 -0
  7. data/unittests/buttons_test.rb +131 -0
  8. data/unittests/checkbox_test.rb +149 -0
  9. data/unittests/core_tests.rb +9 -0
  10. data/unittests/css_test.rb +60 -0
  11. data/unittests/div_test.rb +179 -0
  12. data/unittests/errorchecker_test.rb +29 -0
  13. data/unittests/filefield_test.rb +35 -0
  14. data/unittests/form_test.rb +279 -0
  15. data/unittests/frame_test.rb +141 -0
  16. data/unittests/html/blankpage.html +12 -0
  17. data/unittests/html/buttons1.html +40 -0
  18. data/unittests/html/checkboxes1.html +69 -0
  19. data/unittests/html/complex_table.html +36 -0
  20. data/unittests/html/cssTest.html +42 -0
  21. data/unittests/html/div.html +105 -0
  22. data/unittests/html/fileupload.html +45 -0
  23. data/unittests/html/formTest1.html +39 -0
  24. data/unittests/html/forms2.html +45 -0
  25. data/unittests/html/forms3.html +132 -0
  26. data/unittests/html/forms4.html +27 -0
  27. data/unittests/html/frame_buttons.html +4 -0
  28. data/unittests/html/frame_links.html +4 -0
  29. data/unittests/html/frame_multi.html +5 -0
  30. data/unittests/html/iframeTest.html +13 -0
  31. data/unittests/html/iframeTest1.html +7 -0
  32. data/unittests/html/iframeTest2.html +6 -0
  33. data/unittests/html/images/1.gif +0 -0
  34. data/unittests/html/images/2.GIF +0 -0
  35. data/unittests/html/images/3.GIF +0 -0
  36. data/unittests/html/images/button.jpg +0 -0
  37. data/unittests/html/images/circle.jpg +0 -0
  38. data/unittests/html/images/minus.GIF +0 -0
  39. data/unittests/html/images/originaltriangle.jpg +0 -0
  40. data/unittests/html/images/plus.gif +0 -0
  41. data/unittests/html/images/square.jpg +0 -0
  42. data/unittests/html/images/triangle.jpg +0 -0
  43. data/unittests/html/images1.html +52 -0
  44. data/unittests/html/javascriptevents.html +39 -0
  45. data/unittests/html/link_pass.html +11 -0
  46. data/unittests/html/links1.html +37 -0
  47. data/unittests/html/links2.html +11 -0
  48. data/unittests/html/nestedFrames.html +6 -0
  49. data/unittests/html/pass.html +10 -0
  50. data/unittests/html/popups1.html +60 -0
  51. data/unittests/html/radioButtons1.html +71 -0
  52. data/unittests/html/select_tealeaf.html +54 -0
  53. data/unittests/html/selectboxes1.html +55 -0
  54. data/unittests/html/simple_table.html +26 -0
  55. data/unittests/html/simple_table_buttons.html +104 -0
  56. data/unittests/html/simple_table_columns.html +76 -0
  57. data/unittests/html/table1.html +142 -0
  58. data/unittests/html/textarea.html +30 -0
  59. data/unittests/html/textfields1.html +87 -0
  60. data/unittests/html/textsearch.html +44 -0
  61. data/unittests/ie_mock.rb +93 -0
  62. data/unittests/ie_test.rb +50 -0
  63. data/unittests/images_test.rb +179 -0
  64. data/unittests/iostring.rb +30 -0
  65. data/unittests/iostring_test.rb +48 -0
  66. data/unittests/js_events_test.rb +77 -0
  67. data/unittests/jscriptExtraAlert.rb +6 -0
  68. data/unittests/jscriptExtraConfirmCancel.rb +7 -0
  69. data/unittests/jscriptExtraConfirmOk.rb +7 -0
  70. data/unittests/jscriptPushButton.rb +5 -0
  71. data/unittests/jscript_test.rb +57 -0
  72. data/unittests/links_test.rb +169 -0
  73. data/unittests/minmax_test.rb +31 -0
  74. data/unittests/navigate_test.rb +56 -0
  75. data/unittests/non_core_tests.rb +9 -0
  76. data/unittests/pagecontainstext_test.rb +49 -0
  77. data/unittests/popups_test.rb +44 -0
  78. data/unittests/radios_test.rb +164 -0
  79. data/unittests/screen_capture_test.rb +53 -0
  80. data/unittests/selectbox_test.rb +197 -0
  81. data/unittests/send_keys_test.rb +29 -0
  82. data/unittests/setup.rb +47 -0
  83. data/unittests/table_test.rb +306 -0
  84. data/unittests/textAreafields_test.rb +81 -0
  85. data/unittests/textfields_test.rb +239 -0
  86. data/watir.rb +3744 -0
  87. data/watir/AutoItX3.dll +0 -0
  88. data/watir/WindowHelper.rb +47 -0
  89. data/watir/camel_case.rb +37 -0
  90. data/watir/clickJSDialog.rb +19 -0
  91. data/watir/cookiemanager.rb +53 -0
  92. data/watir/exceptions.rb +60 -0
  93. data/watir/screen_capture.rb +115 -0
  94. data/watir/setFileDialog.rb +16 -0
  95. data/watir/testUnitAddons.rb +47 -0
  96. data/watir/watir_simple.rb +475 -0
  97. data/watir/winClicker.rb +505 -0
  98. metadata +152 -0
@@ -0,0 +1,44 @@
1
+ # feature tests for javascript PopUps
2
+ # revision: $Revision: 1.13 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_PopUps < Test::Unit::TestCase
8
+ include Watir
9
+
10
+ def setup
11
+ $ie.goto("file://#{$myDir}/html/popups1.html")
12
+ end
13
+
14
+ def startClicker( button , waitTime = 0.5)
15
+ w = WinClicker.new
16
+ longName = $ie.dir.gsub("/" , "\\" )
17
+ shortName = w.getShortFileName(longName)
18
+ c = "start rubyw #{shortName }\\watir\\clickJSDialog.rb #{button } #{ waitTime} "
19
+ puts "Starting #{c}"
20
+ w.winsystem(c )
21
+ w=nil
22
+ end
23
+
24
+ def test_simple
25
+ startClicker("OK")
26
+ $ie.button("Alert").click
27
+ end
28
+
29
+ def test_confirm
30
+ startClicker("OK")
31
+ $ie.button("Confirm").click
32
+ assert( $ie.text_field(:name , "confirmtext").verify_contains("OK") )
33
+
34
+ startClicker("Cancel")
35
+ $ie.button("Confirm").click
36
+ assert( $ie.text_field(:name , "confirmtext").verify_contains("Cancel") )
37
+ end
38
+
39
+ def xtest_Prompt
40
+ startClicker("OK")
41
+ $ie.button("Prompt").click
42
+ end
43
+ end
44
+
@@ -0,0 +1,164 @@
1
+ # feature tests for Radio Buttons
2
+ # revision: $Revision: 1.25 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_Radios < Test::Unit::TestCase
8
+ include Watir
9
+
10
+ def setup()
11
+ $ie.goto($htmlRoot + "radioButtons1.html")
12
+ end
13
+
14
+ def test_Radio_Exists
15
+ assert($ie.radio(:name, "box1").exists?)
16
+ assert($ie.radio(:id, "box5").exists?)
17
+
18
+ assert_false($ie.radio(:name, "missingname").exists?)
19
+ assert_false($ie.radio(:id, "missingid").exists?)
20
+ end
21
+
22
+ def test_Radio_Enabled
23
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:name, "noName").enabled? }
24
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:id, "noName").enabled? }
25
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:name, "box4" , 6).enabled? }
26
+
27
+ assert_false($ie.radio(:name, "box2").enabled?)
28
+ assert($ie.radio(:id, "box5").enabled?)
29
+ assert($ie.radio(:name, "box1").enabled?)
30
+ end
31
+
32
+ def test_little
33
+ assert_false($ie.button(:value , "foo").enabled?)
34
+ end
35
+
36
+ def test_onClick
37
+
38
+ assert_false($ie.radio(:name, "box5").isSet?)
39
+ assert_false($ie.button(:value , "foo").enabled?)
40
+
41
+ # first click the button is enabled and the radio is set
42
+ $ie.radio(:name, "box5" , 1).set
43
+ assert($ie.radio(:name, "box5",1).isSet?)
44
+ assert($ie.button(:value , "foo").enabled?)
45
+
46
+ # second click the button is disabled and the radio is still set
47
+ $ie.radio(:name, "box5", 1).set
48
+ assert($ie.radio(:name, "box5",1).isSet?)
49
+ assert_false($ie.button(:value , "foo").enabled?)
50
+
51
+ # third click the button is enabled and the radio is still set
52
+ $ie.radio(:name, "box5", 1).set
53
+ assert($ie.radio(:name, "box5",1 ).isSet?)
54
+ assert($ie.button(:value , "foo").enabled?)
55
+
56
+ # click the radio with a value of 2 , button is disabled and the radio is still set
57
+ $ie.radio(:name, "box5", 2).set
58
+ assert_false($ie.radio(:name, "box5" ,1).isSet?)
59
+ assert($ie.radio(:name, "box5" ,2).isSet?)
60
+ assert_false($ie.button(:value , "foo").enabled?)
61
+
62
+
63
+
64
+
65
+ end
66
+
67
+ def test_Radio_isSet
68
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:name, "noName").isSet? }
69
+
70
+ assert_false($ie.radio(:name, "box1").isSet?)
71
+ assert( $ie.radio(:name, "box3").isSet?)
72
+ assert_false($ie.radio(:name, "box2").isSet?)
73
+ assert( $ie.radio(:name, "box4" , 1 ).isSet?)
74
+ assert_false($ie.radio(:name, "box4" , 2 ).isSet?)
75
+ end
76
+
77
+ def test_radio_clear
78
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:name, "noName").clear }
79
+
80
+ $ie.radio(:name, "box1").clear
81
+ assert_false($ie.radio(:name, "box1").isSet?)
82
+
83
+ assert_raises(ObjectDisabledException, "ObjectDisabledException was supposed to be thrown" ) { $ie.radio(:name, "box2").clear }
84
+ assert_false($ie.radio(:name, "box2").isSet?)
85
+
86
+ $ie.radio(:name, "box3").clear
87
+ assert_false($ie.radio(:name, "box3").isSet?)
88
+
89
+ $ie.radio(:name, "box4" , 1).clear
90
+ assert_false($ie.radio(:name, "box4" , 1).isSet?)
91
+ end
92
+
93
+ def test_radio_getState
94
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:name, "noName").getState }
95
+
96
+ assert_equal( false , $ie.radio(:name, "box1").getState )
97
+ assert_equal( true , $ie.radio(:name, "box3").getState)
98
+
99
+ # radioes that have the same name but different values
100
+ assert_equal( false , $ie.radio(:name, "box4" , 2).getState )
101
+ assert_equal( true , $ie.radio(:name, "box4" , 1).getState)
102
+ end
103
+
104
+ def test_radio_set
105
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:name, "noName").set }
106
+ $ie.radio(:name, "box1").set
107
+ assert($ie.radio(:name, "box1").isSet?)
108
+
109
+ assert_raises(ObjectDisabledException, "ObjectDisabledException was supposed to be thrown" ) { $ie.radio(:name, "box2").set }
110
+
111
+ $ie.radio(:name, "box3").set
112
+ assert($ie.radio(:name, "box3").isSet?)
113
+
114
+ # radioes that have the same name but different values
115
+ $ie.radio(:name, "box4" , 3).set
116
+ assert($ie.radio(:name, "box4" , 3).isSet?)
117
+ end
118
+
119
+ def test_radio_properties
120
+
121
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:index, 199).value}
122
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:index, 199).name }
123
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:index, 199).id }
124
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:index, 199).disabled }
125
+ assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.radio(:index, 199).type }
126
+
127
+ assert_equal("on" , $ie.radio(:index, 1).value)
128
+ assert_equal("box1" , $ie.radio(:index, 1).name )
129
+ assert_equal("" , $ie.radio(:index, 1).id )
130
+ assert_equal("radio", $ie.radio(:index, 1).type )
131
+
132
+ assert_equal( false, $ie.radio(:index, 1).disabled )
133
+ assert_equal( true, $ie.radio(:index, 3).disabled )
134
+
135
+ assert_equal("box5" , $ie.radio(:index, 2).id )
136
+ assert_equal("" , $ie.radio(:index, 2).name )
137
+
138
+ assert_equal("box4-value5", $ie.radio(:name , "box4" , 5 ).title )
139
+ assert_equal("", $ie.radio(:name , "box4" , 4 ).title )
140
+
141
+
142
+ end
143
+
144
+ def test_radio_iterators
145
+
146
+ assert_equal(11, $ie.radios.length)
147
+ assert_equal("box5" , $ie.radios[2].id )
148
+ assert_equal(true , $ie.radios[3].disabled )
149
+ assert_equal(false , $ie.radios[1].disabled )
150
+
151
+ index = 1
152
+ $ie.radios.each do |r|
153
+ assert_equal( $ie.radio(:index, index).name , r.name )
154
+ assert_equal( $ie.radio(:index, index).id , r.id )
155
+ assert_equal( $ie.radio(:index, index).value, r.value)
156
+ assert_equal( $ie.radio(:index, index).disabled , r.disabled )
157
+ index+=1
158
+ end
159
+ assert_equal(index -1, $ie.radios.length)
160
+ end
161
+
162
+
163
+ end
164
+
@@ -0,0 +1,53 @@
1
+ # feature tests for screen capture
2
+ # revision: $Revision: 1.4 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+ require 'watir/screen_capture'
7
+
8
+ class TC_Capture< Test::Unit::TestCase
9
+ include Watir
10
+ include Watir::ScreenCapture
11
+
12
+ def setup
13
+ delete_captured_files( [ 'jpeg1.jpg' , 'jpeg2.jpg' , 'bmp1.bmp', 'bmp2.bmp' ] )
14
+ $ie.goto($htmlRoot + 'buttons1.html' )
15
+ @file_list = []
16
+ end
17
+
18
+ def teardown
19
+ delete_captured_files
20
+ end
21
+
22
+ def delete_captured_files(files=nil )
23
+ files = @file_list unless files
24
+ files.each do |f|
25
+ File.delete( f) if FileTest.exists?( f)
26
+ end
27
+ end
28
+
29
+ def test_jpeg
30
+ file_name= 'jpeg1.jpg'
31
+ @file_list << file_name
32
+ screen_capture( file_name )
33
+ assert(FileTest.exist?( file_name) )
34
+
35
+ file_name= 'jpeg2.jpg'
36
+ @file_list << file_name
37
+ screen_capture( file_name , true ) # just the active window
38
+ assert(FileTest.exist?( file_name) )
39
+ end
40
+
41
+ def test_bmp
42
+ file_name= 'bmp1.bmp'
43
+ @file_list << file_name
44
+ screen_capture( file_name , false, true )
45
+ assert(FileTest.exist?( file_name ) )
46
+
47
+ file_name= 'bmp2.bmp'
48
+ @file_list << file_name
49
+ screen_capture( file_name , true , true ) # just the active window
50
+ assert(FileTest.exist?( file_name) )
51
+ end
52
+ end
53
+
@@ -0,0 +1,197 @@
1
+ # feature tests for Select Boxes
2
+ # revision: $Revision: 1.28 $
3
+
4
+ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__
5
+ require 'unittests/setup'
6
+
7
+ class TC_SelectList < Test::Unit::TestCase
8
+ include Watir
9
+
10
+ def setup()
11
+ $ie.goto($htmlRoot + "selectboxes1.html")
12
+ end
13
+
14
+ def test_SelectList_exists
15
+ assert($ie.select_list(:name, "sel1").exists?)
16
+ assert_false($ie.select_list(:name, "missing").exists?)
17
+ assert_false($ie.select_list(:id, "missing").exists?)
18
+ end
19
+
20
+ def test_SelectList_enabled
21
+ assert($ie.select_list(:name, "sel1").enabled?)
22
+ assert_raises(UnknownObjectException) { $ie.selectBox(:name, "NoName").enabled? }
23
+ assert_false($ie.select_list(:id, 'selectbox_4').enabled?)
24
+ end
25
+
26
+ def test_Option_text_select
27
+ assert_raises(UnknownObjectException) { $ie.select_list(:name, "sel1").option(:text, "missing item").select }
28
+ assert_raises(UnknownObjectException) { $ie.select_list(:name, "sel1").option(:text, /missing/).select }
29
+ assert_raises(MissingWayOfFindingObjectException) { $ie.select_list(:name, "sel1").option(:missing, "Option 1").select }
30
+
31
+ # the select method keeps any currently selected items - use the clear selection method first
32
+ $ie.select_list( :name , "sel1").clearSelection
33
+ $ie.select_list( :name , "sel1").option(:text, "Option 1").select
34
+ assert_arrayEquals( ["Option 1" ] , $ie.select_list(:name, "sel1").getSelectedItems)
35
+ end
36
+ end
37
+
38
+ # Tests for the old interface
39
+ class TC_Selectbox < Test::Unit::TestCase
40
+ include Watir
41
+
42
+ def setup()
43
+ $ie.goto($htmlRoot + "selectboxes1.html")
44
+ end
45
+
46
+ def test_selectBox_Exists
47
+ assert($ie.selectBox(:name, "sel1").exists?)
48
+ assert_false($ie.selectBox(:name, "missing").exists?)
49
+ assert_false($ie.selectBox(:id, "missing").exists?)
50
+ end
51
+
52
+ def test_selectBox_enabled
53
+ assert($ie.selectBox(:name, "sel1").enabled?)
54
+ assert_raises(UnknownObjectException) { $ie.selectBox(:name, "NoName").enabled? }
55
+ end
56
+
57
+ def test_selectBox_getAllContents
58
+ assert_raises(UnknownObjectException) { $ie.selectBox(:name, "NoName").getAllContents }
59
+ assert_arrayEquals( ["Option 1" ,"Option 2" , "Option 3" , "Option 4"] ,
60
+ $ie.selectBox(:name, "sel1").getAllContents)
61
+ end
62
+
63
+ def test_selectBox_getSelectedItems
64
+ assert_raises(UnknownObjectException) { $ie.selectBox(:name, "NoName").getSelectedItems }
65
+ assert_arrayEquals( ["Option 3" ] ,
66
+ $ie.selectBox(:name, "sel1").getSelectedItems)
67
+ assert_arrayEquals( ["Option 3" , "Option 6" ] ,
68
+ $ie.selectBox(:name, "sel2").getSelectedItems)
69
+ end
70
+
71
+ def test_clearSelection
72
+ assert_raises(UnknownObjectException) { $ie.selectBox(:name, "NoName").clearSelection }
73
+ $ie.selectBox( :name , "sel1").clearSelection
74
+
75
+ # the box sel1 has no ability to have a de-selected item
76
+ assert_arrayEquals( ["Option 3" ] , $ie.selectBox(:name, "sel1").getSelectedItems)
77
+
78
+ $ie.selectBox( :name , "sel2").clearSelection
79
+ assert_arrayEquals( [ ] , $ie.selectBox(:name, "sel2").getSelectedItems)
80
+ end
81
+
82
+ def test_selectBox_select
83
+ assert_raises(NoValueFoundException) { $ie.selectBox(:name, "sel1").select("missing item") }
84
+ assert_raises(NoValueFoundException) { $ie.selectBox(:name, "sel1").select(/missing/) }
85
+
86
+ # the select method keeps any currently selected items - use the clear selectcion method first
87
+ $ie.selectBox( :name , "sel1").clearSelection
88
+ $ie.selectBox( :name , "sel1").select("Option 1")
89
+ assert_arrayEquals( ["Option 1" ] , $ie.selectBox(:name, "sel1").getSelectedItems)
90
+
91
+ $ie.selectBox( :name , "sel1").clearSelection
92
+ $ie.selectBox( :name , "sel1").select(/2/)
93
+ assert_arrayEquals( ["Option 2" ] , $ie.selectBox(:name, "sel1").getSelectedItems)
94
+
95
+ $ie.selectBox( :name , "sel2").clearSelection
96
+ $ie.selectBox( :name , "sel2").select(/2/)
97
+ $ie.selectBox( :name , "sel2").select(/4/)
98
+ assert_arrayEquals( ["Option 2" , "Option 4" ] ,
99
+ $ie.selectBox(:name, "sel2").getSelectedItems)
100
+
101
+ # these are to test the onchange event
102
+ # the event shouldnt get fired, as this is the selected item
103
+ $ie.selectBox( :name , "sel3").select( /3/ )
104
+ assert_false($ie.contains_text("Pass") )
105
+ end
106
+
107
+ def test_selectBox_select2
108
+ # the event should get fired
109
+ $ie.selectBox( :name , "sel3").select( /2/ )
110
+ assert($ie.contains_text("PASS") )
111
+ end
112
+
113
+ def test_selectBox_select_using_value
114
+ assert_raises(UnknownObjectException) { $ie.select_list(:name, "NoName").getSelectedItems }
115
+ assert_raises(NoValueFoundException) { $ie.select_list(:name, "sel1").select_value("missing item") }
116
+ assert_raises(NoValueFoundException) { $ie.select_list(:name, "sel1").select_value(/missing/) }
117
+
118
+ # the select method keeps any currently selected items - use the clear selectcion method first
119
+ $ie.select_list( :name , "sel1").clearSelection
120
+ $ie.select_list( :name , "sel1").select_value("o1")
121
+ assert_arrayEquals( ["Option 1" ] , $ie.select_list(:name, "sel1").getSelectedItems)
122
+
123
+ $ie.select_list( :name , "sel1").clearSelection
124
+ $ie.select_list( :name , "sel1").select_value(/2/)
125
+ assert_arrayEquals( ["Option 2" ] , $ie.select_list(:name, "sel1").getSelectedItems)
126
+
127
+ $ie.select_list( :name , "sel2").clearSelection
128
+ $ie.select_list( :name , "sel2").select_value(/4/)
129
+ $ie.select_list( :name , "sel2").select_value(/2/)
130
+ assert_arrayEquals( ["Option 2" , "Option 4" ] ,
131
+ $ie.select_list(:name, "sel2").getSelectedItems)
132
+
133
+ # these are to test the onchange event
134
+ # the event shouldnt get fired, as this is the selected item
135
+ $ie.select_list( :name , "sel3").select_value( /3/ )
136
+ assert_false($ie.contains_text("Pass") )
137
+ end
138
+
139
+ def test_select_list_select_using_value2
140
+ # the event should get fired
141
+ $ie.select_list( :name , "sel3").select_value( /2/ )
142
+ assert($ie.contains_text("PASS") )
143
+ end
144
+
145
+ def test_select_list_properties
146
+ assert_raises(UnknownObjectException) { $ie.select_list(:index, 199).value }
147
+ assert_raises(UnknownObjectException) { $ie.select_list(:index, 199).name }
148
+ assert_raises(UnknownObjectException) { $ie.select_list(:index, 199).id }
149
+ assert_raises(UnknownObjectException) { $ie.select_list(:index, 199).disabled }
150
+ assert_raises(UnknownObjectException) { $ie.select_list(:index, 199).type }
151
+
152
+ assert_equal("o3" , $ie.select_list(:index, 1).value)
153
+ assert_equal("sel1" , $ie.select_list(:index, 1).name )
154
+ assert_equal("" , $ie.select_list(:index, 1).id )
155
+ assert_equal("select-one", $ie.select_list(:index, 1).type )
156
+ assert_equal("select-multiple", $ie.select_list(:index, 2).type )
157
+
158
+ $ie.select_list(:index,1).select(/1/)
159
+ assert_equal("o1" , $ie.select_list(:index, 1).value)
160
+
161
+ assert_false( $ie.select_list(:index, 1).disabled )
162
+ assert( $ie.select_list(:index, 4).disabled )
163
+ assert( $ie.select_list(:id, 'selectbox_4').disabled )
164
+ end
165
+
166
+ def test_select_list_iterator
167
+ assert_equal(4, $ie.select_lists.length)
168
+ assert_equal("o3" , $ie.select_lists[1].value)
169
+ assert_equal("sel1" , $ie.select_lists[1].name )
170
+ assert_equal("select-one", $ie.select_lists[1].type )
171
+ assert_equal("select-multiple" , $ie.select_lists[2].type )
172
+
173
+ index=1
174
+ $ie.select_lists.each do |l|
175
+ assert_equal( $ie.select_list(:index, index).name , l.name )
176
+ assert_equal( $ie.select_list(:index, index).id , l.id )
177
+ assert_equal( $ie.select_list(:index, index).type , l.type )
178
+ assert_equal( $ie.select_list(:index, index).value , l.value )
179
+ index+=1
180
+ end
181
+ assert_equal( index-1, $ie.select_lists.length)
182
+ end
183
+ end
184
+
185
+ class TC_Select_Options < Test::Unit::TestCase
186
+ include Watir
187
+
188
+ def setup()
189
+ $ie.goto($htmlRoot + "select_tealeaf.html")
190
+ end
191
+
192
+ def test_options_text
193
+ $ie.select_list(:name, 'op_numhits').option(:text, '>=').select
194
+ assert($ie.select_list(:name, 'op_numhits').option(:text, '>=').selected)
195
+ end
196
+ end
197
+