From e04443c6ee1762b9b0722c64cfaf0ef6c28da502 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Sat, 7 Jul 2007 21:33:52 +0000 Subject: [PATCH] Add tests for dealing with files beginning with thumb- (they're ignored) and determining if a file is an image, based on the filename. --- t/Storage/Image.t | 73 +++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 6 deletions(-) diff --git a/t/Storage/Image.t b/t/Storage/Image.t index 70541dec4..166223628 100644 --- a/t/Storage/Image.t +++ b/t/Storage/Image.t @@ -21,7 +21,50 @@ use File::Spec; use Test::More; use Test::Deep; -plan tests => 7; # increment this value for each test you create +my $extensionTests = [ + { + filename => 'filename', + isImage => 0, + comment => 'no extension', + }, + { + filename => 'filename.JPG', + isImage => 1, + comment => 'JPG caps', + }, + { + filename => 'filename.jpg', + isImage => 1, + comment => 'JPG lower case', + }, + { + filename => 'filename.jpeg', + isImage => 1, + comment => 'jpeg file', + }, + { + filename => 'filename.gif', + isImage => 1, + comment => 'gif file', + }, + { + filename => 'filename.png', + isImage => 1, + comment => 'png file', + }, + { + filename => 'filename.bmp', + isImage => 0, + comment => 'bmp file is not an image', + }, + { + filename => 'filename.tiff', + isImage => 0, + comment => 'tiff file is not an image', + }, +]; + +plan tests => 9 + scalar @{ $extensionTests }; # increment this value for each test you create my $session = WebGUI::Test->session; @@ -41,13 +84,31 @@ $session->config->set('caseInsensitiveOS', 0); #################################################### my $imageStore = WebGUI::Storage::Image->create($session); -cmp_bag($imageStore->getFiles(1), ['.', '..'], 'Starting with an empty storage object, no files in here except for . and ..'); +my $expectedFiles = ['.', '..']; +cmp_bag($imageStore->getFiles(1), $expectedFiles, 'Starting with an empty storage object, no files in here except for . and ..'); $imageStore->addFileFromScalar('.dotfile', 'dot file'); -cmp_bag($imageStore->getFiles(), [ ], 'getFiles() by default does not return dot files'); -cmp_bag($imageStore->getFiles(1), ['.', '..', '.dotfile'], 'getFiles(1) returns all files, including dot files'); +push @{ $expectedFiles }, '.dotfile'; +cmp_bag($imageStore->getFiles(), [ ], 'getFiles() by default does not return dot files'); +cmp_bag($imageStore->getFiles(1), $expectedFiles, 'getFiles(1) returns all files, including dot files'); + $imageStore->addFileFromScalar('dot.file', 'dot.file'); -cmp_bag($imageStore->getFiles(), ['dot.file'], 'getFiles() returns normal files'); -cmp_bag($imageStore->getFiles(1), ['.', '..', '.dotfile', 'dot.file'], 'getFiles(1) returns all files, including dot files'); +push @{ $expectedFiles }, 'dot.file'; +cmp_bag($imageStore->getFiles(), ['dot.file'], 'getFiles() returns normal files'); +cmp_bag($imageStore->getFiles(1), $expectedFiles, 'getFiles(1) returns all files, including dot files'); + +$imageStore->addFileFromScalar('thumb-file.png', 'thumbnail file'); +cmp_bag($imageStore->getFiles(), ['dot.file', ], 'getFiles() ignores thumb- file'); +cmp_bag($imageStore->getFiles(1), $expectedFiles, '... even when the allFiles switch is passed'); + +#################################################### +# +# isImage +# +#################################################### + +foreach my $extTest ( @{ $extensionTests } ) { + is( $imageStore->isImage($extTest->{filename}), $extTest->{isImage}, $extTest->{comment} ); +} END { foreach my $stor (