From 5674e7fc1273800554c23ad6194e8a06dee851ae Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sat, 7 Apr 2012 17:52:29 +0100 Subject: prune: do not prune beyond an optional base directory, and add a test Previously, prune("wiki/srcdir/sandbox/test.mdwn") could delete srcdir or even wiki, if they happened to be empty. This is rarely what you want: there's usually some base directory (destdir, srcdir, transientdir or another subdirectory of wikistatedir) beyond which you do not want to delete. --- t/prune.t | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 t/prune.t (limited to 't') diff --git a/t/prune.t b/t/prune.t new file mode 100755 index 000000000..8c3925e9e --- /dev/null +++ b/t/prune.t @@ -0,0 +1,23 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Test::More tests => 6; +use File::Path qw(make_path remove_tree); + +BEGIN { use_ok("IkiWiki"); } +BEGIN { use_ok("IkiWiki::Render"); } + +%config=IkiWiki::defaultconfig(); + +remove_tree("t/tmp"); + +make_path("t/tmp/srcdir/a/b/c"); +make_path("t/tmp/srcdir/d/e/f"); +writefile("a/b/c/d.mdwn", "t/tmp/srcdir", "foo"); +writefile("d/e/f/g.mdwn", "t/tmp/srcdir", "foo"); +IkiWiki::prune("t/tmp/srcdir/d/e/f/g.mdwn"); +ok(-d "t/tmp/srcdir"); +ok(! -e "t/tmp/srcdir/d"); +IkiWiki::prune("t/tmp/srcdir/a/b/c/d.mdwn", "t/tmp/srcdir"); +ok(-d "t/tmp/srcdir"); +ok(! -e "t/tmp/srcdir/a"); -- cgit v1.2.3