]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blob - t/inline.t
Run autopkgtest tests using autodep8 and the pkg-perl team's infrastructure
[git.ikiwiki.info.git] / t / inline.t
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use Test::More;
5 use IkiWiki;
7 my $installed = $ENV{INSTALLED_TESTS};
9 my @command;
10 if ($installed) {
11         @command = qw(ikiwiki);
12 }
13 else {
14         ok(! system("make -s ikiwiki.out"));
15         @command = qw(perl -I. ./ikiwiki.out
16                 --underlaydir=underlays/basewiki
17                 --set underlaydirbase=underlays
18                 --templatedir=templates);
19 }
21 push @command, qw(--set usedirs=0 --plugin inline
22         --url=http://example.com --cgiurl=http://example.com/ikiwiki.cgi
23         --rss --atom t/tmp/in t/tmp/out --verbose);
25 my $blob;
27 ok(! system("rm -rf t/tmp"));
28 ok(! system("mkdir t/tmp"));
30 sub write_old_file {
31         my $name = shift;
32         my $content = shift;
34         writefile($name, "t/tmp/in", $content);
35         ok(utime(333333333, 333333333, "t/tmp/in/$name"));
36 }
38 write_old_file("protagonists.mdwn",
39         '[[!inline pages="protagonists/*" rootpage="protagonists/new"]]');
40 write_old_file("friends.mdwn",
41         '[[!inline pages="friends/*" postform=yes sort=title show=2]]');
42 write_old_file("antagonists.mdwn",
43         '[[!inline pages="antagonists/*"]]');
44 write_old_file("enemies.mdwn",
45         '[[!inline pages="enemies/*" postform=no rootpage=enemies sort=title reverse=yes show=2]]');
46 foreach my $page (qw(protagonists/shepard protagonists/link
47                 antagonists/saren antagonists/ganondorf
48                 friends/garrus friends/liara friends/midna friends/telma
49                 enemies/benezia enemies/geth enemies/rachni
50                 enemies/zant)) {
51         write_old_file("$page.mdwn", "this page is {$page}");
52 }
54 ok(! system(@command));
55 ok(! system(@command, "--refresh"));
57 $blob = readfile("t/tmp/out/protagonists.html");
58 like($blob, qr{Add a new post}, 'rootpage=yes gives postform');
59 like($blob, qr{<input type="hidden" name="from" value="protagonists/new"},
60         'explicit rootpage is /protagonists/new');
62 $blob = readfile("t/tmp/out/friends.html");
63 like($blob, qr{Add a new post}, 'postform=yes forces postform');
64 like($blob, qr{<input type="hidden" name="from" value="friends"},
65         'implicit rootpage is /friends');
66 like($blob, qr[this page is {friends/garrus}.*this page is {friends/liara}]s,
67         'first two pages in desired sort order are present');
68 unlike($blob, qr{friends/(?:midna|telma)},
69         'pages excluded by show should not be present');
71 $blob = readfile("t/tmp/out/antagonists.html");
72 unlike($blob, qr{Add a new post}, 'default is no postform');
74 $blob = readfile("t/tmp/out/enemies.html");
75 unlike($blob, qr{Add a new post}, 'postform=no forces no postform');
76 like($blob, qr[this page is {enemies/zant}.*this page is {enemies/rachni}]s,
77         'first two pages in reversed sort order are present');
78 unlike($blob, qr{enemies/(?:benezia|geth)},
79         'pages excluded by show should not be present');
81 done_testing;