newByUrl should throw an exception. Test it.
This commit is contained in:
parent
387866cfcb
commit
006570a05a
2 changed files with 26 additions and 8 deletions
|
|
@ -1814,13 +1814,10 @@ sub newByUrl {
|
||||||
$url =~ tr/'"//d;
|
$url =~ tr/'"//d;
|
||||||
if ($url ne "") {
|
if ($url ne "") {
|
||||||
my ($id) = $session->db->quickArray("select assetId from assetData where url = ? limit 1", [ $url ]);
|
my ($id) = $session->db->quickArray("select assetId from assetData where url = ? limit 1", [ $url ]);
|
||||||
if ($id ne "" || $class ne "") {
|
if (!$id) {
|
||||||
return WebGUI::Asset->newById($session, $id, $revisionDate);
|
WebGUI::Error::ObjectNotFound->throw(error => "The URL was requested, but does not exist in your asset tree.", id => $url);
|
||||||
}
|
}
|
||||||
else {
|
return WebGUI::Asset->newById($session, $id, $revisionDate);
|
||||||
$session->errorHandler->warn("The URL $url was requested, but does not exist in your asset tree.");
|
|
||||||
return undef;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return WebGUI::Asset->getDefault($session);
|
return WebGUI::Asset->getDefault($session);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@ my $session = WebGUI::Test->session;
|
||||||
|
|
||||||
my @getTitleTests = getTitleTests($session);
|
my @getTitleTests = getTitleTests($session);
|
||||||
|
|
||||||
plan tests => 105
|
plan tests => 110
|
||||||
+ 2*scalar(@getTitleTests) #same tests used for getTitle and getMenuTitle
|
+ 2*scalar(@getTitleTests) #same tests used for getTitle and getMenuTitle
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
@ -139,6 +139,27 @@ note "newById";
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
note "newByUrl";
|
||||||
|
{
|
||||||
|
my $deadAsset = eval { WebGUI::Asset->newByUrl($session, '/workFromHomeScam'); };
|
||||||
|
my $e = Exception::Class->caught;
|
||||||
|
isa_ok($e, 'WebGUI::Error::ObjectNotFound');
|
||||||
|
cmp_deeply(
|
||||||
|
$e,
|
||||||
|
methods(
|
||||||
|
error => "The URL was requested, but does not exist in your asset tree.",
|
||||||
|
id => 'workfromhomescam',
|
||||||
|
),
|
||||||
|
'... checking error message',
|
||||||
|
);
|
||||||
|
my $root = eval { WebGUI::Asset->newByUrl($session, '/root'); };
|
||||||
|
isa_ok($root, 'WebGUI::Asset');
|
||||||
|
$root = eval { WebGUI::Asset->newByUrl($session, '/ROOT'); };
|
||||||
|
isa_ok($root, 'WebGUI::Asset');
|
||||||
|
$root = eval { WebGUI::Asset->newByUrl($session, '/root/'); };
|
||||||
|
isa_ok($root, 'WebGUI::Asset');
|
||||||
|
}
|
||||||
|
|
||||||
# -- no session
|
# -- no session
|
||||||
# Root Asset
|
# Root Asset
|
||||||
my $rootAsset = WebGUI::Asset->getRoot($session);
|
my $rootAsset = WebGUI::Asset->getRoot($session);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue