diff options
Diffstat (limited to 'tools/addon-sdk-1.5/packages/api-utils/tests/test-url.js')
-rw-r--r-- | tools/addon-sdk-1.5/packages/api-utils/tests/test-url.js | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/tools/addon-sdk-1.5/packages/api-utils/tests/test-url.js b/tools/addon-sdk-1.5/packages/api-utils/tests/test-url.js deleted file mode 100644 index f217400..0000000 --- a/tools/addon-sdk-1.5/packages/api-utils/tests/test-url.js +++ /dev/null @@ -1,204 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -var url = require("url"); - -exports.testResolve = function(test) { - test.assertEqual(url.URL("bar", "http://www.foo.com/").toString(), - "http://www.foo.com/bar"); - - test.assertEqual(url.URL("bar", "http://www.foo.com"), - "http://www.foo.com/bar"); - - test.assertEqual(url.URL("http://bar.com/", "http://foo.com/"), - "http://bar.com/", - "relative should override base"); - - test.assertRaises(function() { url.URL("blah"); }, - "malformed URI: blah", - "url.resolve() should throw malformed URI on base"); - - test.assertRaises(function() { url.URL("chrome://global"); }, - "invalid URI: chrome://global", - "url.resolve() should throw invalid URI on base"); - - test.assertRaises(function() { url.URL("chrome://foo/bar"); }, - "invalid URI: chrome://foo/bar", - "url.resolve() should throw on bad chrome URI"); - - test.assertEqual(url.URL("", "http://www.foo.com"), - "http://www.foo.com/", - "url.resolve() should add slash to end of domain"); -}; - -exports.testParseHttp = function(test) { - var info = url.URL("http://foo.com/bar"); - test.assertEqual(info.scheme, "http"); - test.assertEqual(info.host, "foo.com"); - test.assertEqual(info.port, null); - test.assertEqual(info.userPass, null); - test.assertEqual(info.path, "/bar"); -}; - -exports.testParseHttpWithPort = function(test) { - var info = url.URL("http://foo.com:5/bar"); - test.assertEqual(info.port, 5); -}; - -exports.testParseChrome = function(test) { - var info = url.URL("chrome://global/content/blah"); - test.assertEqual(info.scheme, "chrome"); - test.assertEqual(info.host, "global"); - test.assertEqual(info.port, null); - test.assertEqual(info.userPass, null); - test.assertEqual(info.path, "/content/blah"); -}; - -exports.testParseAbout = function(test) { - var info = url.URL("about:boop"); - test.assertEqual(info.scheme, "about"); - test.assertEqual(info.host, null); - test.assertEqual(info.port, null); - test.assertEqual(info.userPass, null); - test.assertEqual(info.path, "boop"); -}; - -exports.testParseFTP = function(test) { - var info = url.URL("ftp://1.2.3.4/foo"); - test.assertEqual(info.scheme, "ftp"); - test.assertEqual(info.host, "1.2.3.4"); - test.assertEqual(info.port, null); - test.assertEqual(info.userPass, null); - test.assertEqual(info.path, "/foo"); -}; - -exports.testParseFTPWithUserPass = function(test) { - var info = url.URL("ftp://user:pass@1.2.3.4/foo"); - test.assertEqual(info.userPass, "user:pass"); -}; - -// rootURI is jar:file://...!/ if we're packed, and file://.../ if we're -// unpacked. url.toFilename() is not required to work for the contents of -// packed XPIs -var unpacked = (require("@packaging").rootURI.indexOf("file:") == 0); - -exports.testToFilename = function(test) { - test.assertRaises( - function() { url.toFilename("resource://nonexistent"); }, - "resource does not exist: resource://nonexistent/", - "url.toFilename() on nonexistent resources should throw" - ); - - if (unpacked) - test.assertMatches(url.toFilename(module.uri), - /.*test-url\.js$/, - "url.toFilename() on resource: URIs should work"); - else - test.assertRaises( - function() { url.toFilename(module.uri); }, - "cannot map to filename: "+module.uri, - "url.toFilename() can fail for packed XPIs"); - - test.assertRaises( - function() { url.toFilename("http://foo.com/"); }, - "cannot map to filename: http://foo.com/", - "url.toFilename() on http: URIs should raise error" - ); - - try { - test.assertMatches( - url.toFilename("chrome://global/content/console.xul"), - /.*console\.xul$/, - "url.toFilename() w/ console.xul works when it maps to filesystem" - ); - } catch (e) { - if (/chrome url isn\'t on filesystem/.test(e.message)) - test.pass("accessing console.xul in jar raises exception"); - else - test.fail("accessing console.xul raises " + e); - } - - // TODO: Are there any chrome URLs that we're certain exist on the - // filesystem? - // test.assertMatches(url.toFilename("chrome://myapp/content/main.js"), - // /.*main\.js$/); -}; - -exports.testFromFilename = function(test) { - var profileDirName = require("system").pathFor("ProfD"); - var fileUrl = url.fromFilename(profileDirName); - test.assertEqual(url.URL(fileUrl).scheme, 'file', - 'url.toFilename() should return a file: url'); - test.assertEqual(url.fromFilename(url.toFilename(fileUrl)), - fileUrl); -}; - -exports.testURL = function(test) { - let URL = url.URL; - test.assert(URL("h:foo") instanceof URL, "instance is of correct type"); - test.assertRaises(function() URL(), - "malformed URI: undefined", - "url.URL should throw on undefined"); - test.assertRaises(function() URL(""), - "malformed URI: ", - "url.URL should throw on empty string"); - test.assertRaises(function() URL("foo"), - "malformed URI: foo", - "url.URL should throw on invalid URI"); - test.assert(URL("h:foo").scheme, "has scheme"); - test.assertEqual(URL("h:foo").toString(), - "h:foo", - "toString should roundtrip"); - // test relative + base - test.assertEqual(URL("mypath", "http://foo").toString(), - "http://foo/mypath", - "relative URL resolved to base"); - // test relative + no base - test.assertRaises(function() URL("path").toString(), - "malformed URI: path", - "no base for relative URI should throw"); - - let a = URL("h:foo"); - let b = URL(a); - test.assertEqual(b.toString(), - "h:foo", - "a URL can be initialized from another URL"); - test.assertNotStrictEqual(a, b, - "a URL initialized from another URL is not the same object"); - test.assert(a == "h:foo", - "toString is implicit when a URL is compared to a string via =="); - test.assertStrictEqual(a + "", "h:foo", - "toString is implicit when a URL is concatenated to a string"); -}; - -exports.testStringInterface = function(test) { - let URL = url.URL; - var EM = "about:addons"; - var a = URL(EM); - - // make sure the standard URL properties are enumerable and not the String interface bits - test.assertEqual(Object.keys(a), "scheme,userPass,host,port,path", "enumerable key list check for URL."); - test.assertEqual( - JSON.stringify(a), - "{\"scheme\":\"about\",\"userPass\":null,\"host\":null,\"port\":null,\"path\":\"addons\"}", - "JSON.stringify should return a object with correct props and vals."); - - // make sure that the String interface exists and works as expected - test.assertEqual(a.indexOf(":"), EM.indexOf(":"), "indexOf on URL works"); - test.assertEqual(a.valueOf(), EM.valueOf(), "valueOf on URL works."); - test.assertEqual(a.toSource(), EM.toSource(), "toSource on URL works."); - test.assertEqual(a.lastIndexOf("a"), EM.lastIndexOf("a"), "lastIndexOf on URL works."); - test.assertEqual(a.match("t:").toString(), EM.match("t:").toString(), "match on URL works."); - test.assertEqual(a.toUpperCase(), EM.toUpperCase(), "toUpperCase on URL works."); - test.assertEqual(a.toLowerCase(), EM.toLowerCase(), "toLowerCase on URL works."); - test.assertEqual(a.split(":").toString(), EM.split(":").toString(), "split on URL works."); - test.assertEqual(a.charAt(2), EM.charAt(2), "charAt on URL works."); - test.assertEqual(a.charCodeAt(2), EM.charCodeAt(2), "charCodeAt on URL works."); - test.assertEqual(a.concat(EM), EM.concat(a), "concat on URL works."); - test.assertEqual(a.substr(2,3), EM.substr(2,3), "substr on URL works."); - test.assertEqual(a.substring(2,3), EM.substring(2,3), "substring on URL works."); - test.assertEqual(a.trim(), EM.trim(), "trim on URL works."); - test.assertEqual(a.trimRight(), EM.trimRight(), "trimRight on URL works."); - test.assertEqual(a.trimLeft(), EM.trimLeft(), "trimLeft on URL works."); -} |