#!/usr/bin/perl use warnings; use strict; use Cwd qw(getcwd); use Test::More; use IkiWiki; my $installed = $ENV{INSTALLED_TESTS}; my @command; if ($installed) { @command = qw(ikiwiki); } else { ok(! system("make -s ikiwiki.out")); @command = ("perl", "-I".getcwd, qw(./ikiwiki.out --underlaydir=underlays/basewiki --set underlaydirbase=underlays --templatedir=templates)); } push @command, qw(--set usedirs=0 --plugin inline --url=http://example.com --cgiurl=http://example.com/ikiwiki.cgi --rss --atom t/tmp/in t/tmp/out --verbose); my $blob; my $add_new_post = gettext("Add a new post titled:"); ok(! system("rm -rf t/tmp")); ok(! system("mkdir t/tmp")); sub write_old_file { my $name = shift; my $content = shift; writefile($name, "t/tmp/in", $content); ok(utime(333333333, 333333333, "t/tmp/in/$name")); } write_old_file("protagonists.mdwn", '[[!inline pages="protagonists/*" rootpage="protagonists/new"]]'); write_old_file("friends.mdwn", '[[!inline pages="friends/*" postform=yes sort=title limit=2]]'); write_old_file("antagonists.mdwn", '[[!inline pages="antagonists/*"]]'); # using old spelling of "limit" ("show") to verify backwards compat write_old_file("enemies.mdwn", '[[!inline pages="enemies/*" postform=no rootpage=enemies sort=title reverse=yes show=2]]'); # to test correct processing of ../ write_old_file("blah/blah/enemies.mdwn", '[[!inline pages="enemies/*" postform=no rootpage=enemies sort=title reverse=yes show=2]]'); foreach my $page (qw(protagonists/shepard protagonists/link antagonists/saren antagonists/ganondorf friends/garrus friends/liara friends/midna friends/telma enemies/benezia enemies/geth enemies/rachni enemies/zant)) { write_old_file("$page.mdwn", "this page is {$page}"); } # test cross-linking between pages as rendered in RSS write_old_file("enemies/zant.mdwn", "this page is {enemies/zant}\n\n". "Zant hates [[friends/Midna]]."); ok(! system(@command)); ok(! system(@command, "--refresh")); $blob = readfile("t/tmp/out/protagonists.html"); like($blob, qr{\Q$add_new_post\E}, 'rootpage=yes gives postform'); like($blob, qr{