test suite and partial fix for encoding issues in link renaming
authorJoey Hess <joey@kodama.kitenet.net>
Thu, 24 Jul 2008 01:04:11 +0000 (21:04 -0400)
committerJoey Hess <joey@kodama.kitenet.net>
Thu, 24 Jul 2008 01:04:11 +0000 (21:04 -0400)
IkiWiki/Plugin/link.pm
t/renamepage.t

index 515a62bced96396a906dd6c84e2c5ec0335c0200..529610710064e0a99c5ae29239f9a713534762fa 100644 (file)
@@ -91,7 +91,7 @@ sub renamepage (@) { #{{{
                my $linktext=$2;
                my $link=$linktext;
                if (bestlink($page, $2) eq $old) {
                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);
                        if ($linktext =~ m/.*\/*?[A-Z]/) {
                                # preserve leading cap of last component
                                my @bits=split("/", $link);
index ccb33d817827e91e17c6991e308bf3142838ccda..1a607370b785baf4b669a58c92c8b5c6bb140a15 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/perl
 use warnings;
 use strict;
 #!/usr/bin/perl
 use warnings;
 use strict;
-use Test::More tests => 15;
+use Test::More tests => 20;
 use Encode;
 
 BEGIN { use_ok("IkiWiki"); }
 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", "[[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