aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-07-23 21:04:11 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-07-23 21:04:11 -0400
commit8b3d2ab0bcd5b79c30d6e07dd8f363431d94dd72 (patch)
treecb150e0c08a043668f0014c3ac84cc7149f0c6a8
parent1dec41278de8b0f33e1e87ec2f36cdd603528fad (diff)
downloadikiwiki-8b3d2ab0bcd5b79c30d6e07dd8f363431d94dd72.tar
ikiwiki-8b3d2ab0bcd5b79c30d6e07dd8f363431d94dd72.tar.gz
test suite and partial fix for encoding issues in link renaming
-rw-r--r--IkiWiki/Plugin/link.pm2
-rwxr-xr-xt/renamepage.t7
2 files changed, 7 insertions, 2 deletions
diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm
index 515a62bce..529610710 100644
--- a/IkiWiki/Plugin/link.pm
+++ b/IkiWiki/Plugin/link.pm
@@ -91,7 +91,7 @@ sub renamepage (@) { #{{{
my $linktext=$2;
my $link=$linktext;
if (bestlink($page, $2) eq $old) {
- $link=$new;
+ $link=IkiWiki::pagetitle($new, 1);
if ($linktext =~ m/.*\/*?[A-Z]/) {
# preserve leading cap of last component
my @bits=split("/", $link);
diff --git a/t/renamepage.t b/t/renamepage.t
index ccb33d817..1a607370b 100755
--- a/t/renamepage.t
+++ b/t/renamepage.t
@@ -1,7 +1,7 @@
#!/usr/bin/perl
use warnings;
use strict;
-use Test::More tests => 15;
+use Test::More tests => 20;
use Encode;
BEGIN { use_ok("IkiWiki"); }
@@ -43,3 +43,8 @@ is(try("z", "foo" => "bar", "[[foo#anchor]]"), "[[bar#anchor]]"); # with anchor
is(try("z", "foo" => "bar", "[[xxx|foo#anchor]]"), "[[xxx|bar#anchor]]"); # with anchor
is(try("z", "foo" => "bar", "[[!moo ]]"), "[[!moo ]]"); # preprocessor directive unchanged
is(try("bugs", "bugs/foo" => "wishlist/bar", "[[foo]]"), "[[wishlist/bar]]"); # subpage link
+is(try("z", "foo_bar" => "bar", "[[foo_bar]]"), "[[bar]]"); # old link with underscore
+is(try("z", "foo" => "bar_foo", "[[foo]]"), "[[bar_foo]]"); # new link with underscore
+is(try("z", "foo" => "bar__".ord("(")."__", "[[foo]]"), "[[bar(]]"); # new link with escaped chars
+is(try("z", "foo__".ord("(")."__" => "bar", "[[foo(]]"), "[[bar(]]"); # old link with escaped chars
+is(try("z", "foo__".ord("(")."__" => "bar__".ord(")")."__", "[[foo(]]"), "[[bar)]]"); # both with escaped chars