From 66b59adde88f10b40f307483c2590709c2e6683f Mon Sep 17 00:00:00 2001
From: Colin Kuskie ^PageUrl; The macro takes a single, optional argument; a URL. The URL will be appended to
+the end of the page's URL. This is mainly useful when you enable Prevent Proxy Caching
+in the WebGUI settings. This Macro may be nested inside other Macros. ^/; - System URL
+^PageUrl(/sub/page);
The URL to the current page (example: /index.pl/pagename).
-The URL to the gateway script (example: /index.pl/).
-
+The URL to the gateway script (example: /).
The macro takes a single, optional argument; a URL. The URL will be appended to +the end of the gateway URL. This is mainly useful when you enable Prevent Proxy Caching +in the WebGUI settings.
+ +^/;home/page will break with Prevent Proxy Caching set because the URL that is made +will look like this: /?noCache=37,1127808995home/page. By passing the URL directly to the +macro, ^/(home/page);, the special param for disabling caching will be placed on the +end, /home/page?noCache=37,1127808995. +
This Macro may be nested inside other Macros.
|, - lastUpdated => 1168623028, + lastUpdated => 1169584181, }, }; diff --git a/t/Macro/PageUrl.t b/t/Macro/PageUrl.t index b4f956052..e7a901f6b 100644 --- a/t/Macro/PageUrl.t +++ b/t/Macro/PageUrl.t @@ -13,7 +13,6 @@ use strict; use lib "$FindBin::Bin/../lib"; use WebGUI::Test; -use WebGUI::Macro::PageUrl; use WebGUI::Session; use Data::Dumper; @@ -21,16 +20,45 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -plan tests => 2; +my $numTests = 5; +$numTests += 1; #For the use_ok + +plan tests => $numTests; + +my $preventProxyCache = $session->setting->get('preventProxyCache'); + +my $macro = 'WebGUI::Macro::PageUrl'; +my $loaded = use_ok($macro); + +SKIP: { + +skip "Unable to load $macro", $numTests-1 unless $loaded; + +$session->setting->set('preventProxyCache', 0) if ($preventProxyCache); my $homeAsset = WebGUI::Asset->getDefault($session); ##Make the homeAsset the default asset in the session. $session->asset($homeAsset); -my $output = WebGUI::Macro::PageUrl::process($session); +my $output; + +$output = WebGUI::Macro::PageUrl::process($session); is($output, $session->url->gateway.$homeAsset->get('url'), 'fetching url for site default asset'); +$output = WebGUI::Macro::PageUrl::process($session, '/sub/page'); +is($output, $session->url->gateway.$homeAsset->get('url').'/sub/page', 'fetching url for site default asset with sub url'); + +$session->setting->set('preventProxyCache', 1); + +$output = WebGUI::Macro::PageUrl::process($session); +like($output, qr{\?noCache=\d+,\d+$}, 'checking the cache settings in the page URL'); + +$output = WebGUI::Macro::PageUrl::process($session, '/sub/page'); +like($output, qr{/sub/page\?noCache=\d+,\d+$}, 'checking the cache settings in the URL are at the end of the page URL'); + +} + TODO: { local $TODO = "Tests to make later"; ok(0, 'Fetch url from locally made asset with known url'); diff --git a/t/Macro/Slash_gatewayUrl.t b/t/Macro/Slash_gatewayUrl.t index b724b8fd4..a2100568c 100644 --- a/t/Macro/Slash_gatewayUrl.t +++ b/t/Macro/Slash_gatewayUrl.t @@ -13,7 +13,6 @@ use strict; use lib "$FindBin::Bin/../lib"; use WebGUI::Test; -use WebGUI::Macro::Slash_gatewayUrl; use WebGUI::Session; use Data::Dumper; @@ -21,11 +20,46 @@ use Test::More; # increment this value for each test you create my $session = WebGUI::Test->session; -plan tests => 1; - ##Note, this is not a test of the gateway method. That is done over ##in t/Session/Url.t All we need to do is make sure that the macro ##fetches the same thing as the method. -my $output = WebGUI::Macro::Slash_gatewayUrl::process($session); +my $numTests = 4; +$numTests += 1; #For the use_ok + +plan tests => $numTests; + +my $preventProxyCache = $session->setting->get('preventProxyCache'); + +my $macro = 'WebGUI::Macro::Slash_gatewayUrl'; +my $loaded = use_ok($macro); + +SKIP: { + +skip "Unable to load $macro", $numTests-1 unless $loaded; + +$session->setting->set('preventProxyCache', 0) if ($preventProxyCache); + +my $output; + +$output = WebGUI::Macro::Slash_gatewayUrl::process($session); is($output, $session->url->gateway, 'fetching site gateway'); + +$output = WebGUI::Macro::Slash_gatewayUrl::process($session, '/foo/bar'); +is($output, $session->url->gateway('/foo/bar'), 'passing URL through to macro'); + +$session->setting->set('preventProxyCache', 1); + +$output = WebGUI::Macro::Slash_gatewayUrl::process($session); +like($output, qr{/\?noCache=\d+,\d+$}, 'checking the cache settings in the URL'); + +$output = WebGUI::Macro::Slash_gatewayUrl::process($session, '/foo/bar'); +like($output, qr{/foo/bar\?noCache=\d+,\d+$}, 'checking the cache settings in the URL are at the end of the URL'); + +$session->setting->set('preventProxyCache', 0); + +} + +END { + $session->setting->set('preventProxyCache', $preventProxyCache); +}