X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/a10d86bbaebee2d6a30b66b4366d3f0247264678..ebf54a6b4328b0cf568d8e07e7fb8e4a89e95642:/t/git-cgi.t
diff --git a/t/git-cgi.t b/t/git-cgi.t
index c0d087026..3556bc038 100755
--- a/t/git-cgi.t
+++ b/t/git-cgi.t
@@ -1,7 +1,9 @@
#!/usr/bin/perl
+use utf8;
use warnings;
use strict;
+use Encode;
use Test::More;
BEGIN {
@@ -35,7 +37,7 @@ my $installed = $ENV{INSTALLED_TESTS};
my @command;
if ($installed) {
- @command = qw(ikiwiki);
+ @command = qw(ikiwiki --plugin inline);
}
else {
ok(! system("make -s ikiwiki.out"));
@@ -133,7 +135,7 @@ sub run_cgi {
} keys(%envvars);
});
- return $out;
+ return decode_utf8($out);
}
sub run_git {
@@ -165,6 +167,12 @@ sub test {
write_old_file('doc/writable/two.mdwn', 't/tmp/in', 'This is the second test page');
write_old_file('doc/writable/three.mdwn', 't/tmp/in', 'This is the third test page');
write_old_file('doc/writable/three.bin', 't/tmp/in', 'An attachment');
+ write_old_file('doc/writable/blog.mdwn', 't/tmp/in',
+ '[[!inline pages="writable/blog/*" actions=yes rootpage=writable/blog postform=yes show=0]]');
+ write_old_file('doc/writable/__172__blog.mdwn', 't/tmp/in',
+ '[[!inline pages="writable/¬blog/*" actions=yes rootpage="writable/¬blog" postform=yes show=0]]');
+ write_old_file('doc/writable/ä¸æ.mdwn', 't/tmp/in',
+ '[[!inline pages="writable/ä¸æ/*" actions=yes rootpage="writable/ä¸æ" postform=yes show=0]]');
unless ($installed) {
ok(! system(qw(cp -pRL doc/wikiicons t/tmp/in/doc/)));
@@ -315,6 +323,33 @@ sub test {
like($content, qr{This is the third test page});
$content = readfile('t/tmp/out/writable/three.bin');
like($content, qr{An attachment});
+
+ $content = readfile('t/tmp/out/writable/blog/index.html');
+ like($content, qr{ 'get',
+ params => {
+ do => 'blog',
+ from => 'writable/blog',
+ subpage => '1',
+ title => 'hello',
+ },
+ );
+ like($content, qr{});
+
+ # Regression test for a bug in which we couldn't use an
+ # alphanumeric, but non-ASCII, root page.
+ $content = readfile('t/tmp/out/writable/ä¸æ/index.html');
+ like($content, qr{ 'get',
+ params => {
+ do => 'blog',
+ from => 'writable/ä¸æ',
+ subpage => '1',
+ title => 'hello',
+ },
+ );
+ like($content, qr{});
+ unlike($content, qr{Error: bad page name});
}
test();