unittests/form_xpath_test.rb in watir-1.6.5 vs unittests/form_xpath_test.rb in watir-1.6.6.rc1
- old
+ new
@@ -1,252 +1,252 @@
-# feature tests for Forms
-# revision: $Revision$
-
-$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
-require 'unittests/setup'
-
-class TC_Forms2_XPath < Test::Unit::TestCase
- def setup
- goto_page "forms2.html"
- end
-
- def test_Form_Exists
- assert(browser.form(:xpath , "//form[@name='test2']/").exists?)
- assert_false(browser.form(:xpath , "//form[@name='missing']/").exists?)
-
- assert(browser.form(:xpath , "//form[@method='get']/").exists?)
- assert_false(browser.form(:xpath , "//form[@method='missing']/").exists?)
-
- assert(browser.form(:xpath , "//form[@action='pass.html']/").exists?)
- assert_false(browser.form(:xpath , "//form[@action='missing']/").exists?)
- end
-
- def test_ButtonInForm
- assert(browser.form(:xpath , "//form[@name='test2']/").button(:caption , "Submit").exists?)
- end
-end
-
-class TC_Form_Display_XPath < Test::Unit::TestCase
- include CaptureIOHelper
- def test_showforms
- goto_page "forms2.html"
-
- actual = capture_stdout { browser.show_forms }
- assert_equal(<<END_OF_MESSAGE, actual)
-There are 4 forms
-Form name:
- id:
- method: get
- action: pass.html
-Form name: test2
- id: f2
- method: get
- action: pass2.html
-Form name: test3
- id:
- method: get
- action: pass2.html
-Form name: test2
- id:
- method: get
- action: pass2.html
-END_OF_MESSAGE
- end
-end
-
-class TC_Forms3_XPath < Test::Unit::TestCase
- def setup
- goto_page "forms3.html"
- end
-
- def test_Form_Exists
- assert(browser.form(:xpath , "//form[@name='test2']/").exists?)
- assert_false(browser.form(:xpath , "//form[@name='missing']/").exists?)
-
- assert(browser.form(:xpath , "//form[@method='get']/").exists?)
- assert_false(browser.form(:xpath , "//form[@method='missing']/").exists?)
-
- assert(browser.form(:xpath , "//form[@action='pass.html']/").exists?)
- assert_false(browser.form(:xpath , "//form[@action='missing']/").exists?)
- end
-
- def test_getObject_when_non_watir_object_before_it
- # test for bug reported by Scott Pack, http://rubyforge.org/pipermail/wtr-general/2005-June/002223.html
- assert_equal("check1" , browser.checkbox(:index,1).name )
- end
-
- def test_showforms # add verification of output!
- browser.show_forms
- end
-
- def test_reset
-
- browser.text_field(:id, "t1").set("Hello, reset test!")
- assert_equal(browser.text_field(:id, 't1').value, 'Hello, reset test!')
-
- browser.button(:caption, "Reset").click
- assert_equal("" , browser.text_field(:id, 't1').value )
-
- # also verify it works under a form
- browser.text_field(:id, "t1").set("reset test - using a form")
- assert_equal(browser.text_field(:id, 't1').value, 'reset test - using a form')
-
- # also verify it works under a form, this time using the :id attribute
- browser.text_field(:id, "t1").set("reset test - using a form")
- assert_equal(browser.text_field(:id, 't1').value, 'reset test - using a form')
- end
-
- def test_flash1
- browser.form(:xpath , "//form[@name='test2']/").button(:caption , "Submit").flash
- end
-
- def test_objects_with_same_name
- assert_equal('textfield' ,browser.text_field( :name , 'g1').value )
- assert_equal('button' ,browser.button( :name , 'g1').value )
- assert_equal('1' ,browser.checkbox( :name , 'g1').value )
- assert_equal('2' ,browser.radio( :name , 'g1').value )
-
- assert_equal('textfield_id' ,browser.text_field( :id , 'g1').value )
- assert_equal('button_id' ,browser.button( :id , 'g1').value )
- assert_equal('1_id' ,browser.checkbox( :id , 'g1').value )
- assert_equal('2_id' ,browser.radio( :id , 'g1').value )
- end
-
- def test_flash2
- browser.button(:value, 'Click Me').flash
- assert_raises( Watir::UnknownObjectException ) { browser.text_field( :name , 'g177').flash }
- end
-
- def test_showElements # add verification!
- browser.show_all_objects
- end
-
- def test_showText
- puts browser.text
- end
-
- def test_showHTML
- puts browser.html
- end
-
- def test_submitWithImage
- assert( browser.button(:alt , "submit").exists? )
- assert( browser.button(:alt , /sub/).exists? )
-
- assert_false( browser.button(:alt , "missing").exists? )
- assert_false( browser.button(:alt , /missing/).exists? )
-
- #assert( browser.button(:src , "file:///#{$myDir}/html/images/button.jpg").exists? ) # this doesnt work for everybody
- assert( browser.button(:src , /button/).exists? )
-
- assert_false( browser.button(:src , "missing").exists? )
- assert_false( browser.button(:src , /missing/).exists? )
- assert_nothing_raised("raised an exception when it shouldnt have") { browser.button(:src , /button/).click }
-
- assert( browser.contains_text("PASS") )
- end
-end
-
-class TC_Forms4_XPath < Test::Unit::TestCase
- def setup
- goto_page "forms4.html"
- end
-
- def test_find_text_field_ignoring_form
- assert_equal(browser.text_field(:name, 'name').value, 'apple') # should it raise a not-unique error instead?
- end
-
- def test_correct_form_field_is_found_using_form_name
- assert_equal(browser.form(:xpath , "//form[@name='apple_form']/").text_field(:name, 'name').value, 'apple')
- assert_equal(browser.form(:xpath , "//form[@name='banana_form']/").text_field(:name, 'name').value, 'banana')
- end
-
- def test_using_text_on_form
- browser.form(:xpath , "//form[@name='apple_form']/").text_field(:name, 'name').set('strudel')
- assert_equal(browser.form(:index, 1).text_field(:name, 'name').value, 'strudel')
- end
-
- def test_submit
- browser.form(:xpath , "//form[@name='apple_form']/").submit
- assert( browser.contains_text("PASS") )
- end
-end
-
-class TC_Hidden_Fields_XPath < Test::Unit::TestCase
- def setup
- goto_page "forms3.html"
- end
-
- def test_hidden
-
- # test using index
- assert( browser.hidden(:index,1).exists? )
- assert( browser.hidden(:index,2).exists? )
- assert_false( browser.hidden(:index,3).exists? )
-
- browser.hidden(:index,1).value = 44
- browser.hidden(:index,2).value = 55
-
- browser.button(:value , "Show Hidden").click
-
- assert_equal("44" , browser.text_field(:name , "vis1").value )
- assert_equal("55" , browser.text_field(:name , "vis2").value )
-
- # test using name and ID
- assert( browser.hidden(:name ,"hid1").exists? )
- assert( browser.hidden(:id,"hidden_1").exists? )
- assert_false( browser.hidden(:name,"hidden_44").exists? )
- assert_false( browser.hidden(:id,"hidden_55").exists? )
-
- browser.hidden(:name ,"hid1").value = 444
- browser.hidden(:id,"hidden_1").value = 555
-
- browser.button(:value , "Show Hidden").click
-
- assert_equal("444" , browser.text_field(:name , "vis1").value )
- assert_equal("555" , browser.text_field(:name ,"vis2").value )
-
- # test the over-ridden append method
- browser.hidden(:name ,"hid1").append("a")
- browser.button(:value , "Show Hidden").click
- assert_equal("444a" , browser.text_field(:name , "vis1").value )
- assert_equal("555" , browser.text_field(:name ,"vis2").value )
-
- # test the over-ridden clear method
- browser.hidden(:name ,"hid1").clear
- browser.button(:value , "Show Hidden").click
- assert_equal("" , browser.text_field(:name , "vis1").value )
- assert_equal("555" , browser.text_field(:name ,"vis2").value )
-
- # test using a form
- assert( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name ,"hid1").exists? )
- assert( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_1").exists? )
- assert_false( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name,"hidden_44").exists? )
- assert_false( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_55").exists? )
-
- browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name ,"hid1").value = 222
- browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_1").value = 333
-
- browser.button(:value , "Show Hidden").click
-
- assert_equal("222" , browser.text_field(:name , "vis1").value )
- assert_equal("333" , browser.text_field(:name ,"vis2").value )
-
- # iterators
- assert_equal(2, browser.hiddens.length)
- count =1
- browser.hiddens.each do |h|
- case count
- when 1
- assert_equal( "", h.id)
- assert_equal( "hid1", h.name)
- when 2
- assert_equal( "", h.name)
- assert_equal( "hidden_1", h.id)
- end
- count+=1
- end
-
- assert_equal("hid1" , browser.hiddens[1].name )
- assert_equal("hidden_1" , browser.hiddens[2].id )
- end
-end
+# feature tests for Forms
+# revision: $Revision$
+
+$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED
+require 'unittests/setup'
+
+class TC_Forms2_XPath < Test::Unit::TestCase
+ def setup
+ goto_page "forms2.html"
+ end
+
+ def test_Form_Exists
+ assert(browser.form(:xpath , "//form[@name='test2']/").exists?)
+ assert_false(browser.form(:xpath , "//form[@name='missing']/").exists?)
+
+ assert(browser.form(:xpath , "//form[@method='get']/").exists?)
+ assert_false(browser.form(:xpath , "//form[@method='missing']/").exists?)
+
+ assert(browser.form(:xpath , "//form[@action='pass.html']/").exists?)
+ assert_false(browser.form(:xpath , "//form[@action='missing']/").exists?)
+ end
+
+ def test_ButtonInForm
+ assert(browser.form(:xpath , "//form[@name='test2']/").button(:caption , "Submit").exists?)
+ end
+end
+
+class TC_Form_Display_XPath < Test::Unit::TestCase
+ include CaptureIOHelper
+ def test_showforms
+ goto_page "forms2.html"
+
+ actual = capture_stdout { browser.show_forms }
+ assert_equal(<<END_OF_MESSAGE, actual)
+There are 4 forms
+Form name:
+ id:
+ method: get
+ action: pass.html
+Form name: test2
+ id: f2
+ method: get
+ action: pass2.html
+Form name: test3
+ id:
+ method: get
+ action: pass2.html
+Form name: test2
+ id:
+ method: get
+ action: pass2.html
+END_OF_MESSAGE
+ end
+end
+
+class TC_Forms3_XPath < Test::Unit::TestCase
+ def setup
+ goto_page "forms3.html"
+ end
+
+ def test_Form_Exists
+ assert(browser.form(:xpath , "//form[@name='test2']/").exists?)
+ assert_false(browser.form(:xpath , "//form[@name='missing']/").exists?)
+
+ assert(browser.form(:xpath , "//form[@method='get']/").exists?)
+ assert_false(browser.form(:xpath , "//form[@method='missing']/").exists?)
+
+ assert(browser.form(:xpath , "//form[@action='pass.html']/").exists?)
+ assert_false(browser.form(:xpath , "//form[@action='missing']/").exists?)
+ end
+
+ def test_getObject_when_non_watir_object_before_it
+ # test for bug reported by Scott Pack, http://rubyforge.org/pipermail/wtr-general/2005-June/002223.html
+ assert_equal("check1" , browser.checkbox(:index,1).name )
+ end
+
+ def test_showforms # add verification of output!
+ browser.show_forms
+ end
+
+ def test_reset
+
+ browser.text_field(:id, "t1").set("Hello, reset test!")
+ assert_equal(browser.text_field(:id, 't1').value, 'Hello, reset test!')
+
+ browser.button(:caption, "Reset").click
+ assert_equal("" , browser.text_field(:id, 't1').value )
+
+ # also verify it works under a form
+ browser.text_field(:id, "t1").set("reset test - using a form")
+ assert_equal(browser.text_field(:id, 't1').value, 'reset test - using a form')
+
+ # also verify it works under a form, this time using the :id attribute
+ browser.text_field(:id, "t1").set("reset test - using a form")
+ assert_equal(browser.text_field(:id, 't1').value, 'reset test - using a form')
+ end
+
+ def test_flash1
+ browser.form(:xpath , "//form[@name='test2']/").button(:caption , "Submit").flash
+ end
+
+ def test_objects_with_same_name
+ assert_equal('textfield' ,browser.text_field( :name , 'g1').value )
+ assert_equal('button' ,browser.button( :name , 'g1').value )
+ assert_equal('1' ,browser.checkbox( :name , 'g1').value )
+ assert_equal('2' ,browser.radio( :name , 'g1').value )
+
+ assert_equal('textfield_id' ,browser.text_field( :id , 'g1').value )
+ assert_equal('button_id' ,browser.button( :id , 'g1').value )
+ assert_equal('1_id' ,browser.checkbox( :id , 'g1').value )
+ assert_equal('2_id' ,browser.radio( :id , 'g1').value )
+ end
+
+ def test_flash2
+ browser.button(:value, 'Click Me').flash
+ assert_raises( Watir::UnknownObjectException ) { browser.text_field( :name , 'g177').flash }
+ end
+
+ def test_showElements # add verification!
+ browser.show_all_objects
+ end
+
+ def test_showText
+ puts browser.text
+ end
+
+ def test_showHTML
+ puts browser.html
+ end
+
+ def test_submitWithImage
+ assert( browser.button(:alt , "submit").exists? )
+ assert( browser.button(:alt , /sub/).exists? )
+
+ assert_false( browser.button(:alt , "missing").exists? )
+ assert_false( browser.button(:alt , /missing/).exists? )
+
+ #assert( browser.button(:src , "file:///#{$myDir}/html/images/button.jpg").exists? ) # this doesnt work for everybody
+ assert( browser.button(:src , /button/).exists? )
+
+ assert_false( browser.button(:src , "missing").exists? )
+ assert_false( browser.button(:src , /missing/).exists? )
+ assert_nothing_raised("raised an exception when it shouldnt have") { browser.button(:src , /button/).click }
+
+ assert( browser.contains_text("PASS") )
+ end
+end
+
+class TC_Forms4_XPath < Test::Unit::TestCase
+ def setup
+ goto_page "forms4.html"
+ end
+
+ def test_find_text_field_ignoring_form
+ assert_equal(browser.text_field(:name, 'name').value, 'apple') # should it raise a not-unique error instead?
+ end
+
+ def test_correct_form_field_is_found_using_form_name
+ assert_equal(browser.form(:xpath , "//form[@name='apple_form']/").text_field(:name, 'name').value, 'apple')
+ assert_equal(browser.form(:xpath , "//form[@name='banana_form']/").text_field(:name, 'name').value, 'banana')
+ end
+
+ def test_using_text_on_form
+ browser.form(:xpath , "//form[@name='apple_form']/").text_field(:name, 'name').set('strudel')
+ assert_equal(browser.form(:index, 1).text_field(:name, 'name').value, 'strudel')
+ end
+
+ def test_submit
+ browser.form(:xpath , "//form[@name='apple_form']/").submit
+ assert( browser.contains_text("PASS") )
+ end
+end
+
+class TC_Hidden_Fields_XPath < Test::Unit::TestCase
+ def setup
+ goto_page "forms3.html"
+ end
+
+ def test_hidden
+
+ # test using index
+ assert( browser.hidden(:index,1).exists? )
+ assert( browser.hidden(:index,2).exists? )
+ assert_false( browser.hidden(:index,3).exists? )
+
+ browser.hidden(:index,1).value = 44
+ browser.hidden(:index,2).value = 55
+
+ browser.button(:value , "Show Hidden").click
+
+ assert_equal("44" , browser.text_field(:name , "vis1").value )
+ assert_equal("55" , browser.text_field(:name , "vis2").value )
+
+ # test using name and ID
+ assert( browser.hidden(:name ,"hid1").exists? )
+ assert( browser.hidden(:id,"hidden_1").exists? )
+ assert_false( browser.hidden(:name,"hidden_44").exists? )
+ assert_false( browser.hidden(:id,"hidden_55").exists? )
+
+ browser.hidden(:name ,"hid1").value = 444
+ browser.hidden(:id,"hidden_1").value = 555
+
+ browser.button(:value , "Show Hidden").click
+
+ assert_equal("444" , browser.text_field(:name , "vis1").value )
+ assert_equal("555" , browser.text_field(:name ,"vis2").value )
+
+ # test the over-ridden append method
+ browser.hidden(:name ,"hid1").append("a")
+ browser.button(:value , "Show Hidden").click
+ assert_equal("444a" , browser.text_field(:name , "vis1").value )
+ assert_equal("555" , browser.text_field(:name ,"vis2").value )
+
+ # test the over-ridden clear method
+ browser.hidden(:name ,"hid1").clear
+ browser.button(:value , "Show Hidden").click
+ assert_equal("" , browser.text_field(:name , "vis1").value )
+ assert_equal("555" , browser.text_field(:name ,"vis2").value )
+
+ # test using a form
+ assert( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name ,"hid1").exists? )
+ assert( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_1").exists? )
+ assert_false( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name,"hidden_44").exists? )
+ assert_false( browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_55").exists? )
+
+ browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:name ,"hid1").value = 222
+ browser.form(:xpath , "//form[@name='has_a_hidden']/").hidden(:id,"hidden_1").value = 333
+
+ browser.button(:value , "Show Hidden").click
+
+ assert_equal("222" , browser.text_field(:name , "vis1").value )
+ assert_equal("333" , browser.text_field(:name ,"vis2").value )
+
+ # iterators
+ assert_equal(2, browser.hiddens.length)
+ count =1
+ browser.hiddens.each do |h|
+ case count
+ when 1
+ assert_equal( "", h.id)
+ assert_equal( "hid1", h.name)
+ when 2
+ assert_equal( "", h.name)
+ assert_equal( "hidden_1", h.id)
+ end
+ count+=1
+ end
+
+ assert_equal("hid1" , browser.hiddens[1].name )
+ assert_equal("hidden_1" , browser.hiddens[2].id )
+ end
+end