avoid error if two source files render the same destination file
[ikiwiki.git] / t / conflicts.t
index 7748c105f6041bd73a75408e60b33f54fdf29a95..81b2c12cb963a8b292559cf8fb61108520077ca2 100755 (executable)
@@ -2,7 +2,7 @@
 # Tests for bugs relating to conflicting files in the srcdir
 use warnings;
 use strict;
-use Test::More 'no_plan';
+use Test::More tests => 76;
 
 # setup
 my $srcdir="t/tmp/src";
@@ -48,6 +48,22 @@ ok(! system("touch $srcdir/foo.mdwn"));
 ok(! system("touch $srcdir/foo.txt"));
 setupiki("conflicting page sources in setup");
 
+# Page and non-page file with same pagename.
+newsrcdir();
+ok(! system("touch $srcdir/foo.mdwn"));
+ok(! system("touch $srcdir/foo"));
+setupiki("conflicting page and non-page in setup");
+newsrcdir();
+ok(! system("touch $srcdir/foo.mdwn"));
+setupiki("initial setup");
+ok(! system("touch $srcdir/foo"));
+refreshiki("conflicting page added (non-page already existing) in refresh");
+newsrcdir();
+ok(! system("touch $srcdir/foo"));
+setupiki("initial setup");
+ok(! system("touch $srcdir/foo.mdwn"));
+refreshiki("conflicting non-page added (page already existing) in refresh");
+
 # Changing a page file into a non-page could also cause ikiwiki to fail.
 newsrcdir();
 ok(! system("touch $srcdir/foo.mdwn"));
@@ -70,6 +86,13 @@ setupiki("initial setup");
 ok(! system("mkdir -p $srcdir/foo"));
 ok(! system("touch $srcdir/foo/index.html"));
 refreshiki("rawhtml file rendered same as existing page in refresh");
+# Inverse added when refreshing
+newsrcdir();
+ok(! system("mkdir -p $srcdir/foo"));
+ok(! system("touch $srcdir/foo/index.html"));
+setupiki("initial setup");
+ok(! system("touch $srcdir/foo.mdwn"));
+refreshiki("page rendered same as existing rawhtml file in refresh");
 # Present during setup
 newsrcdir();
 ok(! system("touch $srcdir/foo.mdwn"));