|
var globToRegexp = require("./index.js"); |
|
var assert = require("assert"); |
|
|
|
function assertMatch(glob, str, opts) { |
|
|
|
assert.ok(globToRegexp(glob, opts).test(str)); |
|
} |
|
|
|
function assertNotMatch(glob, str, opts) { |
|
|
|
assert.equal(false, globToRegexp(glob, opts).test(str)); |
|
} |
|
|
|
function test(globstar) { |
|
|
|
assertMatch("*", "foo"); |
|
assertMatch("*", "foo", { flags: 'g' }); |
|
|
|
|
|
assertMatch("f*", "foo"); |
|
assertMatch("f*", "foo", { flags: 'g' }); |
|
|
|
|
|
assertMatch("*o", "foo"); |
|
assertMatch("*o", "foo", { flags: 'g' }); |
|
|
|
|
|
assertMatch("f*uck", "firetruck"); |
|
assertMatch("f*uck", "firetruck", { flags: 'g' }); |
|
|
|
|
|
assertNotMatch("uc", "firetruck"); |
|
|
|
assertMatch("uc", "firetruck", { flags: 'g' }); |
|
|
|
|
|
assertMatch("f*uck", "fuck"); |
|
assertMatch("f*uck", "fuck", { flags: 'g' }); |
|
|
|
|
|
assertMatch("*.min.js", "http://example.com/jquery.min.js", {globstar: false}); |
|
assertMatch("*.min.*", "http://example.com/jquery.min.js", {globstar: false}); |
|
assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js", {globstar: false}); |
|
|
|
|
|
assertMatch("*.min.*", "http://example.com/jquery.min.js", { flags: 'g' }); |
|
assertMatch("*.min.js", "http://example.com/jquery.min.js", { flags: 'g' }); |
|
assertMatch("*/js/*.js", "http://example.com/js/jquery.min.js", { flags: 'g' }); |
|
|
|
|
|
|
|
|
|
var testStr = "\\\\/$^+?.()=!|{},[].*"; |
|
var targetStr = "\\/$^+?.()=!|{},[].*"; |
|
assertMatch(testStr, targetStr); |
|
assertMatch(testStr, targetStr, { flags: 'g' }); |
|
|
|
|
|
assertNotMatch(".min.", "http://example.com/jquery.min.js"); |
|
assertMatch("*.min.*", "http://example.com/jquery.min.js"); |
|
assertMatch(".min.", "http://example.com/jquery.min.js", { flags: 'g' }); |
|
|
|
assertNotMatch("http:", "http://example.com/jquery.min.js"); |
|
assertMatch("http:*", "http://example.com/jquery.min.js"); |
|
assertMatch("http:", "http://example.com/jquery.min.js", { flags: 'g' }); |
|
|
|
assertNotMatch("min.js", "http://example.com/jquery.min.js"); |
|
assertMatch("*.min.js", "http://example.com/jquery.min.js"); |
|
assertMatch("min.js", "http://example.com/jquery.min.js", { flags: 'g' }); |
|
|
|
|
|
assertMatch("min", "http://example.com/jquery.min.js", { flags: 'g' }); |
|
assertMatch("/js/", "http://example.com/js/jquery.min.js", { flags: 'g' }); |
|
|
|
assertNotMatch("/js*jq*.js", "http://example.com/js/jquery.min.js"); |
|
assertMatch("/js*jq*.js", "http://example.com/js/jquery.min.js", { flags: 'g' }); |
|
|
|
|
|
|
|
|
|
assertMatch("f?o", "foo", { extended: true }); |
|
assertNotMatch("f?o", "fooo", { extended: true }); |
|
assertNotMatch("f?oo", "foo", { extended: true }); |
|
|
|
|
|
assertMatch("f?o", "foo", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("f?o", "fooo", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("f?o?", "fooo", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("?fo", "fooo", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("f?oo", "foo", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("foo?", "foo", { extended: true, globstar: globstar, flags: 'g' }); |
|
|
|
|
|
assertMatch("fo[oz]", "foo", { extended: true }); |
|
assertMatch("fo[oz]", "foz", { extended: true }); |
|
assertNotMatch("fo[oz]", "fog", { extended: true }); |
|
|
|
|
|
assertMatch("fo[oz]", "foo", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("fo[oz]", "foz", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("fo[oz]", "fog", { extended: true, globstar: globstar, flags: 'g' }); |
|
|
|
|
|
assertMatch("foo{bar,baaz}", "foobaaz", { extended: true }); |
|
assertMatch("foo{bar,baaz}", "foobar", { extended: true }); |
|
assertNotMatch("foo{bar,baaz}", "foobuzz", { extended: true }); |
|
assertMatch("foo{bar,b*z}", "foobuzz", { extended: true }); |
|
|
|
|
|
assertMatch("foo{bar,baaz}", "foobaaz", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("foo{bar,baaz}", "foobar", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("foo{bar,baaz}", "foobuzz", { extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("foo{bar,b*z}", "foobuzz", { extended: true, globstar: globstar, flags: 'g' }); |
|
|
|
|
|
assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://foo.baaz.com/jquery.min.js", |
|
{ extended: true }); |
|
assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://moz.buzz.com/index.html", |
|
{ extended: true }); |
|
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://moz.buzz.com/index.htm", |
|
{ extended: true }); |
|
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://moz.bar.com/index.html", |
|
{ extended: true }); |
|
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://flozz.buzz.com/index.html", |
|
{ extended: true }); |
|
|
|
|
|
assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://foo.baaz.com/jquery.min.js", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://moz.buzz.com/index.html", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://moz.buzz.com/index.htm", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://moz.bar.com/index.html", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
assertNotMatch("http://?o[oz].b*z.com/{*.js,*.html}", |
|
"http://flozz.buzz.com/index.html", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
|
|
|
|
assertMatch("http://foo.com/**/{*.js,*.html}", |
|
"http://foo.com/bar/jquery.min.js", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("http://foo.com/**/{*.js,*.html}", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
assertMatch("http://foo.com/**", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ extended: true, globstar: globstar, flags: 'g' }); |
|
|
|
|
|
|
|
|
|
|
|
var testExtStr = "\\\\/$^+.()=!|,.*"; |
|
var targetExtStr = "\\/$^+.()=!|,.*"; |
|
assertMatch(testExtStr, targetExtStr, { extended: true }); |
|
assertMatch(testExtStr, targetExtStr, { extended: true, globstar: globstar, flags: 'g' }); |
|
} |
|
|
|
|
|
|
|
test(false) |
|
|
|
test(true); |
|
|
|
|
|
assertMatch("/foo/*", "/foo/bar.txt", {globstar: true }); |
|
assertMatch("/foo/**", "/foo/baz.txt", {globstar: true }); |
|
assertMatch("/foo/**", "/foo/bar/baz.txt", {globstar: true }); |
|
assertMatch("/foo/*/*.txt", "/foo/bar/baz.txt", {globstar: true }); |
|
assertMatch("/foo/**/*.txt", "/foo/bar/baz.txt", {globstar: true }); |
|
assertMatch("/foo/**/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertMatch("/foo/**/bar.txt", "/foo/bar.txt", {globstar: true }); |
|
assertMatch("/foo/**/**/bar.txt", "/foo/bar.txt", {globstar: true }); |
|
assertMatch("/foo/**/*/baz.txt", "/foo/bar/baz.txt", {globstar: true }); |
|
assertMatch("/foo/**/*.txt", "/foo/bar.txt", {globstar: true }); |
|
assertMatch("/foo/**/**/*.txt", "/foo/bar.txt", {globstar: true }); |
|
assertMatch("/foo/**/*/*.txt", "/foo/bar/baz.txt", {globstar: true }); |
|
assertMatch("**/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertMatch("**/foo.txt", "foo.txt", {globstar: true }); |
|
assertMatch("**/*.txt", "foo.txt", {globstar: true }); |
|
|
|
assertNotMatch("/foo/*", "/foo/bar/baz.txt", {globstar: true }); |
|
assertNotMatch("/foo/*.txt", "/foo/bar/baz.txt", {globstar: true }); |
|
assertNotMatch("/foo/*/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertNotMatch("/foo/*/bar.txt", "/foo/bar.txt", {globstar: true }); |
|
assertNotMatch("/foo/*/*/baz.txt", "/foo/bar/baz.txt", {globstar: true }); |
|
assertNotMatch("/foo/**.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertNotMatch("/foo/bar**/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertNotMatch("/foo/bar**", "/foo/bar/baz.txt", {globstar: true }); |
|
assertNotMatch("**/.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertNotMatch("*/*.txt", "/foo/bar/baz/qux.txt", {globstar: true }); |
|
assertNotMatch("*/*.txt", "foo.txt", {globstar: true }); |
|
|
|
assertNotMatch("http://foo.com/*", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ extended: true, globstar: true }); |
|
assertNotMatch("http://foo.com/*", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: true }); |
|
|
|
assertMatch("http://foo.com/*", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: false }); |
|
assertMatch("http://foo.com/**", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: true }); |
|
|
|
assertMatch("http://foo.com/*/*/jquery.min.js", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: true }); |
|
assertMatch("http://foo.com/**/jquery.min.js", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: true }); |
|
assertMatch("http://foo.com/*/*/jquery.min.js", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: false }); |
|
assertMatch("http://foo.com/*/jquery.min.js", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: false }); |
|
assertNotMatch("http://foo.com/*/jquery.min.js", |
|
"http://foo.com/bar/baz/jquery.min.js", |
|
{ globstar: true }); |
|
|
|
console.log("Ok!"); |
|
|