Image Asset tests, upgrade package, and code.

RSS Limiter tests, upgrade package, and code.
This commit is contained in:
Brian Medley 2009-03-23 21:11:10 +00:00
commit 4c408da55a
10 changed files with 856 additions and 13 deletions

View file

@ -20,6 +20,7 @@ BEGIN {
$mocker->fake_new('WebGUI::Form::Image');
}
use File::Copy;
use WebGUI::Test;
use WebGUI::Session;
use WebGUI::Image;
@ -29,23 +30,23 @@ use WebGUI::Form::File;
use Test::More; # increment this value for each test you create
use Test::Deep;
plan tests => 7;
plan tests => 11;
my $session = WebGUI::Test->session;
my $square = WebGUI::Image->new($session, 100, 100);
$square->setBackgroundColor('#0000FF');
my $rectangle = WebGUI::Image->new($session, 100, 200);
$rectangle->setBackgroundColor('#0000FF');
##Create a storage location
my $storage = WebGUI::Storage->create($session);
##Save the image to the location
$square->saveToStorageLocation($storage, 'square.png');
$rectangle->saveToStorageLocation($storage, 'blue.png');
##Do a file existance check.
ok((-e $storage->getPath and -d $storage->getPath), 'Storage location created and is a directory');
cmp_bag($storage->getFiles, ['square.png'], 'Only 1 file in storage with correct name');
cmp_bag($storage->getFiles, ['blue.png'], 'Only 1 file in storage with correct name');
##Initialize an Image Asset with that filename and storage location
@ -68,9 +69,29 @@ is($asset->get('storageId'), $asset->getStorageLocation->getId, 'Image Asset sto
$asset->update({
storageId => $storage->getId,
filename => 'square.png',
filename => 'blue.png',
});
my $filename = $asset->getStorageLocation->getPath . "/" . $asset->get("filename");
my @stat_before = stat($filename);
$asset->getStorageLocation->rotate($asset->get("filename"), 90);
my @stat_after = stat($filename);
is(isnt_array(\@stat_before, \@stat_after), 1, 'Image is different after rotation');
@stat_before = stat($filename);
$asset->getStorageLocation->resize($asset->get("filename"), 200, 300);
my @stat_after = stat($filename);
is(isnt_array(\@stat_before, \@stat_after), 1, 'Image is different after resize');
@stat_before = stat($filename);
$asset->getStorageLocation->crop($asset->get("filename"), 100, 125, 10, 25);
my @stat_after = stat($filename);
is(isnt_array(\@stat_before, \@stat_after), 1, 'Image is different after crop');
my $sth = $session->db->read('describe imageAsset annotations');
isnt($sth->hashRef, undef, 'Annotations column is defined');
is($storage->getId, $asset->get('storageId'), 'Asset updated with correct new storageId');
is($storage->getId, $asset->getStorageLocation->getId, 'Cached Asset storage location updated with correct new storageId');
@ -81,3 +102,13 @@ END {
$versionTag->rollback;
}
}
sub isnt_array {
my ($a, $b) = @_;
for (my $i = 0; $i < @{ $a }; ++$i) {
return 1 if @{ $a }[$i] ne @{ $b }[$i];
}
return 0;
}