X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=t%2Fautoindex.t;h=04d668fbc8fc159b54194852a9db5119b4b52ae6;hb=dca6679a5442581746daf89e78ee83712a017b98;hp=b47f2e0eb867603784100921458c59204cc88067;hpb=58e854555a5af63c811185e1196fee950ea2f58d;p=ikiwiki.git diff --git a/t/autoindex.t b/t/autoindex.t index b47f2e0eb..04d668fbc 100755 --- a/t/autoindex.t +++ b/t/autoindex.t @@ -3,10 +3,11 @@ package IkiWiki; use warnings; use strict; -use Test::More; +use Test::More tests => 28; BEGIN { use_ok("IkiWiki"); } BEGIN { use_ok("IkiWiki::Render"); } +BEGIN { use_ok("IkiWiki::Plugin::aggregate"); } BEGIN { use_ok("IkiWiki::Plugin::autoindex"); } BEGIN { use_ok("IkiWiki::Plugin::html"); } BEGIN { use_ok("IkiWiki::Plugin::mdwn"); } @@ -45,9 +46,24 @@ foreach my $page (qw(tags/numbers deleted/bar reinstated reinstated/foo gone/bar writefile("$page.html", "t/tmp", "your ad here"); } +# a directory containing only an internal page shouldn't be indexed +$pagesources{"has_internal/internal"} = "has_internal/internal._aggregated"; +$pagemtime{"has_internal/internal"} = 123456789; +$pagectime{"has_internal/internal"} = 123456789; +writefile("has_internal/internal._aggregated", "t/tmp", "this page is internal"); + +# a directory containing only an attachment should be indexed +$pagesources{"attached/pie.jpg"} = "attached/pie.jpg"; +$pagemtime{"attached/pie.jpg"} = 123456789; +$pagectime{"attached/pie.jpg"} = 123456789; +writefile("attached/pie.jpg", "t/tmp", "I lied, this isn't a real JPEG"); + # "gone" disappeared just before this refresh pass so it still has a mtime $pagemtime{gone} = $pagectime{gone} = 1000000; +my %pages; +my @del; + IkiWiki::Plugin::autoindex::refresh(); # these pages are still on record as having been deleted, because they have @@ -62,13 +78,32 @@ ok(! -f "t/tmp/gone.mdwn"); ok(! exists $wikistate{autoindex}{deleted}{expunged}); ok(! -f "t/tmp/expunged.mdwn"); +# a directory containing only an internal page shouldn't be indexed +ok(! exists $wikistate{autoindex}{deleted}{has_internal}); +ok(! -f "t/tmp/has_internal.mdwn"); + # this page was re-created, so it drops off the radar ok(! exists $wikistate{autoindex}{deleted}{reinstated}); ok(! -f "t/tmp/reinstated.mdwn"); -# needs creating +# needs creating (deferred; part of the autofile mechanism now) ok(! exists $wikistate{autoindex}{deleted}{tags}); +%pages = (); +@del = (); +is($autofiles{"tags.mdwn"}{plugin}, "autoindex"); +IkiWiki::gen_autofile("tags.mdwn", \%pages, \@del); +is_deeply(\%pages, {"t/tmp/tags" => 1}) || diag explain \%pages; +is_deeply(\@del, []) || diag explain \@del; ok(-s "t/tmp/tags.mdwn"); -done_testing(); +# needs creating because of an attachment +ok(! exists $wikistate{autoindex}{deleted}{attached}); +%pages = (); +@del = (); +is($autofiles{"attached.mdwn"}{plugin}, "autoindex"); +IkiWiki::gen_autofile("attached.mdwn", \%pages, \@del); +is_deeply(\%pages, {"t/tmp/attached" => 1}) || diag explain \%pages; +is_deeply(\@del, []) || diag explain \@del; +ok(-s "t/tmp/attached.mdwn"); + 1;