begin converting Session/Url.t to PseudoRequest
This commit is contained in:
parent
dd53243b08
commit
14e907d589
1 changed files with 32 additions and 16 deletions
|
|
@ -13,6 +13,7 @@ use strict;
|
|||
use lib "$FindBin::Bin/../lib";
|
||||
|
||||
use WebGUI::Test;
|
||||
use WebGUI::PseudoRequest;
|
||||
use WebGUI::Session;
|
||||
use WebGUI::Asset;
|
||||
|
||||
|
|
@ -20,7 +21,7 @@ my @getRefererUrlTests = (
|
|||
{
|
||||
input => undef,
|
||||
output => undef,
|
||||
comment => 'getRerererUrl returns undef unless there is a referrer',
|
||||
comment => 'getRefererUrl returns undef unless there is a referrer',
|
||||
},
|
||||
{
|
||||
input => 'http://www.domain.com/myUrl.html',
|
||||
|
|
@ -56,6 +57,9 @@ plan tests => 46 + scalar(@getRefererUrlTests);
|
|||
|
||||
my $session = WebGUI::Test->session;
|
||||
|
||||
my $pseudoRequest = WebGUI::PseudoRequest->new();
|
||||
$session->{_request} = $pseudoRequest;
|
||||
|
||||
#disable caching
|
||||
my $preventProxyCache = $session->setting->get('preventProxyCache');
|
||||
|
||||
|
|
@ -193,26 +197,27 @@ my $originalRequest = $session->request; ##Save the original request object
|
|||
|
||||
is($session->url->getRequestedUrl, undef, 'getRequestedUrl returns undef unless it has a request object');
|
||||
|
||||
my $newRequest = Test::MockObject->new;
|
||||
my $requestedUrl = 'empty';
|
||||
$newRequest->set_bound('uri', \$requestedUrl);
|
||||
$session->{_request} = $newRequest;
|
||||
#my $newRequest = Test::MockObject->new;
|
||||
#my $requestedUrl = 'empty';
|
||||
#$newRequest->set_bound('uri', \$requestedUrl);
|
||||
#$session->{_request} = $newRequest;
|
||||
|
||||
##Validate new MockObject
|
||||
|
||||
$pseudoRequest->uri('empty');
|
||||
is($session->request->uri, 'empty', 'Validate Mock Object operation');
|
||||
|
||||
$requestedUrl = 'full';
|
||||
$pseudoRequest->uri('full');
|
||||
is($session->request->uri, 'full', 'Validate Mock Object operation #2');
|
||||
|
||||
$requestedUrl = '/path1/file1';
|
||||
$pseudoRequest->uri('/path1/file1');
|
||||
is($session->url->getRequestedUrl, 'path1/file1', 'getRequestedUrl, fetch');
|
||||
|
||||
$requestedUrl = '/path2/file2';
|
||||
$pseudoRequest->uri('/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';
|
||||
$pseudoRequest->uri('/path2/file2?param1=one;param2=two');
|
||||
is($session->url->getRequestedUrl, 'path2/file2', 'getRequestedUrl, does not return params');
|
||||
|
||||
#######################################
|
||||
|
|
@ -225,22 +230,22 @@ my $sessionAsset = $session->asset;
|
|||
$session->asset(undef);
|
||||
|
||||
$session->url->{_requestedUrl} = undef; ##Manually clear cached value
|
||||
$requestedUrl = '/path1/file1';
|
||||
is($session->url->page, $requestedUrl, 'page with no args returns getRequestedUrl through gateway');
|
||||
$pseudoRequest->uri('/path1/file1');
|
||||
is($session->url->page, '/path1/file1', 'page with no args returns getRequestedUrl through gateway');
|
||||
|
||||
is($session->url->page('op=viewHelpTOC;topic=Article'), $requestedUrl.'?op=viewHelpTOC;topic=Article', 'page: pairs are appended');
|
||||
is($session->url->page('op=viewHelpTOC;topic=Article'), '/path1/file1?op=viewHelpTOC;topic=Article', 'page: pairs are appended');
|
||||
|
||||
$url2 = 'http://'.$session->config->get('sitename')->[0].$requestedUrl;
|
||||
$url2 = 'http://'.$session->config->get('sitename')->[0].'/path1/file1';
|
||||
is($session->url->page('',1), $url2, 'page: withFullUrl includes method and sitename');
|
||||
|
||||
$session->setting->set('preventProxyCache', 0);
|
||||
|
||||
is($session->url->page('','',1), $requestedUrl, 'page: skipPreventProxyCache is a no-op with preventProxyCache off in settings');
|
||||
is($session->url->page('','',1), '/path1/file1', 'page: skipPreventProxyCache is a no-op with preventProxyCache off in settings');
|
||||
$session->setting->set('preventProxyCache', 1);
|
||||
my $cacheableUrl = $session->url->page('','',1);
|
||||
is($cacheableUrl, $requestedUrl, 'page: skipPreventProxyCache does not change url');
|
||||
is($cacheableUrl, '/path1/file1', 'page: skipPreventProxyCache does not change url');
|
||||
|
||||
like($session->url->page('','',0), qr(^$requestedUrl\?noCache=\d{0,4}:\d+$), 'page: noCache added');
|
||||
like($session->url->page('','',0), qr(^/path1/file1\?noCache=\d{0,4}:\d+$), 'page: noCache added');
|
||||
|
||||
##Restore original setting
|
||||
$session->setting->set('preventProxyCache', $preventProxyCache);
|
||||
|
|
@ -312,6 +317,17 @@ is($session->url->urlize('HOME/PATH1'), 'home/path1', 'urlize: urls are lower ca
|
|||
is($session->url->urlize('home/'), 'home', 'urlize: trailing slashes removed');
|
||||
is($session->url->urlize('home is where the heart is'), 'home-is-where-the-heart-is', 'urlize: makeCompliant translates spaces to dashes');
|
||||
|
||||
#######################################
|
||||
#
|
||||
# getBackToSiteURL
|
||||
#
|
||||
#######################################
|
||||
$sessionAsset = $session->asset;
|
||||
$session->asset(undef);
|
||||
$session->url->{_requestedUrl} = undef; ##Manually clear cached value
|
||||
|
||||
$session->asset($sessionAsset);
|
||||
|
||||
END { ##Always clean-up
|
||||
$session->asset($sessionAsset);
|
||||
$session->config->set('sitename', \@config_sitename);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue