diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/globlist_match.t | 4 | ||||
-rwxr-xr-x | t/globlist_merge.t | 44 |
2 files changed, 47 insertions, 1 deletions
diff --git a/t/globlist_match.t b/t/globlist_match.t index 3d196e09c..b60d83a2a 100755 --- a/t/globlist_match.t +++ b/t/globlist_match.t @@ -1,9 +1,11 @@ #!/usr/bin/perl use warnings; use strict; -use Test::More tests => 11; +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")); diff --git a/t/globlist_merge.t b/t/globlist_merge.t new file mode 100755 index 000000000..db76f1cd4 --- /dev/null +++ b/t/globlist_merge.t @@ -0,0 +1,44 @@ +#!/usr/bin/perl +use warnings; +use strict; +use Test::More tests => 25; + +sub same { + my $a=shift; + 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)); + + return $imatch == $cmatch; +} + +BEGIN { use_ok("IkiWiki::Render"); } + +ok(same("foo", "bar", "foo"), "basic match 1"); +ok(same("foo", "bar", "bar"), "basic match 2"); +ok(same("foo", "bar", "foobar"), "basic failed match"); +ok(same("foo", "!bar", "foo"), "basic match with inversion"); +ok(same("foo", "!bar", "bar"), "basic failed match with inversion"); +ok(same("!foo", "bar", "foo"), "basic failed match with inversion 2"); +ok(same("!foo", "bar", "bar"), "basic match with inversion 2"); +ok(same("!foo", "!bar", "foo"), "double inversion failed match"); +ok(same("!foo", "!bar", "bar"), "double inversion failed match 2"); +ok(same("*", "!bar", "foo"), "glob+inversion match"); +ok(same("*", "!bar", "bar"), "matching glob and matching inversion"); +ok(same("* !foo", "!bar", "bar"), "matching glob and matching inversion"); +ok(same("* !foo", "!bar", "foo"), "matching glob with matching inversion and non-matching inversion"); +ok(same("* !foo", "!foo", "foo"), "matching glob with matching inversion and matching inversion"); +ok(same("b??", "!b??", "bar"), "matching glob and matching inverted glob"); +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(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"); +ok(same("*/Discussion !*/bar", "*/bar !*/Discussion", "foo/bar"), "bidirectional merge 2"); |