diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/replace.t | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/t/replace.t b/t/replace.t new file mode 100755 index 000000000..04791d9f7 --- /dev/null +++ b/t/replace.t @@ -0,0 +1,53 @@ +#!/usr/bin/perl +# Tests for bugs relating to replacing/renaming files in the srcdir. +use warnings; +use strict; +use Test::More 'no_plan'; + +# setup +my $srcdir="t/tmp/src"; +my $destdir="t/tmp/dest"; +ok(! system("make -s ikiwiki.out")); + +# runs ikiwiki to build test site +sub runiki { + ok(! system("perl -I. ./ikiwiki.out -plugin html -underlaydir=underlays/basewiki -set underlaydirbase=underlays -templatedir=templates $srcdir $destdir @_")); +} +sub refreshiki { + runiki(); +} +sub setupiki { + ok(! system("rm -rf $srcdir/.ikiwiki $destdir")); + runiki("--rebuild"); +} +sub newsrcdir { + ok(! system("rm -rf $srcdir $destdir")); + ok(! system("mkdir -p $srcdir")); +} + +# At one point, changing the extension of the source file of a page caused +# ikiwiki to fail. +newsrcdir(); +ok(! system("touch $srcdir/foo.mdwn")); +setupiki(); +ok(! system("mv $srcdir/foo.mdwn $srcdir/foo.html")); +refreshiki(); +ok(! system("mv $srcdir/foo.html $srcdir/foo.mdwn")); +refreshiki(); + +# Changing a non-page file into a page could also cause ikiwiki to fail. +newsrcdir(); +ok(! system("touch $srcdir/foo")); +setupiki(); +ok(! system("mv $srcdir/foo $srcdir/foo.mdwn")); +refreshiki(); + +# Changing a page file into a non-page could also cause ikiwiki to fail. +newsrcdir(); +ok(! system("touch $srcdir/foo.mdwn")); +setupiki(); +ok(! system("mv $srcdir/foo.mdwn $srcdir/foo")); +refreshiki(); + +# cleanup +ok(! system("rm -rf t/tmp")); |