X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ecdfd1b8644bc926db008054ab6192e18351afed..68f4bc14c8dd2dc893065df9e4f6e310190d1940:/t/git.t diff --git a/t/git.t b/t/git.t index ee778ebf0..71195fdfa 100755 --- a/t/git.t +++ b/t/git.t @@ -7,24 +7,36 @@ BEGIN { $dir="/tmp/ikiwiki-test-git.$$"; my $git=`which git`; chomp $git; - if (! -x $git || ! mkdir($dir)) { + if (! -x $git) { eval q{ - use Test::More skip_all => "git not available or could not make test dir" + use Test::More skip_all => "git not available" } } + if (! mkdir($dir)) { + die $@; + } } -use Test::More tests => 18; +use Test::More tests => 26; BEGIN { use_ok("IkiWiki"); } %config=IkiWiki::defaultconfig(); $config{rcs} = "git"; $config{srcdir} = "$dir/src"; +$config{diffurl} = '/nonexistent/cgit/plain/[[file]]'; IkiWiki::loadplugins(); IkiWiki::checkconfig(); +my $makerepo; +if ($ENV{INSTALLED_TESTS}) { + $makerepo = "ikiwiki-makerepo"; +} +else { + $makerepo = "./ikiwiki-makerepo"; +} + ok (mkdir($config{srcdir})); -is (system("./ikiwiki-makerepo git $config{srcdir} $dir/repo"), 0); +is (system("$makerepo git $config{srcdir} $dir/repo"), 0); my @changes; @changes = IkiWiki::rcs_recentchanges(3); @@ -91,4 +103,43 @@ is($changes[0]{pages}[0]{"page"}, "newdir/test5"); IkiWiki::rcs_remove("newdir/test5.mdwn"); IkiWiki::rcs_commit_staged(message => "Remove the 5th page"); +# diffurl escaping +ok(mkdir($config{srcdir}."/diffurl_dir")); +my $test3 = readfile("t/test1.mdwn"); +writefile('test3.mdwn', $config{srcdir}."/diffurl_dir", $test3); +IkiWiki::rcs_add("diffurl_dir/test3.mdwn"); +IkiWiki::rcs_commit( + file => "diffurl_dir/test3.mdwn", + message => "Added a page in diffurl_dir", + token => "moo", +); + +@changes = IkiWiki::rcs_recentchanges(5); + +is($#changes, 4); +is($changes[0]{pages}[0]{"page"}, "diffurl_dir/test3"); + +unlike( + $changes[0]{pages}[0]{"diffurl"}, + qr{%2F}m, + q{path separators are preserved when UTF-8scaping filename} +); + +# do a clean checkout to verify that "empty ident not allowed" is avoided +ok(! system("rm", "-rf", $config{srcdir})); +ok(! system("git", "clone", "$dir/repo", $config{srcdir})); + +writefile('unconfigured_author.mdwn', $config{srcdir}, 'I am an unconfigured git author'); +IkiWiki::rcs_add("unconfigured_author.mdwn"); +IkiWiki::rcs_commit( + file => "unconfigured_author.mdwn", + message => "hello, world", + token => "moo", +); + +@changes = IkiWiki::rcs_recentchanges(6); + +is($#changes, 5); +is($changes[0]{pages}[0]{"page"}, "unconfigured_author"); + system "rm -rf $dir";