# feature tests for Check Boxes $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED require 'unittests/setup' class TC_CheckBox < Test::Unit::TestCase include Watir::Exception def setup goto_page "checkboxes1.html" end def test_checkbox_exceptions assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").id } assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").name } assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").disabled } assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").type } assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").value } end def test_checkbox_properties_with_index assert_equal("box1", browser.checkbox(:index, 0).name ) assert_equal("", browser.checkbox(:index, 0).id ) assert_equal("checkbox", browser.checkbox(:index, 0).type ) assert_equal("on", browser.checkbox(:index, 0).value ) assert_equal(false, browser.checkbox(:index, 0).disabled ) end def test_checkbox_properties assert_equal("check_box_style", browser.checkbox(:name, "box1").class_name) assert_equal("", browser.checkbox(:name, "box2").class_name) assert_equal("1", browser.checkbox(:name, "box4").value ) assert_equal("3", browser.checkbox(:name => "box4", :value => 3).value ) assert(browser.checkbox(:name, "box6").exists?) assert_equal("checkbox", browser.checkbox(:name => "box4", :value => 3).type ) assert_equal("checkbox", browser.checkbox(:name => "box6", :value => 'Milk').type ) assert_equal(false, browser.checkbox(:name => "box4", :value => 3).disabled ) assert_equal("", browser.checkbox(:name => "box4", :value => 3).id ) assert_equal("box4-value5", browser.checkbox(:name => "box4", :value => 5).title) assert_equal("", browser.checkbox(:name => "box4", :value => 4).title) end def test_onClick assert_false(browser.button(:value, "foo").enabled?) browser.checkbox(:name, "box5").set assert(browser.button(:value, "foo").enabled?) browser.checkbox(:name, "box5").clear assert_false(browser.button(:value, "foo").enabled?) browser.checkbox(:name, "box5").clear assert_false(browser.button(:value, "foo").enabled?) end def test_CheckBox_Exists assert(browser.checkbox(:name, "box1").exists?) assert_false(browser.checkbox(:name, "missing").exists?) assert(browser.checkbox(:name => "box4", :value => 1).exists?) assert_false(browser.checkbox(:name => "box4", :value => 22).exists?) assert(browser.checkbox(:name => "box4", :value => /[0-9]/).exists?) assert_false(browser.checkbox(:name => "box4", :value => /\d\d\d/).exists?) end def test_checkbox_Enabled assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").enabled? } assert_raises(UnknownObjectException) { browser.checkbox(:id, "noName").enabled? } assert_raises(UnknownObjectException) { browser.checkbox(:name => "box4", :value => 6).enabled? } assert(browser.checkbox(:name, "box1").enabled?) assert_false(browser.checkbox(:name, "box2").enabled?) assert(browser.checkbox(:name => "box4", :value => 4).enabled?) assert_false(browser.checkbox(:name =>"box4", :value => 5 ).enabled?) end def test_checkbox_isSet assert_raises(UnknownObjectException ) { browser.checkbox(:name, "noName").isSet? } assert_false(browser.checkbox(:name, "box1").isSet?) assert_false(browser.checkbox(:name, "box2").isSet?) assert(browser.checkbox(:name, "box3").isSet?) assert_false(browser.checkbox(:name => "box4", :value => 2 ).isSet?) assert(browser.checkbox(:name => "box4", :value => 1 ).isSet?) assert_false(browser.checkbox(:name => 'box6', :value => 'Milk').isSet?) end def test_checkbox_clear assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").clear } browser.checkbox(:name, "box1").clear assert_false(browser.checkbox(:name, "box1").isSet?) assert_raises(ObjectDisabledException) { browser.checkbox(:name, "box2").clear } assert_false(browser.checkbox(:name, "box2").isSet?) browser.checkbox(:name, "box3").clear assert_false(browser.checkbox(:name, "box3").isSet?) browser.checkbox(:name => "box4", :value => 1).clear assert_false(browser.checkbox(:name => "box4", :value => 1).isSet?) browser.checkbox(:name => "box6", :value => 'Tea').clear assert_false(browser.checkbox(:name => "box6", :value => 'Tea').isSet?) end def test_checkbox_getState assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").getState } assert_equal( false, browser.checkbox(:name, "box1").getState ) assert_equal( true, browser.checkbox(:name, "box3").getState) # checkboxes that have the same name but different values assert_equal( false, browser.checkbox(:name => "box4", :value => 2).getState ) assert_equal( true, browser.checkbox(:name => "box4", :value => 1).getState) end def test_checkbox_set assert_raises(UnknownObjectException) { browser.checkbox(:name, "noName").set } browser.checkbox(:name, "box1").set assert(browser.checkbox(:name, "box1").isSet?) assert_raises(ObjectDisabledException) { browser.checkbox(:name, "box2").set } browser.checkbox(:name, "box3").set assert(browser.checkbox(:name, "box3").isSet?) # checkboxes that have the same name but different values browser.checkbox(:name => "box4", :value => 3).set assert(browser.checkbox(:name => "box4", :value => 3).isSet?) # test set using the optinal true/false # assumes the checkbox is already checked browser.checkbox(:name, "box1").set( false ) assert_false(browser.checkbox(:name, "box1").isSet?) browser.checkbox(:name, "box1").set( true ) assert(browser.checkbox(:name, "box1").isSet?) browser.checkbox(:name => "box6", :value => 'Tea').set( false ) assert_false(browser.checkbox(:name => "box6", :value => 'Tea').isSet?) browser.checkbox(:name => "box6", :value => 'Tea').set( true ) assert(browser.checkbox(:name => "box6", :value => 'Tea').isSet?) end def test_checkboxes_access assert_equal("box1" , browser.checkboxes[0].name ) end def test_checkbox_iterator assert_equal(13, browser.checkboxes.length) index = 0 browser.checkboxes.each do |c| # puts "#{index}: #{c.name}" assert_equal( browser.checkbox(:index, index).name , c.name ) assert_equal( browser.checkbox(:index, index).id, c.id ) assert_equal( browser.checkbox(:index, index).value, c.value ) index += 1 end assert_equal(index, browser.checkboxes.length) end # bug 217 tag_method :test_checkbox_access_by_ole_object, :fails_on_firefox def test_checkbox_access_by_ole_object ole = browser.checkboxes[1].locate browser.checkbox(:ole_object, ole).flash end end