# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' ######################### We start with some black magic to print on failure. # Change 1..1 below to 1..last_test_to_print . # (It may become useful if the test is moved to ./t subdirectory.) BEGIN { $| = 1; print "1..6\n"; } END {print "package load... not ok 1\n" unless $loaded;} use Image::IPTCInfo; $loaded = 1; print "package load.... ok 1\n"; ######################### End of black magic. # # Make sure debug mode is turned off for release # if ($Image::IPTCInfo::debugMode == 0) { print "debug mode off.... ok 2\n"; } else { print "debug mode off.... not ok 2\n"; } # # Test loading IPTC info # my $info = new Image::IPTCInfo('demo_images/burger_van.jpg'); if (defined($info) && $info->Attribute('caption/abstract') eq 'A van full of burgers awaits mysterious buyers in a dark parking lot.') { print "get caption.... ok 3\n"; } else { print "get caption.... not ok 3\n"; print "error: " . Image::IPTCInfo::Error() . "\n"; } # # Test saving IPTC info # $info->SetAttribute('caption/abstract', 'modified caption'); $info->SaveAs('demo_images/burger_van_save1.jpg') || print "error: " . Image::IPTCInfo::Error() . "\n"; undef $info; $info = new Image::IPTCInfo('demo_images/burger_van_save1.jpg'); if (defined($info) && $info->Attribute('caption/abstract') eq 'modified caption') { print "save and load.... ok 4\n"; } else { print "save and load.... not ok 4\n"; print "error: " . Image::IPTCInfo::Error() . "\n"; } # # Re-load modified image and use Save() to save, then check it # undef $info; $info = new Image::IPTCInfo('demo_images/burger_van_save1.jpg'); if (!defined($info)) { print "re-save and re-load.... not ok 5\n"; print "error: " . Image::IPTCInfo::Error() . "\n"; exit; } $info->SetAttribute('caption/abstract', 'modified caption 2'); $info->Save(); undef $info; $info = new Image::IPTCInfo('demo_images/burger_van_save1.jpg'); if (defined($info) && $info->Attribute('caption/abstract') eq 'modified caption 2') { print "re-save and re-load.... ok 5\n"; } else { print "re-save and re-load.... not ok 5\n"; print "error: " . Image::IPTCInfo::Error() . "\n"; } use IO::File; my $handle = IO::File->new('demo_images/burger_van_save1.jpg'); $info = Image::IPTCInfo->new($handle); if (defined($info) && $info->Attribute('caption/abstract') eq 'modified caption 2') { print "re-load with handle.... ok 6\n"; } else { print "re-load with handle.... not ok 6\n"; print "error: " . Image::IPTCInfo::Error() . "\n"; }