[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. |