Rename show parameter of [[!inline]] and [[!pagestats]] to limit
[ikiwiki] / t / inline.t
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use Test::More;
5 use IkiWiki;
6
7 my $blob;
8
9 ok(! system("rm -rf t/tmp"));
10 ok(! system("mkdir t/tmp"));
11
12 sub write_old_file {
13         my $name = shift;
14         my $content = shift;
15
16         writefile($name, "t/tmp/in", $content);
17         ok(utime(333333333, 333333333, "t/tmp/in/$name"));
18 }
19
20 write_old_file("protagonists.mdwn",
21         '[[!inline pages="protagonists/*" rootpage="protagonists/new"]]');
22 write_old_file("friends.mdwn",
23         '[[!inline pages="friends/*" postform=yes sort=title limit=2]]');
24 write_old_file("antagonists.mdwn",
25         '[[!inline pages="antagonists/*"]]');
26 # using old spelling of "limit" ("show") to verify backwards compat
27 write_old_file("enemies.mdwn",
28         '[[!inline pages="enemies/*" postform=no rootpage=enemies sort=title reverse=yes show=2]]');
29 foreach my $page (qw(protagonists/shepard protagonists/link
30                 antagonists/saren antagonists/ganondorf
31                 friends/garrus friends/liara friends/midna friends/telma
32                 enemies/benezia enemies/geth enemies/rachni
33                 enemies/zant)) {
34         write_old_file("$page.mdwn", "this page is {$page}");
35 }
36
37 ok(! system("make -s ikiwiki.out"));
38
39 my $command = "perl -I. ./ikiwiki.out -set usedirs=0 -plugin inline -url=http://example.com -cgiurl=http://example.com/ikiwiki.cgi -rss -atom -underlaydir=underlays/basewiki -set underlaydirbase=underlays -templatedir=templates t/tmp/in t/tmp/out -verbose";
40
41 ok(! system($command));
42
43 ok(! system("$command -refresh"));
44
45 $blob = readfile("t/tmp/out/protagonists.html");
46 like($blob, qr{Add a new post}, 'rootpage=yes gives postform');
47 like($blob, qr{<input type="hidden" name="from" value="protagonists/new"},
48         'explicit rootpage is /protagonists/new');
49
50 $blob = readfile("t/tmp/out/friends.html");
51 like($blob, qr{Add a new post}, 'postform=yes forces postform');
52 like($blob, qr{<input type="hidden" name="from" value="friends"},
53         'implicit rootpage is /friends');
54 like($blob, qr[this page is {friends/garrus}.*this page is {friends/liara}]s,
55         'first two pages in desired sort order are present');
56 unlike($blob, qr{friends/(?:midna|telma)},
57         'pages excluded by limit should not be present');
58
59 $blob = readfile("t/tmp/out/antagonists.html");
60 unlike($blob, qr{Add a new post}, 'default is no postform');
61
62 $blob = readfile("t/tmp/out/enemies.html");
63 unlike($blob, qr{Add a new post}, 'postform=no forces no postform');
64 like($blob, qr[this page is {enemies/zant}.*this page is {enemies/rachni}]s,
65         'first two pages in reversed sort order are present');
66 unlike($blob, qr{enemies/(?:benezia|geth)},
67         'pages excluded by show should not be present');
68
69 done_testing;