diff options
Diffstat (limited to 'browser/components/feeds/test/unit')
-rw-r--r-- | browser/components/feeds/test/unit/.eslintrc.js | 7 | ||||
-rw-r--r-- | browser/components/feeds/test/unit/head_feeds.js | 5 | ||||
-rw-r--r-- | browser/components/feeds/test/unit/test_355473.js | 43 | ||||
-rw-r--r-- | browser/components/feeds/test/unit/test_758990.js | 42 | ||||
-rw-r--r-- | browser/components/feeds/test/unit/xpcshell.ini | 8 |
5 files changed, 105 insertions, 0 deletions
diff --git a/browser/components/feeds/test/unit/.eslintrc.js b/browser/components/feeds/test/unit/.eslintrc.js new file mode 100644 index 000000000..d35787cd2 --- /dev/null +++ b/browser/components/feeds/test/unit/.eslintrc.js @@ -0,0 +1,7 @@ +"use strict"; + +module.exports = { + "extends": [ + "../../../../../testing/xpcshell/xpcshell.eslintrc.js" + ] +}; diff --git a/browser/components/feeds/test/unit/head_feeds.js b/browser/components/feeds/test/unit/head_feeds.js new file mode 100644 index 000000000..3b1135ef7 --- /dev/null +++ b/browser/components/feeds/test/unit/head_feeds.js @@ -0,0 +1,5 @@ +var Cc = Components.classes; +var Ci = Components.interfaces; +var Cr = Components.results; + +var ios = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService); diff --git a/browser/components/feeds/test/unit/test_355473.js b/browser/components/feeds/test/unit/test_355473.js new file mode 100644 index 000000000..8a20d1389 --- /dev/null +++ b/browser/components/feeds/test/unit/test_355473.js @@ -0,0 +1,43 @@ +var Cu = Components.utils; +Cu.import("resource://gre/modules/NetUtil.jsm"); + +function run_test() { + var feedFeedURI = ios.newURI("feed://example.com/feed.xml", null, null); + var httpFeedURI = ios.newURI("feed:http://example.com/feed.xml", null, null); + var httpURI = ios.newURI("http://example.com/feed.xml", null, null); + + var httpsFeedURI = + ios.newURI("feed:https://example.com/feed.xml", null, null); + var httpsURI = ios.newURI("https://example.com/feed.xml", null, null); + + var feedChannel = NetUtil.newChannel({ + uri: feedFeedURI, + loadUsingSystemPrincipal: true + }); + + var httpChannel = NetUtil.newChannel({ + uri: httpFeedURI, + loadUsingSystemPrincipal: true + }); + + var httpsChannel = NetUtil.newChannel({ + uri: httpsFeedURI, + loadUsingSystemPrincipal: true + }); + + // not setting .originalURI to the original URI is naughty + do_check_true(feedFeedURI.equals(feedChannel.originalURI)); + do_check_true(httpFeedURI.equals(httpChannel.originalURI)); + do_check_true(httpsFeedURI.equals(httpsChannel.originalURI)); + + // actually using the horrible mess that's a feed: URI is suicidal + do_check_true(httpURI.equals(feedChannel.URI)); + do_check_true(httpURI.equals(httpChannel.URI)); + do_check_true(httpsURI.equals(httpsChannel.URI)); + + // check that we throw creating feed: URIs from file and ftp + Assert.throws(function() { ios.newURI("feed:ftp://example.com/feed.xml", null, null); }, + "Should throw an exception when trying to create a feed: URI with an ftp: inner"); + Assert.throws(function() { ios.newURI("feed:file:///var/feed.xml", null, null); }, + "Should throw an exception when trying to create a feed: URI with a file: inner"); +} diff --git a/browser/components/feeds/test/unit/test_758990.js b/browser/components/feeds/test/unit/test_758990.js new file mode 100644 index 000000000..e6f88baf2 --- /dev/null +++ b/browser/components/feeds/test/unit/test_758990.js @@ -0,0 +1,42 @@ +function run_test() { + var success = false; + try { + ios.newURI("feed:javascript:alert('hi');", null, null); + } + catch (e) { + success = e.result == Cr.NS_ERROR_MALFORMED_URI; + } + if (!success) + do_throw("We didn't throw NS_ERROR_MALFORMED_URI creating a feed:javascript: URI"); + + success = false; + try { + ios.newURI("feed:data:text/html,hi", null, null); + } + catch (e) { + success = e.result == Cr.NS_ERROR_MALFORMED_URI; + } + if (!success) + do_throw("We didn't throw NS_ERROR_MALFORMED_URI creating a feed:data: URI"); + + success = false; + try { + ios.newURI("pcast:javascript:alert('hi');", null, null); + } + catch (e) { + success = e.result == Cr.NS_ERROR_MALFORMED_URI; + } + if (!success) + do_throw("We didn't throw NS_ERROR_MALFORMED_URI creating a pcast:javascript: URI"); + + success = false; + try { + ios.newURI("pcast:data:text/html,hi", null, null); + } + catch (e) { + success = e.result == Cr.NS_ERROR_MALFORMED_URI; + } + if (!success) + do_throw("We didn't throw NS_ERROR_MALFORMED_URI creating a pcast:data: URI"); + +} diff --git a/browser/components/feeds/test/unit/xpcshell.ini b/browser/components/feeds/test/unit/xpcshell.ini new file mode 100644 index 000000000..9faf57396 --- /dev/null +++ b/browser/components/feeds/test/unit/xpcshell.ini @@ -0,0 +1,8 @@ +[DEFAULT] +head = head_feeds.js +tail = +firefox-appdir = browser +skip-if = toolkit == 'android' + +[test_355473.js] +[test_758990.js] |