]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - t/git-cgi.t
(no commit message)
[git.ikiwiki.info.git] / t / git-cgi.t
index dc0c30c5e567af87e800f235add4d641bd203d9c..3556bc0387179bbc2959ff871561f127c9c20276 100755 (executable)
@@ -1,7 +1,9 @@
 #!/usr/bin/perl
 #!/usr/bin/perl
+use utf8;
 use warnings;
 use strict;
 
 use warnings;
 use strict;
 
+use Encode;
 use Test::More;
 
 BEGIN {
 use Test::More;
 
 BEGIN {
@@ -133,7 +135,7 @@ sub run_cgi {
                } keys(%envvars);
        });
 
                } keys(%envvars);
        });
 
-       return $out;
+       return decode_utf8($out);
 }
 
 sub run_git {
 }
 
 sub run_git {
@@ -167,6 +169,10 @@ sub test {
        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/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/)));
 
        unless ($installed) {
                ok(! system(qw(cp -pRL doc/wikiicons t/tmp/in/doc/)));
@@ -329,6 +335,21 @@ sub test {
                },
        );
        like($content, qr{<option selected="selected" value="writable/blog/hello">writable/blog/hello</option>});
                },
        );
        like($content, qr{<option selected="selected" value="writable/blog/hello">writable/blog/hello</option>});
+
+       # 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{<input type="hidden" name="from" value="writable/中文"});
+       $content = run_cgi(method => 'get',
+               params => {
+                       do => 'blog',
+                       from => 'writable/中文',
+                       subpage => '1',
+                       title => 'hello',
+               },
+       );
+       like($content, qr{<option selected="selected" value="writable/中文/hello">writable/中文/hello</option>});
+       unlike($content, qr{Error: bad page name});
 }
 
 test();
 }
 
 test();