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:
parent
5608a43916
commit
587ff397b5
5 changed files with 30 additions and 2 deletions
|
|
@ -1,5 +1,6 @@
|
|||
7.10.1
|
||||
- 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
|
||||
- fixed #11812: Checking www_ajaxSave's response in the cart js, urlencoding post parameters
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ sub dispatch {
|
|||
elsif ($fragment eq '.rdf') {
|
||||
return $self->www_viewRdf;
|
||||
}
|
||||
return $self->next::method();
|
||||
return $self->next::method($fragment);
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -84,6 +84,7 @@ sub dispatch {
|
|||
return $output if defined $output;
|
||||
}
|
||||
}
|
||||
$session->clearAsset;
|
||||
if ($session->var->isAdminOn) {
|
||||
my $asset = WebGUI::Asset->newByUrl($session, $session->url->getRefererUrl) || WebGUI::Asset->getDefault($session);
|
||||
return $asset->addMissing($assetUrl);
|
||||
|
|
|
|||
|
|
@ -110,6 +110,19 @@ sub asset {
|
|||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 clearAsset ( )
|
||||
|
||||
Clears out the session asset.
|
||||
|
||||
=cut
|
||||
|
||||
sub clearAsset {
|
||||
my $self = shift;
|
||||
$self->{_asset} = undef;
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
=head2 close
|
||||
|
||||
Cleans up a WebGUI session information from memory and disconnects from any resources opened by the session.
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ use FindBin;
|
|||
use strict;
|
||||
use lib "$FindBin::Bin/../lib";
|
||||
use Test::More;
|
||||
use Test::MockObject::Extends;
|
||||
use Test::Deep;
|
||||
use Data::Dumper;
|
||||
use WebGUI::Test; # Must use this before any other WebGUI modules
|
||||
|
|
@ -92,7 +93,7 @@ WebGUI::Test->addToCleanup( WebGUI::VersionTag->getWorking( $session ) );
|
|||
#----------------------------------------------------------------------------
|
||||
# Tests
|
||||
|
||||
plan tests => 20; # Increment this number for each test you create
|
||||
plan tests => 22; # Increment this number for each test you create
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# test getUrlPermutation( url ) method
|
||||
|
|
@ -204,4 +205,16 @@ $output = WebGUI::Content::Asset::dispatch( $session );
|
|||
is $output, 'www_view one', 'an empty URL returns the default asset';
|
||||
$session->setting->set('defaultPage', $originalDefaultPage);
|
||||
|
||||
# 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';
|
||||
|
||||
#vim:ft=perl
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue