Fix the same problem with form params in getRequestedUrl as in

getRefererUrl and add tests to detect it.
This commit is contained in:
Colin Kuskie 2006-09-25 04:47:05 +00:00
parent eea7b941c9
commit 86a5cb9128
2 changed files with 9 additions and 3 deletions

View file

@ -212,7 +212,7 @@ sub getRequestedUrl {
unless ($self->{_requestedUrl}) {
$self->{_requestedUrl} = $self->session->request->uri;
my $gateway = $self->session->config->get("gateway");
$self->{_requestedUrl} =~ s/^$gateway(.*)$/$1/;
$self->{_requestedUrl} =~ s/^$gateway([^?]*)\??.*$/$1/;
}
return $self->{_requestedUrl};
}
@ -367,7 +367,7 @@ sub session {
=head2 setSiteURL ( )
Sets an alternate site url.
Sets an alternate site url for this session variable.
=cut

View file

@ -134,6 +134,12 @@ is ($session->url->getRequestedUrl, 'path1/file1', 'getRequestedUrl, fetch');
$requestedUrl = '/path2/file2';
is ($session->url->getRequestedUrl, 'path1/file1', 'getRequestedUrl, check cache of previous result');
$session->url->{_requestedUrl} = undef; ##Manually clear cached value
$requestedUrl = '/path2/file2?param1=one;param2=two';
is ($session->url->getRequestedUrl, 'path2/file2', 'getRequestedUrl, does not return params');
$session->url->{_requestedUrl} = undef; ##Manually clear cached value
$requestedUrl = '/path1/file1';
is ($session->url->page, '/path1/file1', 'page with no args returns getRequestedUrl through gateway');
$url2 = 'http://'.$session->config->get('sitename')->[0].'/path1/file1';
@ -141,7 +147,7 @@ is ($session->url->page('',1), $url2, 'page, withFullUrl includes method and sit
##getReferrerUrl tests
our %mockEnv = (HTTP_REFERER => undef);
our %mockEnv = %ENV;
$session->{_env}->{_env} = \%mockEnv;