aboutsummaryrefslogtreecommitdiff
path: root/t/urlto.t
blob: 25445579248d2b8e94b4d1a7abf5460d992f084f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl
use warnings;
use strict;
use Test::More tests => 21;

BEGIN { use_ok("IkiWiki"); }

$IkiWiki::config{srcdir} = '/does/not/exist/';
$IkiWiki::config{usedirs} = 1;
$IkiWiki::config{htmlext} = "HTML";
$IkiWiki::config{wiki_file_chars} = "A-Za-z0-9._";

$IkiWiki::config{url} = "http://smcv.example.co.uk";
$IkiWiki::config{cgiurl} = "http://smcv.example.co.uk/cgi-bin/ikiwiki.cgi";
is(IkiWiki::checkconfig(), 1);

# absolute version
is(IkiWiki::cgiurl(cgiurl => $config{cgiurl}), "http://smcv.example.co.uk/cgi-bin/ikiwiki.cgi");
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/");

# "local" (absolute path within site) version (default for cgiurl)
is(IkiWiki::cgiurl(), "/cgi-bin/ikiwiki.cgi");
is(IkiWiki::cgiurl(do => 'badger'), "/cgi-bin/ikiwiki.cgi?do=badger");
is(IkiWiki::baseurl(undef), "/");
is(IkiWiki::urlto('index', undef), "/");
is(IkiWiki::urlto('index'), "/");
is(IkiWiki::urlto('stoats', undef), "/stoats/");
is(IkiWiki::urlto('stoats'), "/stoats/");

# fully-relative version (default for urlto and baseurl)
is(IkiWiki::baseurl('badger/mushroom'), "../../");
is(IkiWiki::urlto('badger/mushroom', 'snake'), "../badger/mushroom/");

# explicit cgiurl override
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
$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/");