# feature tests for Buttons # revision: $Revision: 962 $ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__ require 'unittests/setup' class TC_Buttons < Test::Unit::TestCase include Watir def setup $ie.goto($htmlRoot + "buttons1.html") end def goto_frames_page $ie.goto($htmlRoot + "frame_buttons.html") end def aatest_Spinner s = Spinner.new i = 0 while(i < 100) sleep 0.05 print s.next i+=1 end s = nil end def aaatest_Button_to_s # i think the tests for to_s should be dropped. The output is not in a nice format to be tested, and the # individual properties are tested in the test_properties method b4 = ['name b4', 'type button', 'id b5', 'value Disabled Button', 'disabled true'] b1 = ['name b1', 'type button', 'id b2', 'value Click Me', 'disabled false'] assert_equal(b4, $ie.button(:name, "b4").to_s) assert_equal(b1, $ie.button(:caption, "Click Me").to_s) assert_equal(b1, $ie.button(:index, 1).to_s) assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").to_s } end def test_properties assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").id } assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").name } assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").disabled } assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").type } assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").value } assert_equal("b1" , $ie.button(:index, 1).name ) assert_equal("b2" , $ie.button(:index, 1).id ) assert_equal("button" , $ie.button(:index, 1).type ) assert_equal("Click Me" , $ie.button(:index, 1).value ) assert_equal(false , $ie.button(:index, 1).disabled ) assert_equal("italic_button" , $ie.button(:name, "b1").class_name ) assert_equal("" , $ie.button(:name , "b4").class_name ) assert_equal("b1" , $ie.button(:id, "b2").name ) assert_equal("b2" , $ie.button(:id, "b2").id ) assert_equal("button" , $ie.button(:id, "b2").type ) assert_equal("b4" , $ie.button(:index, 2).name ) assert_equal("b5" , $ie.button(:index, 2).id ) assert_equal("button" , $ie.button(:index, 2).type ) assert_equal("Disabled Button" , $ie.button(:index, 2).value ) assert_equal(true , $ie.button(:index, 2).disabled ) assert_equal( "" , $ie.button(:index, 2).title ) assert_equal( "this is button1" , $ie.button(:index, 1).title ) end def test_button_using_default # since most of the time, a button will be accessed based on its caption, there is a default way of accessing it.... assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button( "Missing Caption").click } $ie.button("Click Me").click assert($ie.text.include?("PASS") ) end def test_Button_click_only $ie.button(:caption, "Click Me").click assert($ie.text.include?("PASS") ) end def test_button_click assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:caption, "Missing Caption").click } assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:id, "missingID").click } assert_raises(ObjectDisabledException , "ObjectDisabledException was supposed to be thrown" ) { $ie.button(:caption, "Disabled Button").click } $ie.button(:caption, "Click Me").click assert($ie.text.include?("PASS") ) end def test_Button_Exists assert($ie.button(:caption, "Click Me").exists?) assert($ie.button(:caption, "Submit").exists?) assert($ie.button(:name, "b1").exists?) assert($ie.button(:id, "b2").exists?) assert($ie.button(:caption, /sub/i).exists?) assert(!$ie.button(:caption, "missingcaption").exists?) assert(!$ie.button(:name, "missingname").exists?) assert(!$ie.button(:id, "missingid").exists?) assert(!$ie.button(:caption, /missing/i).exists?) end def test_Button_Enabled assert($ie.button(:caption, "Click Me").enabled?) assert(!$ie.button(:caption, "Disabled Button").enabled?) assert(!$ie.button(:name, "b4").enabled?) assert(!$ie.button(:id, "b5").enabled?) assert_raises(UnknownObjectException , "UnknownObjectException was supposed to be thrown" ) { $ie.button(:name, "noName").enabled? } end def test_frame goto_frames_page assert($ie.frame("buttonFrame").button(:caption, "Click Me").enabled?) assert_raises( UnknownObjectException , "UnknownObjectException was supposed to be thrown ( no frame name supplied) " ) { $ie.button(:caption, "Disabled Button").enabled?} end end