From: Giacomo Pati <[EMAIL PROTECTED]>
Date: Thu, 22 Jun 2006 14:58:05 +0200 (CEST)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On Thu, 22 Jun 2006, Carsten Ziegeler wrote:
Date: Thu, 22 Jun 2006 11:59:35 +0200
From: Carsten Ziegeler <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: [email protected]
Subject: Re: svn commit: r416308 -
/cocoon/trunk/core/cocoon-core/src/test/java/org/apache/cocoon/util/Wildca
rdMatcherHelperTestCase.java
Giacomo Pati wrote:
- public void testEmptyPattern() throws Exception {
+ public void test21WildcardURIMatch()
+ throws Exception {
+ Map result = WildcardMatcherHelper.match("*/**",
"samples/blocks/");
+ assertNotNull(result);
+ assertEquals("", result.get("1"));
Oh, if this test succeeds isn't it wrong? Shouldn't {1}be "samples"?
Ups, yep - damn copy-paste. I corrected the test case, but it still
fails as the result is null.
Ok, looking at those matching sample we need to define how matching is
suppose to work. Consider the following sample
Pattern String
**/*/** foo/bar/baz/buz/
What is the result you expect for {1}, {2}, and {3} ? Possible values could
be:
{1}="foo" {2}="bar" {3}="baz/buz"
{1}="foo/bar" {2}="baz" {3}="buz"
{1}="foo/bar/baz" {2}="buz" {3}=""
which one do you think is the correct one?
If it were the regex (.*)/([^/]*)/(.*) then what would the result be?
Unless there's a compelling reason not to, it might as well behave
similarly. I can't test it myself right now, but I think that regex would
give the third option (i.e. as greedy as possible as early as it can be).
However, if in fact that's not the case, shouldn't {3} include the trailing
slash?
Andrew.