diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index 73bff8518..0eb0f86f5 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -80,7 +80,7 @@ property url => ( builder => '_default_url', ); sub _default_url { - return $_[0]->assetId; + return $_[0]->fixUrl; } around url => sub { @@ -701,7 +701,9 @@ sub fixUrl { # build a URL from the parent unless ($url) { - $url = $self->getParent->url; + if (my $parent = $self->getParent) { + $url = $parent->url; + } $url =~ s/(.*)\..*/$1/; $url .= '/'.$self->menuTitle; } diff --git a/t/Asset.t b/t/Asset.t index 9487b8feb..31af7bd84 100644 --- a/t/Asset.t +++ b/t/Asset.t @@ -389,4 +389,15 @@ my $session = WebGUI::Test->session; cmp_deeply($classes, [qw/WebGUI::Asset/], 'Any asset okay'); } +{ + note "url, inherited URLs from parent"; + my $home = WebGUI::Asset->getDefault($session); + my $asset = $home->addChild({ + className => 'WebGUI::Asset::Wobject::Article', + title => 'sub', + }); + WebGUI::Test->addToCleanup($asset); + is $asset->url, 'home/sub', 'by default, asset gets a url from the title, and the parent'; +} + done_testing;