summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog5
-rwxr-xr-xt/bestlink.t24
2 files changed, 27 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog
index c9d9ab1e0..c072c237b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,7 +26,8 @@ ikiwiki (1.1) UNRELEASED; urgency=low
* Removed backlinks page, which it turns out nothing used.
* Split off an IkiWiki.pm out of ikiwiki and have all the other modules use
it, this will allow for adding a unit test suite.
- * Add a unit test for globlist_match().
+ * Add unit tests for several core functions, including globlist_match,
+ dirname, basename, and bestlink.
* Smart globlist merging.
* Patch from Thomas Schwinge to switch from --svn to --rcs=svn, etc,
to pave the way for adding other RCS support. This also changes the
@@ -34,7 +35,7 @@ ikiwiki (1.1) UNRELEASED; urgency=low
rcs => "svn" or rcs => "".
* Add a debian/NEWS file with upgrade notes.
* Load whatever rcs module is specified, so new ones can be just dropped in
- as plugins and work.
+ as plugins and work. (Well, in theory.)
* Add some basic docs about writing RCS modules.
-- Joey Hess <joeyh@debian.org> Tue, 2 May 2006 14:13:59 -0400
diff --git a/t/bestlink.t b/t/bestlink.t
new file mode 100755
index 000000000..ed748b0f2
--- /dev/null
+++ b/t/bestlink.t
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Test::More tests => 5;
+
+sub test ($$$) {
+ my $page=shift;
+ my $link=shift;
+ my @existing_pages=@{shift()};
+
+ %IkiWiki::links=();
+ foreach my $page (@existing_pages) {
+ $IkiWiki::links{$page}=[];
+ }
+
+ return IkiWiki::bestlink($page, $link);
+}
+
+BEGIN { use_ok("IkiWiki"); }
+
+is(test("bar", "foo", ["bar"]), "", "broken link");
+is(test("bar", "foo", ["bar", "foo"]), "foo", "simple link");
+is(test("bar", "foo", ["bar", "foo", "bar/foo"]), "bar/foo", "simple subpage link");
+is(test("bar", "foo/subpage", ["bar", "foo", "bar/subpage", "foo/subpage"]), "foo/subpage", "cross subpage link");