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.


Reply via email to