X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/524a78eaca2bb7bbf06b96797f3e9a4fd6efa4de..82a4fb49aea0d2adca3db1a65ac086d01c21df6f:/t/urlto.t diff --git a/t/urlto.t b/t/urlto.t index db0bc6ace..50cad88dd 100755 --- a/t/urlto.t +++ b/t/urlto.t @@ -1,7 +1,7 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 24; +use Test::More tests => 31; BEGIN { use_ok("IkiWiki"); } @@ -19,8 +19,7 @@ is(IkiWiki::cgiurl(cgiurl => $config{cgiurl}), "http://smcv.example.co.uk/cgi-bi is(IkiWiki::cgiurl(cgiurl => $config{cgiurl}, do => 'badger'), "http://smcv.example.co.uk/cgi-bin/ikiwiki.cgi?do=badger"); is(IkiWiki::urlto('index', undef, 1), "http://smcv.example.co.uk/"); is(IkiWiki::urlto('stoats', undef, 1), "http://smcv.example.co.uk/stoats/"); -# FIXME: this actually produces / not the desired absolute URL -#is(IkiWiki::urlto('', undef, 1), "http://smcv.example.co.uk/"); +is(IkiWiki::urlto('', undef, 1), "http://smcv.example.co.uk/"); # "local" (absolute path within site) version (default for cgiurl) is(IkiWiki::cgiurl(), "/cgi-bin/ikiwiki.cgi"); @@ -42,12 +41,22 @@ is(IkiWiki::urlto('', 'penguin/herring'), "../../"); is(IkiWiki::cgiurl(cgiurl => 'https://foo/ikiwiki'), "https://foo/ikiwiki"); is(IkiWiki::cgiurl(do => 'badger', cgiurl => 'https://foo/ikiwiki'), "https://foo/ikiwiki?do=badger"); -# with url and cgiurl on different sites, "local" degrades to absolute +# with url and cgiurl on different sites, "local" degrades to protocol-relative $IkiWiki::config{url} = "http://example.co.uk/~smcv"; $IkiWiki::config{cgiurl} = "http://dynamic.example.co.uk/~smcv/ikiwiki.cgi"; is(IkiWiki::checkconfig(), 1); -is(IkiWiki::cgiurl(), "http://dynamic.example.co.uk/~smcv/ikiwiki.cgi"); -is(IkiWiki::baseurl(undef), "http://example.co.uk/~smcv/"); -is(IkiWiki::urlto('stoats', undef), "http://example.co.uk/~smcv/stoats/"); -# FIXME: this actually produces ./http://example.co.uk/~smcv/ -#is(IkiWiki::urlto('', undef), "http://example.co.uk/~smcv/"); +is(IkiWiki::cgiurl(), "//dynamic.example.co.uk/~smcv/ikiwiki.cgi"); +is(IkiWiki::baseurl(undef), "//example.co.uk/~smcv/"); +is(IkiWiki::urlto('stoats', undef), "//example.co.uk/~smcv/stoats/"); +is(IkiWiki::urlto('', undef), "//example.co.uk/~smcv/"); + +# with url and cgiurl on different schemes, "local" degrades to absolute for +# CGI but protocol-relative for static content, to avoid the CGI having +# mixed content +$IkiWiki::config{url} = "http://example.co.uk/~smcv"; +$IkiWiki::config{cgiurl} = "https://dynamic.example.co.uk/~smcv/ikiwiki.cgi"; +is(IkiWiki::checkconfig(), 1); +is(IkiWiki::cgiurl(), "https://dynamic.example.co.uk/~smcv/ikiwiki.cgi"); +is(IkiWiki::baseurl(undef), "//example.co.uk/~smcv/"); +is(IkiWiki::urlto('stoats', undef), "//example.co.uk/~smcv/stoats/"); +is(IkiWiki::urlto('', undef), "//example.co.uk/~smcv/");