From 4ba3c1159272c8070d5dc962ff1634ad6ba21618 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Sun, 3 Feb 2019 13:19:57 +0000 Subject: git-cgi.t: Exercise an alphanumeric, but non-ASCII, root page My previous attempt to reproduce this bug used a non-alphanumeric ASCII character. This is not currently considered to be a valid value for rootpage, although for a "do what I mean" approach, perhaps we should accept it and pass it through titlepage() or linkpage(). Using Chinese characters (which are considered to match [[:alnum:]] even though the Chinese script is not, strictly speaking, an alphabet), as in the original bug report, reproduces the bug. Signed-off-by: Simon McVittie --- t/git-cgi.t | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 't') diff --git a/t/git-cgi.t b/t/git-cgi.t index 79cd62f61..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 { @@ -133,7 +135,7 @@ sub run_cgi { } keys(%envvars); }); - return $out; + return decode_utf8($out); } sub run_git { @@ -169,6 +171,8 @@ sub test { '[[!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/))); @@ -332,24 +336,20 @@ sub test { ); like($content, qr{}); - # This attempts to reproduce the bug from - # doc/bugs/About___37__2F_problem, in which you can't make new posts - # to a blog with a non-ASCII rootpage. - $content = readfile('t/tmp/out/writable/__172__blog/index.html'); - like($content, qr{ 'get', params => { do => 'blog', - from => 'writable/¬blog', + from => 'writable/中文', subpage => '1', title => 'hello', }, ); - like($content, qr{}); + like($content, qr{}); unlike($content, qr{Error: bad page name}); - } } test(); -- cgit v1.2.3