85 lines
2.5 KiB
Perl
85 lines
2.5 KiB
Perl
# Before "make install", this script should be runnable with "make test".
|
|
# After "make install" it should work as "perl t/GIF.t".
|
|
|
|
BEGIN {
|
|
$| = 1; print "1..5\n"; $Image::ExifTool::configFile = '';
|
|
require './t/TestLib.pm'; t::TestLib->import();
|
|
}
|
|
END {print "not ok 1\n" unless $loaded;}
|
|
|
|
# test 1: Load the module(s)
|
|
use Image::ExifTool 'ImageInfo';
|
|
use Image::ExifTool::GIF;
|
|
$loaded = 1;
|
|
print "ok 1\n";
|
|
|
|
my $testname = 'GIF';
|
|
my $testnum = 1;
|
|
|
|
# test 2: GIF file using data in memory
|
|
{
|
|
++$testnum;
|
|
open(TESTFILE, 't/images/GIF.gif');
|
|
binmode(TESTFILE);
|
|
my $gifImage;
|
|
read(TESTFILE, $gifImage, 100000);
|
|
close(TESTFILE);
|
|
my $info = ImageInfo(\$gifImage);
|
|
notOK() unless check($info, $testname, $testnum);
|
|
print "ok $testnum\n";
|
|
}
|
|
|
|
# tests 3-5: Test adding/editing/deleting various types of metadata for GIF images in memory
|
|
{
|
|
++$testnum;
|
|
open(TESTFILE, 't/images/GIF.gif');
|
|
binmode(TESTFILE);
|
|
my $gifImage;
|
|
read(TESTFILE, $gifImage, 100000);
|
|
close(TESTFILE);
|
|
my $exifTool = Image::ExifTool->new;
|
|
$exifTool->SetNewValue(Comment => 'a new comment');
|
|
$exifTool->SetNewValue(City => 'Kingston');
|
|
my $image1;
|
|
$exifTool->WriteInfo(\$gifImage, \$image1);
|
|
$info = ImageInfo(\$image1);
|
|
notOK() unless check($info, $testname, $testnum);
|
|
print "ok $testnum\n";
|
|
|
|
++$testnum;
|
|
$exifTool->SetNewValue(); # clear previous new values
|
|
$exifTool->SetNewValue('all'); # delete everything...
|
|
# add back some XMP tags
|
|
$exifTool->SetNewValue(Comment => 'x');
|
|
$exifTool->SetNewValue(Subject => ['one','two','three']);
|
|
$exifTool->SetNewValue(Country => 'Canada');
|
|
my $image2;
|
|
$exifTool->WriteInfo(\$image1, \$image2);
|
|
$info = ImageInfo(\$image2);
|
|
notOK() unless check($info, $testname, $testnum);
|
|
print "ok $testnum\n";
|
|
|
|
++$testnum;
|
|
$info = ImageInfo(\$gifImage, 'Comment', 'XMP', 'ICC_Profile');
|
|
$exifTool->SetNewValue(); # clear previous new values
|
|
$exifTool->SetNewValue(Comment => $$info{Comment});
|
|
$exifTool->SetNewValue(XMP => $$info{XMP}, Protected => 1);
|
|
$exifTool->SetNewValue(ICC_Profile => $$info{ICC_Profile}, Protected => 1);
|
|
my $image3;
|
|
$exifTool->WriteInfo(\$image2, \$image3);
|
|
my $testfile = "t/${testname}_${testnum}_failed.gif";
|
|
if ($image3 eq $gifImage) {
|
|
unlink $testfile;
|
|
} else {
|
|
# save the bad image
|
|
open(TESTFILE,">$testfile");
|
|
binmode(TESTFILE);
|
|
print TESTFILE $image3;
|
|
close(TESTFILE);
|
|
notOK();
|
|
}
|
|
print "ok $testnum\n";
|
|
}
|
|
|
|
done(); # end
|