summaryrefslogtreecommitdiff
path: root/t/urlto.t
blob: db0bc6aced97388d1ce49b8219d9c5c35a889d6b (plain)
  1. #!/usr/bin/perl
  2. use warnings;
  3. use strict;
  4. use Test::More tests => 24;
  5. BEGIN { use_ok("IkiWiki"); }
  6. $IkiWiki::config{srcdir} = '/does/not/exist/';
  7. $IkiWiki::config{usedirs} = 1;
  8. $IkiWiki::config{htmlext} = "HTML";
  9. $IkiWiki::config{wiki_file_chars} = "A-Za-z0-9._";
  10. $IkiWiki::config{url} = "http://smcv.example.co.uk";
  11. $IkiWiki::config{cgiurl} = "http://smcv.example.co.uk/cgi-bin/ikiwiki.cgi";
  12. is(IkiWiki::checkconfig(), 1);
  13. # absolute version
  14. is(IkiWiki::cgiurl(cgiurl => $config{cgiurl}), "http://smcv.example.co.uk/cgi-bin/ikiwiki.cgi");
  15. is(IkiWiki::cgiurl(cgiurl => $config{cgiurl}, do => 'badger'), "http://smcv.example.co.uk/cgi-bin/ikiwiki.cgi?do=badger");
  16. is(IkiWiki::urlto('index', undef, 1), "http://smcv.example.co.uk/");
  17. is(IkiWiki::urlto('stoats', undef, 1), "http://smcv.example.co.uk/stoats/");
  18. # FIXME: this actually produces / not the desired absolute URL
  19. #is(IkiWiki::urlto('', undef, 1), "http://smcv.example.co.uk/");
  20. # "local" (absolute path within site) version (default for cgiurl)
  21. is(IkiWiki::cgiurl(), "/cgi-bin/ikiwiki.cgi");
  22. is(IkiWiki::cgiurl(do => 'badger'), "/cgi-bin/ikiwiki.cgi?do=badger");
  23. is(IkiWiki::baseurl(undef), "/");
  24. is(IkiWiki::urlto('index', undef), "/");
  25. is(IkiWiki::urlto('index'), "/");
  26. is(IkiWiki::urlto('stoats', undef), "/stoats/");
  27. is(IkiWiki::urlto('stoats'), "/stoats/");
  28. is(IkiWiki::urlto(''), "/");
  29. # fully-relative version (default for urlto and baseurl)
  30. is(IkiWiki::baseurl('badger/mushroom'), "../../");
  31. is(IkiWiki::urlto('badger/mushroom', 'snake'), "../badger/mushroom/");
  32. is(IkiWiki::urlto('', 'snake'), "../");
  33. is(IkiWiki::urlto('', 'penguin/herring'), "../../");
  34. # explicit cgiurl override
  35. is(IkiWiki::cgiurl(cgiurl => 'https://foo/ikiwiki'), "https://foo/ikiwiki");
  36. is(IkiWiki::cgiurl(do => 'badger', cgiurl => 'https://foo/ikiwiki'), "https://foo/ikiwiki?do=badger");
  37. # with url and cgiurl on different sites, "local" degrades to absolute
  38. $IkiWiki::config{url} = "http://example.co.uk/~smcv";
  39. $IkiWiki::config{cgiurl} = "http://dynamic.example.co.uk/~smcv/ikiwiki.cgi";
  40. is(IkiWiki::checkconfig(), 1);
  41. is(IkiWiki::cgiurl(), "http://dynamic.example.co.uk/~smcv/ikiwiki.cgi");
  42. is(IkiWiki::baseurl(undef), "http://example.co.uk/~smcv/");
  43. is(IkiWiki::urlto('stoats', undef), "http://example.co.uk/~smcv/stoats/");
  44. # FIXME: this actually produces ./http://example.co.uk/~smcv/
  45. #is(IkiWiki::urlto('', undef), "http://example.co.uk/~smcv/");