aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-08-02 00:14:31 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2006-08-02 00:14:31 +0000
commit2794d7ef5abc4fa8fc2eb42d5c85ada197df0767 (patch)
treea79c4c81a7cb989fb3cfa5f84a0d8fad831c5085 /t
parent418096be9e56f9078c19605f867b44d25ccadf58 (diff)
downloadikiwiki-2794d7ef5abc4fa8fc2eb42d5c85ada197df0767.tar
ikiwiki-2794d7ef5abc4fa8fc2eb42d5c85ada197df0767.tar.gz
* Renamed GlobLists to PageSpecs.
* PageSpecs can now include nested parens, "and", and "or". This remains backwards compatible to the old GlobList format. It's implemented by treating the GlobList as a very limited microlanguage that is transformed to perl code that does the matching. * The old GlobList format is deprecated, and I encourage users to switch to using the new PageSpec format. Compatability with the old format will be removed at some point, possibly by 2.0. * Wiki rebuild needed on upgrade to this version due to PageSpec change. * Add support for creation_month and creation_year to PageSpec. Closes: #380680 * Changes to index file encoding.
Diffstat (limited to 't')
-rwxr-xr-xt/globlist_match.t18
-rwxr-xr-xt/pagespec_match.t28
-rwxr-xr-xt/pagespec_merge.t (renamed from t/globlist_merge.t)12
3 files changed, 34 insertions, 24 deletions
diff --git a/t/globlist_match.t b/t/globlist_match.t
deleted file mode 100755
index b60d83a2a..000000000
--- a/t/globlist_match.t
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/usr/bin/perl
-use warnings;
-use strict;
-use Test::More tests => 13;
-
-BEGIN { use_ok("IkiWiki"); }
-ok(IkiWiki::globlist_match("foo", "foo bar"), "simple list");
-ok(IkiWiki::globlist_match("bar", "foo bar"), "simple list 2");
-ok(IkiWiki::globlist_match("foo", "*"));
-ok(IkiWiki::globlist_match("foo", "f?? !foz"));
-ok(! IkiWiki::globlist_match("foo", "f?? !foo"));
-ok(! IkiWiki::globlist_match("foo", "* !foo"));
-ok(! IkiWiki::globlist_match("foo", "foo !foo"));
-ok(IkiWiki::globlist_match("page", "?ag?"));
-ok(! IkiWiki::globlist_match("page", "?a?g?"));
-ok(! IkiWiki::globlist_match("foo.png", "* !*.*"));
-ok(IkiWiki::globlist_match("foo.png", "*.*"));
-ok(! IkiWiki::globlist_match("foo", "*.*"));
diff --git a/t/pagespec_match.t b/t/pagespec_match.t
new file mode 100755
index 000000000..35d420f10
--- /dev/null
+++ b/t/pagespec_match.t
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Test::More tests => 20;
+
+BEGIN { use_ok("IkiWiki"); }
+
+ok(IkiWiki::pagespec_match("foo", "*"));
+ok(IkiWiki::pagespec_match("page", "?ag?"));
+ok(! IkiWiki::pagespec_match("page", "?a?g?"));
+ok(IkiWiki::pagespec_match("foo.png", "*.*"));
+ok(! IkiWiki::pagespec_match("foo", "*.*"));
+ok(IkiWiki::pagespec_match("foo", "foo or bar"), "simple list");
+ok(IkiWiki::pagespec_match("bar", "foo or bar"), "simple list 2");
+ok(IkiWiki::pagespec_match("foo", "f?? and !foz"));
+ok(! IkiWiki::pagespec_match("foo", "f?? and !foo"));
+ok(! IkiWiki::pagespec_match("foo", "* and !foo"));
+ok(! IkiWiki::pagespec_match("foo", "foo and !foo"));
+ok(! IkiWiki::pagespec_match("foo.png", "* and !*.*"));
+
+# old style globlists
+ok(IkiWiki::pagespec_match("foo", "foo bar"), "simple list");
+ok(IkiWiki::pagespec_match("bar", "foo bar"), "simple list 2");
+ok(IkiWiki::pagespec_match("foo", "f?? !foz"));
+ok(! IkiWiki::pagespec_match("foo", "f?? !foo"));
+ok(! IkiWiki::pagespec_match("foo", "* !foo"));
+ok(! IkiWiki::pagespec_match("foo", "foo !foo"));
+ok(! IkiWiki::pagespec_match("foo.png", "* !*.*"));
diff --git a/t/globlist_merge.t b/t/pagespec_merge.t
index db76f1cd4..c2860709b 100755
--- a/t/globlist_merge.t
+++ b/t/pagespec_merge.t
@@ -8,14 +8,14 @@ sub same {
my $b=shift;
my $match=shift;
- my $imatch=(IkiWiki::globlist_match($match, $a) ||
- IkiWiki::globlist_match($match, $b));
- my $cmatch=IkiWiki::globlist_match($match, IkiWiki::globlist_merge($a, $b));
+ my $imatch=(IkiWiki::pagespec_match($match, $a) ||
+ IkiWiki::pagespec_match($match, $b));
+ my $cmatch=IkiWiki::pagespec_match($match, IkiWiki::pagespec_merge($a, $b));
return $imatch == $cmatch;
}
-BEGIN { use_ok("IkiWiki::Render"); }
+BEGIN { use_ok("IkiWiki"); }
ok(same("foo", "bar", "foo"), "basic match 1");
ok(same("foo", "bar", "bar"), "basic match 2");
@@ -36,8 +36,8 @@ ok(same("f?? !f??", "!bar", "bar"), "matching glob and matching inverted glob");
ok(same("b??", "!b?z", "bar"), "matching glob and non-matching inverted glob");
ok(same("f?? !f?z", "!bar", "bar"), "matching glob and non-matching inverted glob");
ok(same("!foo bar baz", "!bar", "bar"), "matching list and matching inversion");
-ok(IkiWiki::globlist_match("foo/Discussion",
- IkiWiki::globlist_merge("* !*/Discussion", "*/Discussion")), "should match");
+ok(IkiWiki::pagespec_match("foo/Discussion",
+ IkiWiki::pagespec_merge("* !*/Discussion", "*/Discussion")), "should match");
ok(same("* !*/Discussion", "*/Discussion", "foo/Discussion"), "Discussion merge 1");
ok(same("*/Discussion", "* !*/Discussion", "foo/Discussion"), "Discussion merge 2");
ok(same("*/Discussion !*/bar", "*/bar !*/Discussion", "foo/Discussion"), "bidirectional merge 1");