# feature tests for Images $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') unless $SETUP_LOADED require 'unittests/setup' require 'ftools' require 'webrick' require 'watir/cookiemanager' class TC_Images < Test::Unit::TestCase tags :must_be_visible, :creates_windows include Watir def setup goto_page "images1.html" @saved_img_path = build_path("sample.img.dat"); clean_saved_image end def teardown clean_saved_image end def test_imageExists assert( ! browser.image(:name , "missing_name").exists? ) assert( browser.image(:name , "circle").exists? ) assert( browser.image(:name , /circ/ ).exists? ) assert( ! browser.image(:id , "missing_id").exists? ) assert( browser.image(:id , "square").exists? ) assert( browser.image(:id , /squ/ ).exists? ) assert( ! browser.image(:src, "missingsrc.gif").exists? ) assert( browser.image(:src, "file:///#{$myDir}/html/images/triangle.jpg").exists? ) assert( browser.image(:src , /triangle/ ).exists? ) assert( browser.image(:alt , "circle" ).exists? ) assert( browser.image(:alt , /cir/ ).exists? ) assert( ! browser.image(:alt , "triangle" ).exists? ) assert( ! browser.image(:alt , /tri/ ).exists? ) assert( browser.image(:title, 'square_image').exists? ) assert( ! browser.image(:title, 'pentagram').exists? ) end def test_image_click assert_raises(UnknownObjectException) { browser.image(:name, "no_image_with_this").click } assert_raises(UnknownObjectException) { browser.image(:id, "no_image_with_this").click } assert_raises(UnknownObjectException) { browser.image(:src, "no_image_with_this").click} assert_raises(UnknownObjectException) { browser.image(:alt, "no_image_with_this").click} # test for bug 1882 browser.text_field(:name , "text1").clear browser.button(:value , /Pos/ ).click assert_equal('clicked' , browser.text_field(:name , "text1" ).value ) # test for disabled button assert( ! browser.image(:name , 'disabler_test').disabled ) browser.button(:name , 'disable_img').click assert( browser.image(:name , 'disabler_test').disabled ) browser.button(:name , 'disable_img').click browser.image(:src, /button/).click assert(browser.text.include?("PASS") ) end def test_imageHasLoaded assert_raises(UnknownObjectException) { browser.image(:name, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:id, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:src, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:alt, "no_image_with_this").hasLoaded? } assert( ! browser.image(:name, "themissingimage").hasLoaded? ) assert( browser.image(:name, "circle").hasLoaded? ) assert( browser.image(:alt, "circle").hasLoaded? ) assert( browser.image(:alt, /cir/ ).hasLoaded? ) end def test_image_properties assert_raises(UnknownObjectException) { browser.image(:name, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:id, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:src, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:index, 82).hasLoaded? } assert_raises(UnknownObjectException) { browser.image(:index, 82).name } assert_raises(UnknownObjectException) { browser.image(:index, 82).id } assert_raises(UnknownObjectException) { browser.image(:index, 82).src } assert_raises(UnknownObjectException) { browser.image(:index, 82).value } assert_raises(UnknownObjectException) { browser.image(:index, 82).height } assert_raises(UnknownObjectException) { browser.image(:index, 82).width } assert_raises(UnknownObjectException) { browser.image(:index, 82).fileCreatedDate } assert_raises(UnknownObjectException) { browser.image(:index, 82).fileSize } assert_raises(UnknownObjectException) { browser.image(:index, 82).alt} assert_raises(UnknownObjectException) { browser.image(:index, 82).title} assert_equal( "" , browser.image(:index, 1).name ) assert_equal( "square" , browser.image(:index, 1).id ) assert_match( /square\.jpg/i ,browser.image(:index, 1).src ) assert_equal( "" , browser.image(:index, 1).value ) assert_equal( 88 , browser.image(:index, 1).height ) assert_equal( 88 , browser.image(:index, 1).width ) # this line fails, as the date is when it is installed on the local oc, not the date the file was really created #assert_equal( "03/10/2005" , browser.image(:index, 2).fileCreatedDate ) assert_equal( 788, browser.image(:index, 1).fileSize ) # tool tips: alt text + title assert_equal('circle' , browser.image(:index, 5).alt) assert_equal( "" , browser.image(:index, 1).alt) assert_equal('square_image', browser.image(:id, 'square').title) # TODO: to string tests -- output should be verified! browser.image(:name , "circle").to_s browser.image(:index , 1).to_s end def test_image_iterator assert_equal(6 , browser.images.length) assert_equal("" , browser.images[1].name ) assert_equal("square", browser.images[1].id ) assert_match(/square/, browser.images[1].src ) index = 0 browser.images.each do |i| assert_equal( browser.image(:index, index).id , i.id ) assert_equal( browser.image(:index, index).name , i.name ) assert_equal( browser.image(:index, index).src , i.src ) assert_equal( browser.image(:index, index).height , i.height ) assert_equal( browser.image(:index, index).width , i.width ) index += 1 end assert_equal(index, browser.images.length) end def test_save_local_image browser.images[1].save(build_windows_path("sample.img.dat")) assert(File.compare(@saved_img_path, browser.images[1].src.gsub(/^file:\/\/\//, ''))) end def clean_saved_image File.delete(@saved_img_path) if (File.exists?(@saved_img_path)) end def build_windows_path(part) build_path(part).gsub(/\//, "\\") end def build_path(part) "#{$myDir}/#{part}" end end