coverage tests for getFileIconUrl for WebGUI::Storage.pm
This commit is contained in:
parent
484bc40569
commit
fd8cff2b8f
1 changed files with 84 additions and 30 deletions
114
t/Storage.t
114
t/Storage.t
|
|
@ -26,38 +26,13 @@ my $mock = Test::MockObject->new();
|
|||
$mock->fake_module('Apache2::Request');
|
||||
$mock->fake_module('Apache2::Upload');
|
||||
|
||||
my $extensionTests = [
|
||||
{
|
||||
filename => 'filename',
|
||||
extension => undef,
|
||||
comment => 'no extension',
|
||||
},
|
||||
{
|
||||
filename => 'filename.',
|
||||
extension => '',
|
||||
comment => 'dot, but no extension',
|
||||
},
|
||||
{
|
||||
filename => 'filename.txt',
|
||||
extension => 'txt',
|
||||
comment => 'simple extension',
|
||||
},
|
||||
{
|
||||
filename => 'filename.TXT',
|
||||
extension => 'txt',
|
||||
comment => 'extensions are all lowercase',
|
||||
},
|
||||
{
|
||||
filename => 'filename.FOO.BAR',
|
||||
extension => 'bar',
|
||||
comment => 'multiple extensions return last extension',
|
||||
},
|
||||
];
|
||||
|
||||
plan tests => 77 + scalar @{ $extensionTests }; # increment this value for each test you create
|
||||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
my ($extensionTests, $fileIconTests) = setupDataDrivenTests($session);
|
||||
|
||||
my $numTests = 77; # increment this value for each test you create
|
||||
plan tests => $numTests + scalar @{ $extensionTests } + scalar @{ $fileIconTests };
|
||||
|
||||
my $uploadDir = $session->config->get('uploadsPath');
|
||||
ok ($uploadDir, "uploadDir defined in config");
|
||||
|
||||
|
|
@ -400,6 +375,85 @@ $pseudoRequest->uploadFiles(
|
|||
);
|
||||
is($fileStore->addFileFromFormPost('oneFile'), 'WebGUI.pm', 'Return the name of the uploaded file');
|
||||
|
||||
####################################################
|
||||
#
|
||||
# getFileIconUrl
|
||||
#
|
||||
####################################################
|
||||
|
||||
foreach my $iconTest (@{ $fileIconTests }) {
|
||||
is( $storage1->getFileIconUrl($iconTest->{filename}), $iconTest->{iconUrl}, $iconTest->{comment} );
|
||||
}
|
||||
|
||||
####################################################
|
||||
#
|
||||
# Setup data driven tests here, to keep the top part of the
|
||||
# test clean.
|
||||
#
|
||||
####################################################
|
||||
|
||||
sub setupDataDrivenTests {
|
||||
my $session = shift;
|
||||
my $extensionTests = [
|
||||
{
|
||||
filename => 'filename',
|
||||
extension => undef,
|
||||
comment => 'no extension',
|
||||
},
|
||||
{
|
||||
filename => 'filename.',
|
||||
extension => '',
|
||||
comment => 'dot, but no extension',
|
||||
},
|
||||
{
|
||||
filename => 'filename.txt',
|
||||
extension => 'txt',
|
||||
comment => 'simple extension',
|
||||
},
|
||||
{
|
||||
filename => 'filename.TXT',
|
||||
extension => 'txt',
|
||||
comment => 'extensions are all lowercase',
|
||||
},
|
||||
{
|
||||
filename => 'filename.FOO.BAR',
|
||||
extension => 'bar',
|
||||
comment => 'multiple extensions return last extension',
|
||||
},
|
||||
];
|
||||
|
||||
my $fileIconTests = [
|
||||
{
|
||||
filename => 'filename',
|
||||
iconUrl => $session->url->extras("fileIcons/unknown.gif"),
|
||||
comment => 'no extension uses unknown icon',
|
||||
},
|
||||
{
|
||||
filename => 'filename.txt',
|
||||
iconUrl => $session->url->extras("fileIcons/txt.gif"),
|
||||
comment => 'valid extension, lower case works',
|
||||
},
|
||||
{
|
||||
filename => 'filename.TXT',
|
||||
iconUrl => $session->url->extras("fileIcons/txt.gif"),
|
||||
comment => 'valid extension, upper case works',
|
||||
},
|
||||
{
|
||||
filename => 'filename.00TXT00',
|
||||
iconUrl => $session->url->extras("fileIcons/unknown.gif"),
|
||||
comment => 'unknown extension',
|
||||
},
|
||||
];
|
||||
|
||||
return ($extensionTests, $fileIconTests)
|
||||
}
|
||||
|
||||
####################################################
|
||||
#
|
||||
# END block, clean-up after yourself
|
||||
#
|
||||
####################################################
|
||||
|
||||
END {
|
||||
foreach my $stor (
|
||||
$storage1, $storage2, $storage3, $copiedStorage,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue