More cleanup from dispatch. Do not set the session asset if the requested URL does not exist. In RssFeed, pass the fragment to the next method. Fixes bug #11854.

This commit is contained in:
Colin Kuskie 2010-09-10 11:14:03 -07:00
parent ef6e78fc27
commit e99ae4740f
5 changed files with 30 additions and 6 deletions

View file

@ -1,5 +1,6 @@
7.10.1 7.10.1
- fixed #11851: Story Topic: top story variables should be available all the time - fixed #11851: Story Topic: top story variables should be available all the time
- fixed #11854: CS doesn't return Not Found page
7.10.0 7.10.0
- fixed #11812: Checking www_ajaxSave's response in the cart js, urlencoding post parameters - fixed #11812: Checking www_ajaxSave's response in the cart js, urlencoding post parameters

View file

@ -81,6 +81,7 @@ sub dispatch {
return $output if defined $output; return $output if defined $output;
} }
} }
$session->clearAsset;
if ($session->var->isAdminOn) { if ($session->var->isAdminOn) {
my $asset = WebGUI::Asset->newByUrl($session, $session->url->getRefererUrl) || WebGUI::Asset->getDefault($session); my $asset = WebGUI::Asset->newByUrl($session, $session->url->getRefererUrl) || WebGUI::Asset->getDefault($session);
return $asset->addMissing($assetUrl); return $asset->addMissing($assetUrl);

View file

@ -140,7 +140,7 @@ sub dispatch {
elsif ($fragment eq '.rdf') { elsif ($fragment eq '.rdf') {
return $self->www_viewRdf; return $self->www_viewRdf;
} }
return $self->next::method(); return $self->next::method($fragment);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------

View file

@ -153,6 +153,18 @@ sub cache {
$self->{_cache} = $cache; $self->{_cache} = $cache;
} }
return $self->{_cache}; return $self->{_cache};
#-------------------------------------------------------------------
=head2 clearAsset ( )
Clears out the session asset.
=cut
sub clearAsset {
my $self = shift;
$self->{_asset} = undef;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------

View file

@ -15,6 +15,7 @@
use strict; use strict;
use Test::More; use Test::More;
use Test::MockObject::Extends;
use Test::Deep; use Test::Deep;
use Data::Dumper; use Data::Dumper;
use WebGUI::Test; # Must use this before any other WebGUI modules use WebGUI::Test; # Must use this before any other WebGUI modules
@ -87,11 +88,6 @@ my $utf8
WebGUI::Test->addToCleanup( WebGUI::VersionTag->getWorking( $session ) ); WebGUI::Test->addToCleanup( WebGUI::VersionTag->getWorking( $session ) );
#----------------------------------------------------------------------------
# Tests
plan tests => 25; # Increment this number for each test you create
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# test getUrlPermutation( url ) method # test getUrlPermutation( url ) method
@ -230,4 +226,18 @@ my $output = WebGUI::Content::Asset::handler( $notModifiedSession );
isnt( $notModifiedSession->http->getStatus, "304", "logged in user doesn't get 304" ); isnt( $notModifiedSession->http->getStatus, "304", "logged in user doesn't get 304" );
ok( !$notModifiedSession->closed, "session is not closed" ); ok( !$notModifiedSession->closed, "session is not closed" );
# Test that requesting a URL that doesn't exist, but one of the permutations does exist, returns undef
#my $default = WebGUI::Asset->getDefault($session);
#my $mockDefault = Test::MockObject::Extends->new($default);
#$mockDefault->mock('addMissing', sub { return "add missing" });
$session->request->setup_body({ });
my $nonexistant_url = WebGUI::Asset->getDefault($session)->get('url');
$nonexistant_url = join '/', $nonexistant_url, 'nothing_here_to_see';
$output = WebGUI::Content::Asset::dispatch( $session, $nonexistant_url );
is $output, undef, 'getting a URL which does not exist returns undef';
is $session->asset, undef, '... session asset is not set';
done_testing;
#vim:ft=perl #vim:ft=perl