[Beeframework-svn] SF.net SVN: beeframework:[276] trunk
Brought to you by:
b_hartmann,
m_plomer
|
From: <m_p...@us...> - 2014-12-19 23:21:43
|
Revision: 276
http://sourceforge.net/p/beeframework/code/276
Author: m_plomer
Date: 2014-12-19 23:21:30 +0000 (Fri, 19 Dec 2014)
Log Message:
-----------
- AntPathToRegexTransformer: extended the ant path syntax to allow for an optional trainling slash (default, one slash) or a mandatory one (designated by a double trailing slash)
Modified Paths:
--------------
trunk/framework/Bee/Utils/AntPathToRegexTransformer.php
trunk/tests/Bee/Utils/AntPathDataProvider.php
Modified: trunk/framework/Bee/Utils/AntPathToRegexTransformer.php
===================================================================
--- trunk/framework/Bee/Utils/AntPathToRegexTransformer.php 2014-11-08 13:34:09 UTC (rev 275)
+++ trunk/framework/Bee/Utils/AntPathToRegexTransformer.php 2014-12-19 23:21:30 UTC (rev 276)
@@ -28,7 +28,9 @@
'#\(\[\^/\]\*\)\(\[\^/\]\*\)/#' => '((?:[^/]+/)*?)', // "**/" - replaced by "([^/]+)" above - matches 0:n path elements
'#\(\[\^/\]\*\)\(\[\^/\]\*\)#' => '(.*?)',
'#(^|(?<=[^(*]))\?#' => '[^/]',
- '#/\(\.\*\?\)$#' => '(?:/(.*?))??'
+ '#/\(\.\*\?\)$#' => '(?:/(.*?))??',
+ '#([^/])/$#' => '$1/?',
+ '#//$#' => '/'
);
public static $TYPE_EXPRESSION_MAP = array(
Modified: trunk/tests/Bee/Utils/AntPathDataProvider.php
===================================================================
--- trunk/tests/Bee/Utils/AntPathDataProvider.php 2014-11-08 13:34:09 UTC (rev 275)
+++ trunk/tests/Bee/Utils/AntPathDataProvider.php 2014-12-19 23:21:30 UTC (rev 276)
@@ -25,91 +25,90 @@
public function matchDataProvider() {
return array(
// test exact matching
- array("test", "test", True), // #0
- array("/test", "/test", True), // #1
- array("/test.jpg", "test.jpg", False), // #2
- array("test", "/test", False), // #3
- array("/test", "test", False), // #4
+/* 0 */ array("test", "test", True), // #0
+/* 1 */ array("/test", "/test", True), // #1
+/* 2 */ array("/test.jpg", "test.jpg", False), // #2
+/* 3 */ array("test", "/test", False), // #3
+/* 4 */ array("/test", "test", False), // #4
+/* */ // test matching with ?'s
+/* 5 */ array("t?st", "test", True), // #5
+/* 6 */ array("??st", "test", True), // #6
+/* 7 */ array("tes?", "test", True), // #7
+/* 8 */ array("te??", "test", True), // #8
+/* 9 */ array("?es?", "test", True), // #9
+/* 10 */ array("tes?", "tes", False), // #10
+/* 11 */ array("tes?", "testt", False),
+/* 12 */ array("tes?", "tsst", False),
+/* */ // test matchin with *'s
+/* 13 */ array("*", "test", True),
+/* 14 */ array("test*", "test", True),
+/* 15 */ array("test*", "testTest", True), // #15
+/* 16 */ array("test/*", "test/Test", True),
+/* 17 */ array("test/*", "test/t", True),
+/* 18 */ array("test/*", "test/", True),
+/* 19 */ array("*test*", "AnothertestTest", True),
+/* 20 */ array("*test", "Anothertest", True), // #20
+/* 21 */ array("*.*", "test.", True),
+/* 22 */ array("*.*", "test.test", True),
+/* 23 */ array("*.*", "test.test.test", True),
+/* 24 */ array("test*aaa", "testblaaaa", True),
+/* 25 */ array("test*", "tst", False), // #25
+/* 26 */ array("test*", "tsttest", False),
+/* 27 */ array("test*", "test/", False),
+/* 28 */ array("test*", "test/t", False),
+/* 29 */ array("test/*", "test", False),
+/* 30 */ array("*test*", "tsttst", False), // #30
+/* 31 */ array("*test", "tsttst", False),
+/* 32 */ array("*.*", "tsttst", False),
+/* 33 */ array("test*aaa", "test", False),
+/* 34 */ array("test*aaa", "testblaaab", False),
+/* */ // test matching with ?'s and /'s
+/* 35 */ array("/?", "/a", True), // #35
+/* 36 */ array("/?/a", "/a/a", True),
+/* 37 */ array("/a/?", "/a/b", True),
+/* 38 */ array("/??/a", "/aa/a", True),
+/* 39 */ array("/a/??", "/a/bb", True),
+/* 40 */ array("/?", "/a", True), // #40
+/* */ // test matching with **'s
+/* 41 */ array("/**", "/testing/testing", True), // #41
+/* 42 */ array("/*/**", "/testing/testing", True), // #42
+/* 43 */ array("/**/*", "/testing/testing", True), // #43
+/* 44 */ array("/bla/**/bla", "/bla/testing/testing/bla", True), // #44
+/* 45 */ array("/bla/**/bla", "/bla/testing/testing/bla/bla", True), // #45
+/* 46 */ array("/**/test", "/bla/bla/test", True), // #48
+/* 47 */ array("/**/test", "/test", True), // #47
+/* 48 */ array("/bla/**/**/bla", "/bla/bla/bla/bla/bla/bla", True), // #48
+/* 49 */ array("/bla*bla/test", "/blaXXXbla/test", True), // #49
+/* 50 */ array("/*bla/test", "/XXXbla/test", True), // #50
+/* 51 */ array("/bla*bla/test", "/blaXXXbl/test", False), // #51
+/* 52 */ array("/*bla/test", "XXXblab/test", False), // #52
+/* 53 */ array("/*bla/test", "XXXbl/test", False), // #53
+/* 54 */ array("/*bla/test", "/bla/test", true), // #54
+/* 55 */ array("/????", "/bala/bla", False),
+/* 56 */ array("/**/*bla", "/bla/bla/bla/bbb", False),
+/* 57 */ array("/*bla*/**/bla/**", "/XXXblaXXXX/testing/testing/bla/testing/testing/", True), // #55
+/* 58 */ array("/*bla*/**/bla/*", "/XXXblaXXXX/testing/testing/bla/testing", True),
+/* 59 */ array("/*bla*/**/bla/**", "/XXXblaXXXX/testing/testing/bla/testing/testing", True),
+/* 60 */ array("/*bla*/**/bla/**", "/XXXblaXXXX/testing/testing/bla/testing/testing.jpg", True),
+/* 61 */ array("*bla*/**/bla/**", "XXXblaXXXX/testing/testing/bla/testing/testing/", True),
+/* 62 */ array("*bla*/**/bla/*", "XXXblaXXXX/testing/testing/bla/testing", True), // #60
+/* 63 */ array("*bla*/**/bla/**", "XXXblaXXXX/testing/testing/bla/testing/testing", True),
+/* 64 */ array("*bla*/**/bla/*", "XXXblaXXXX/testing/testing/bla/testing/testing", False),
+/* 65 */ array("/x/x/**/bla", "/x/x/x/", False),
+/* 66 */ array("/x/x/**/bla", "/x/x/bla", true),
+/* */ // trailing slash tests
+/* 67 */ array("/x/x/**/bla/", "/x/x/bla/", true),
+/* 68 */ array("/x/x/**/bla/", "/x/x/bla", true),
+/* 69 */ array("/x/x/**/bla", "/x/x/bla/", false),
+/* 70 */ array("/x/x/**/bla", "/x/x/bla", true),
+/* 71 */ array("/x/x/**/bla//", "/x/x/bla/", true),// fails
+/* 72 */ array("/x/x/**/bla//", "/x/x/bla", false),
- // test matching with ?'s
- array("t?st", "test", True), // #5
- array("??st", "test", True), // #6
- array("tes?", "test", True), // #7
- array("te??", "test", True), // #8
- array("?es?", "test", True), // #9
- array("tes?", "tes", False), // #10
- array("tes?", "testt", False),
- array("tes?", "tsst", False),
+/* 73 */ array("/test/**", "/test", true),
- // test matchin with *'s
- array("*", "test", True),
- array("test*", "test", True),
- array("test*", "testTest", True), // #15
- array("test/*", "test/Test", True),
- array("test/*", "test/t", True),
- array("test/*", "test/", True),
- array("*test*", "AnothertestTest", True),
- array("*test", "Anothertest", True), // #20
- array("*.*", "test.", True),
- array("*.*", "test.test", True),
- array("*.*", "test.test.test", True),
- array("test*aaa", "testblaaaa", True),
- array("test*", "tst", False), // #25
- array("test*", "tsttest", False),
- array("test*", "test/", False),
- array("test*", "test/t", False),
- array("test/*", "test", False),
- array("*test*", "tsttst", False), // #30
- array("*test", "tsttst", False),
- array("*.*", "tsttst", False),
- array("test*aaa", "test", False),
- array("test*aaa", "testblaaab", False),
+/* 74 */ array("/**", "", true), // fails
+/* 75 */ array("", "", true)//,
- // test matching with ?'s and /'s
- array("/?", "/a", True), // #35
- array("/?/a", "/a/a", True),
- array("/a/?", "/a/b", True),
- array("/??/a", "/aa/a", True),
- array("/a/??", "/a/bb", True),
- array("/?", "/a", True), // #40
-
- // test matching with **'s
- array("/**", "/testing/testing", True), // #41
- array("/*/**", "/testing/testing", True), // #42
- array("/**/*", "/testing/testing", True), // #43
- array("/bla/**/bla", "/bla/testing/testing/bla", True), // #44
- array("/bla/**/bla", "/bla/testing/testing/bla/bla", True), // #45
- array("/**/test", "/bla/bla/test", True), // #48
- array("/**/test", "/test", True), // #47
- array("/bla/**/**/bla", "/bla/bla/bla/bla/bla/bla", True), // #48
- array("/bla*bla/test", "/blaXXXbla/test", True), // #49
- array("/*bla/test", "/XXXbla/test", True), // #50
- array("/bla*bla/test", "/blaXXXbl/test", False), // #51
- array("/*bla/test", "XXXblab/test", False), // #52
- array("/*bla/test", "XXXbl/test", False), // #53
- array("/*bla/test", "/bla/test", true), // #54
-
- array("/????", "/bala/bla", False),
- array("/**/*bla", "/bla/bla/bla/bbb", False),
-
- array("/*bla*/**/bla/**", "/XXXblaXXXX/testing/testing/bla/testing/testing/", True), // #55
- array("/*bla*/**/bla/*", "/XXXblaXXXX/testing/testing/bla/testing", True),
- array("/*bla*/**/bla/**", "/XXXblaXXXX/testing/testing/bla/testing/testing", True),
- array("/*bla*/**/bla/**", "/XXXblaXXXX/testing/testing/bla/testing/testing.jpg", True),
-
- array("*bla*/**/bla/**", "XXXblaXXXX/testing/testing/bla/testing/testing/", True),
- array("*bla*/**/bla/*", "XXXblaXXXX/testing/testing/bla/testing", True), // #60
- array("*bla*/**/bla/**", "XXXblaXXXX/testing/testing/bla/testing/testing", True),
- array("*bla*/**/bla/*", "XXXblaXXXX/testing/testing/bla/testing/testing", False),
-
- array("/x/x/**/bla", "/x/x/x/", False),
- array("/x/x/**/bla", "/x/x/bla", true),
-
- array("/test/**", "/test", true),
-
- array("/**", "", true),
- array("", "", true)//,
-
// array("/{bla}.*", "/testing.html", True) // #65
);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|