From 50d488f4c2137206e63f291ff99c4f09d177d31d Mon Sep 17 00:00:00 2001 From: Einar Egilsson Date: Tue, 15 Sep 2009 08:00:03 +0000 Subject: Fixed the wildcard match and added a bunch of unit tests. git-svn-id: http://einaregilsson.googlecode.com/svn/mozilla/redirector/trunk@247 119bf307-c92d-0410-89bd-8f53e6181181 --- chrome/content/unittests.js | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'chrome/content/unittests.js') diff --git a/chrome/content/unittests.js b/chrome/content/unittests.js index c532d3f..095b13b 100644 --- a/chrome/content/unittests.js +++ b/chrome/content/unittests.js @@ -1,12 +1,33 @@ var tests = { "Wildcard matches" : { - run : function(data) { return redirector.wildcardMatch(data[0], data[1], 'abc', false); }, - describe : function(data) { return data[0] + ' matches ' + data[1]; }, + run : function(data) { + var pattern = data[0], + url = data[1], + expected = data[2]; + var parts = expected.split(','); + var redirectUrl = ''; + if (!(parts.length == 1 && parts[0] == '')) { + for (var i in parts) { + redirectUrl += '$' + (parseFloat(i)+1) + ','; + } + redirectUrl = redirectUrl.substr(0, redirectUrl.length-1); + } + var result = redirector.wildcardMatch(pattern, url, redirectUrl, false); + return result == expected; + }, + + describe : function(data) { return data[0] + ' matches ' + data[1] + ', matches=' + data[2]; }, tests : [ - ['http://foo*', 'http://foobar.is'], - ['http://foo*', 'http://foo'], - ['*foo*', 'http://foo'] + ['http://foo*', 'http://foobar.is', 'bar.is'], + ['http://foo*', 'http://foo', ''], + ['*foo*', 'http://foo', 'http://,'], + ['*foo*', 'http://foobar.is', 'http://,bar.is'], + ['http://foo.is', 'http://foo.is', ''], + ['*', 'http://foo.is', 'http://foo.is'], + ['*://foo.is', 'http://foo.is', 'http'], + ['*://foo.is*', 'http://foo.is/bar/baz', 'http,/bar/baz'], + ['*://*oo*bar*', 'http://foo.is/bar/baz', 'http,f,.is/,/baz'] ] } }; -- cgit v1.2.3-70-g09d2