# feature tests for Images # revision: $Revision: 1.32.2.1 $ $LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..') if $0 == __FILE__ require 'unittests/setup' require 'ftools' require 'webrick' require 'watir/cookiemanager' class TC_Images < Test::Unit::TestCase include Watir def setup gotoImagePage @saved_img_path = build_path("sample.img.dat"); end def gotoImagePage() $ie.goto($htmlRoot + "images1.html") end def test_imageExists assert_false( $ie.image(:name , "missing_name").exists? ) assert( $ie.image(:name , "circle").exists? ) assert( $ie.image(:name , /circ/ ).exists? ) assert_false( $ie.image(:id , "missing_id").exists? ) assert( $ie.image(:id , "square").exists? ) assert( $ie.image(:id , /squ/ ).exists? ) assert_false( $ie.image(:src, "missingsrc.gif").exists? ) # BP -- This fails for me but not for Paul. It doesn't make sense to me that it should pass. # assert( $ie.image(:src , "file:///#{$myDir}/html/images/triangle.jpg").exists? ) assert( $ie.image(:src , /triangle/ ).exists? ) assert( $ie.image(:alt , "circle" ).exists? ) assert( $ie.image(:alt , /cir/ ).exists? ) assert_false( $ie.image(:alt , "triangle" ).exists? ) assert_false( $ie.image(:alt , /tri/ ).exists? ) end def test_image_click assert_raises(UnknownObjectException ) { $ie.image(:name, "no_image_with_this").click } assert_raises(UnknownObjectException ) { $ie.image(:id, "no_image_with_this").click } assert_raises(UnknownObjectException ) { $ie.image(:src, "no_image_with_this").click} assert_raises(UnknownObjectException ) { $ie.image(:alt, "no_image_with_this").click} # test for bug 1882 $ie.text_field(:name , "text1").clear $ie.button(:value , /Pos/ ).click assert_equal('clicked' , $ie.text_field(:name , "text1" ).value ) # # test for disabled button # assert_false( $ie.image(:name , 'disabler_test').disabled ) # $ie.button(:name , 'disable_img').click # # assert( $ie.image(:name , 'disabler_test').disabled ) # $ie.button(:name , 'disable_img').click $ie.image(:src, /button/).click assert($ie.contains_text("PASS") ) end def test_imageHasLoaded assert_raises(UnknownObjectException ) { $ie.image(:name, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:id, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:src, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:alt, "no_image_with_this").hasLoaded? } assert_false( $ie.image(:name, "themissingimage").hasLoaded? ) assert( $ie.image(:name, "circle").hasLoaded? ) assert( $ie.image(:alt, "circle").hasLoaded? ) assert( $ie.image(:alt, /cir/ ).hasLoaded? ) end def test_image_properties assert_raises(UnknownObjectException ) { $ie.image(:name, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:id, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:src, "no_image_with_this").hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).hasLoaded? } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).name } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).id } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).src } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).value } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).height } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).width } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).fileCreatedDate } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).fileSize } assert_raises(UnknownObjectException ) { $ie.image(:index, 82).alt} assert_equal( "image" , $ie.image(:index, 2).type ) assert_equal( "" , $ie.image(:index, 2).name ) assert_equal( "square" , $ie.image(:index, 2).id ) assert_match( /square\.jpg/i ,$ie.image(:index, 2).src ) assert_equal( "" , $ie.image(:index, 2).value ) assert_equal( "88" , $ie.image(:index, 2).height ) assert_equal( "88" , $ie.image(:index, 2).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" , $ie.image(:index, 2).fileCreatedDate ) assert_equal( "788", $ie.image(:index, 2).fileSize ) # alt text assert_equal('circle' , $ie.image(:index, 6).alt) assert_equal( "" , $ie.image(:index, 2).alt) # to string tests -- output should be verified! puts $ie.image(:name , "circle").to_s puts $ie.image(:index , 2).to_s end def test_image_iterator assert_equal(6 , $ie.images.length) assert_equal("" , $ie.images[2].name ) assert_equal("square" , $ie.images[2].id ) assert_match(/square/ , $ie.images[2].src ) index = 1 $ie.images.each do |i| assert_equal( $ie.image(:index, index).id , i.id ) assert_equal( $ie.image(:index, index).name , i.name ) assert_equal( $ie.image(:index, index).src , i.src ) assert_equal( $ie.image(:index, index).height , i.height ) assert_equal( $ie.image(:index, index).width , i.width ) index+=1 end assert_equal( index-1 , $ie.images.length ) end def test_save_local_image gotoImagePage() safe_file_block(1) do assert(File.compare(@saved_img_path, $ie.images[1].src.gsub(/^file:\/\/\//, ''))) end safe_file_block(2) do assert(File.compare(@saved_img_path, $ie.images[2].src.gsub(/^file:\/\/\//, ''))) end end def test_save_local_image_returns_original_page gotoImagePage() safe_file_block(1) {} assert_equal(6 , $ie.images.length) end def safe_file_block(*imgstosave) clean_saved_image begin imgstosave.each {|imgidx| $ie.images[imgidx].save(build_windows_path("sample.img.dat"))} yield ensure clean_saved_image end end def clean_saved_image File.unlink(@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