]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - t/conflicts.t
(no commit message)
[git.ikiwiki.info.git] / t / conflicts.t
index 4664e1b6ed4e0404cdd40449de60c5380788fac5..07c392cd3a70ae59992f422124814cd21fdd5b32 100755 (executable)
@@ -2,17 +2,32 @@
 # Tests for bugs relating to conflicting files in the srcdir
 use warnings;
 use strict;
 # Tests for bugs relating to conflicting files in the srcdir
 use warnings;
 use strict;
-use Test::More tests => 92;
+use Test::More tests => 106;
+
+my $installed = $ENV{INSTALLED_TESTS};
+
+my @command;
+if ($installed) {
+       ok(1, "running installed");
+       @command = qw(ikiwiki);
+}
+else {
+       ok(! system("make -s ikiwiki.out"));
+       @command = qw(perl -I. ./ikiwiki.out
+               --underlaydir=underlays/basewiki
+               --set underlaydirbase=underlays
+               --templatedir=templates);
+}
 
 # setup
 my $srcdir="t/tmp/src";
 my $destdir="t/tmp/dest";
 
 # 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 {
        my $testdesc=shift;
 
 # runs ikiwiki to build test site
 sub runiki {
        my $testdesc=shift;
-       ok((! system("perl -I. ./ikiwiki.out -plugin txt -plugin rawhtml -underlaydir=underlays/basewiki -set underlaydirbase=underlays -templatedir=templates $srcdir $destdir @_")),
+       ok((! system(@command, qw(--plugin txt --plugin rawhtml),
+                               $srcdir, $destdir, @_)),
                $testdesc);
 }
 sub refreshiki {
                $testdesc);
 }
 sub refreshiki {
@@ -64,6 +79,19 @@ setupiki("initial setup");
 ok(! system("touch $srcdir/foo.mdwn"));
 refreshiki("conflicting non-page added (page already existing) in refresh");
 
 ok(! system("touch $srcdir/foo.mdwn"));
 refreshiki("conflicting non-page added (page already existing) in refresh");
 
+# Page that renders to a file that is also a subdirectory holding another
+# file.
+newsrcdir();
+ok(! system("touch $srcdir/foo.mdwn"));
+ok(! system("mkdir -p $srcdir/foo/index.html"));
+ok(! system("touch $srcdir/foo/index.html/bar.mdwn"));
+setupiki("conflicting page file and subdirectory");
+newsrcdir();
+ok(! system("touch $srcdir/foo.mdwn"));
+ok(! system("mkdir -p $srcdir/foo/index.html"));
+ok(! system("touch $srcdir/foo/index.html/bar"));
+setupiki("conflicting page file and subdirectory 2");
+
 # Changing a page file into a non-page could also cause ikiwiki to fail.
 newsrcdir();
 ok(! system("touch $srcdir/foo.mdwn"));
 # Changing a page file into a non-page could also cause ikiwiki to fail.
 newsrcdir();
 ok(! system("touch $srcdir/foo.mdwn"));