summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/test/browser/browser_updatessl.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/mozapps/webextensions/test/browser/browser_updatessl.js')
-rw-r--r--toolkit/mozapps/webextensions/test/browser/browser_updatessl.js370
1 files changed, 0 insertions, 370 deletions
diff --git a/toolkit/mozapps/webextensions/test/browser/browser_updatessl.js b/toolkit/mozapps/webextensions/test/browser/browser_updatessl.js
deleted file mode 100644
index 8b816c927..000000000
--- a/toolkit/mozapps/webextensions/test/browser/browser_updatessl.js
+++ /dev/null
@@ -1,370 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-var tempScope = {};
-Components.utils.import("resource://gre/modules/addons/AddonUpdateChecker.jsm", tempScope);
-var AddonUpdateChecker = tempScope.AddonUpdateChecker;
-
-const updaterdf = RELATIVE_DIR + "browser_updatessl.rdf";
-const redirect = RELATIVE_DIR + "redirect.sjs?";
-const SUCCESS = 0;
-const DOWNLOAD_ERROR = AddonUpdateChecker.ERROR_DOWNLOAD_ERROR;
-
-const HTTP = "http://example.com/";
-const HTTPS = "https://example.com/";
-const NOCERT = "https://nocert.example.com/";
-const SELFSIGNED = "https://self-signed.example.com/";
-const UNTRUSTED = "https://untrusted.example.com/";
-const EXPIRED = "https://expired.example.com/";
-
-const PREF_UPDATE_REQUIREBUILTINCERTS = "extensions.update.requireBuiltInCerts";
-
-var gTests = [];
-var gStart = 0;
-var gLast = 0;
-
-var HTTPObserver = {
- observeActivity: function(aChannel, aType, aSubtype, aTimestamp, aSizeData,
- aStringData) {
- aChannel.QueryInterface(Ci.nsIChannel);
-
- dump("*** HTTP Activity 0x" + aType.toString(16) + " 0x" + aSubtype.toString(16) +
- " " + aChannel.URI.spec + "\n");
- }
-};
-
-function test() {
- gStart = Date.now();
- requestLongerTimeout(4);
- waitForExplicitFinish();
-
- let observerService = Cc["@mozilla.org/network/http-activity-distributor;1"].
- getService(Ci.nsIHttpActivityDistributor);
- observerService.addObserver(HTTPObserver);
-
- registerCleanupFunction(function() {
- observerService.removeObserver(HTTPObserver);
- });
-
- run_next_test();
-}
-
-function end_test() {
- Services.prefs.clearUserPref(PREF_UPDATE_REQUIREBUILTINCERTS);
-
- var cos = Cc["@mozilla.org/security/certoverride;1"].
- getService(Ci.nsICertOverrideService);
- cos.clearValidityOverride("nocert.example.com", -1);
- cos.clearValidityOverride("self-signed.example.com", -1);
- cos.clearValidityOverride("untrusted.example.com", -1);
- cos.clearValidityOverride("expired.example.com", -1);
-
- info("All tests completed in " + (Date.now() - gStart) + "ms");
- finish();
-}
-
-function add_update_test(mainURL, redirectURL, expectedStatus) {
- gTests.push([mainURL, redirectURL, expectedStatus]);
-}
-
-function run_update_tests(callback) {
- function run_next_update_test() {
- if (gTests.length == 0) {
- callback();
- return;
- }
- gLast = Date.now();
-
- let [mainURL, redirectURL, expectedStatus] = gTests.shift();
- if (redirectURL) {
- var url = mainURL + redirect + redirectURL + updaterdf;
- var message = "Should have seen the right result for an update check redirected from " +
- mainURL + " to " + redirectURL;
- }
- else {
- url = mainURL + updaterdf;
- message = "Should have seen the right result for an update check from " +
- mainURL;
- }
-
- AddonUpdateChecker.checkForUpdates("addon1@tests.mozilla.org",
- null, url, {
- onUpdateCheckComplete: function(updates) {
- is(updates.length, 1, "Should be the right number of results");
- is(SUCCESS, expectedStatus, message);
- info("Update test ran in " + (Date.now() - gLast) + "ms");
- run_next_update_test();
- },
-
- onUpdateCheckError: function(status) {
- is(status, expectedStatus, message);
- info("Update test ran in " + (Date.now() - gLast) + "ms");
- run_next_update_test();
- }
- });
- }
-
- run_next_update_test();
-}
-
-// Add overrides for the bad certificates
-function addCertOverrides() {
- addCertOverride("nocert.example.com", Ci.nsICertOverrideService.ERROR_MISMATCH);
- addCertOverride("self-signed.example.com", Ci.nsICertOverrideService.ERROR_UNTRUSTED);
- addCertOverride("untrusted.example.com", Ci.nsICertOverrideService.ERROR_UNTRUSTED);
- addCertOverride("expired.example.com", Ci.nsICertOverrideService.ERROR_TIME);
-}
-
-// Runs tests with built-in certificates required and no certificate exceptions.
-add_test(function() {
- // Tests that a simple update.rdf retrieval works as expected.
- add_update_test(HTTP, null, SUCCESS);
- add_update_test(HTTPS, null, DOWNLOAD_ERROR);
- add_update_test(NOCERT, null, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, null, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, null, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, null, DOWNLOAD_ERROR);
-
- // Tests that redirecting from http to other servers works as expected
- add_update_test(HTTP, HTTP, SUCCESS);
- add_update_test(HTTP, HTTPS, SUCCESS);
- add_update_test(HTTP, NOCERT, DOWNLOAD_ERROR);
- add_update_test(HTTP, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(HTTP, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(HTTP, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from valid https to other servers works as expected
- add_update_test(HTTPS, HTTP, DOWNLOAD_ERROR);
- add_update_test(HTTPS, HTTPS, DOWNLOAD_ERROR);
- add_update_test(HTTPS, NOCERT, DOWNLOAD_ERROR);
- add_update_test(HTTPS, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(HTTPS, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(HTTPS, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from nocert https to other servers works as expected
- add_update_test(NOCERT, HTTP, DOWNLOAD_ERROR);
- add_update_test(NOCERT, HTTPS, DOWNLOAD_ERROR);
- add_update_test(NOCERT, NOCERT, DOWNLOAD_ERROR);
- add_update_test(NOCERT, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(NOCERT, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(NOCERT, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from self-signed https to other servers works as expected
- add_update_test(SELFSIGNED, HTTP, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from untrusted https to other servers works as expected
- add_update_test(UNTRUSTED, HTTP, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from expired https to other servers works as expected
- add_update_test(EXPIRED, HTTP, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, EXPIRED, DOWNLOAD_ERROR);
-
- run_update_tests(run_next_test);
-});
-
-// Runs tests without requiring built-in certificates and no certificate
-// exceptions.
-add_test(function() {
- Services.prefs.setBoolPref(PREF_UPDATE_REQUIREBUILTINCERTS, false);
-
- // Tests that a simple update.rdf retrieval works as expected.
- add_update_test(HTTP, null, SUCCESS);
- add_update_test(HTTPS, null, SUCCESS);
- add_update_test(NOCERT, null, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, null, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, null, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, null, DOWNLOAD_ERROR);
-
- // Tests that redirecting from http to other servers works as expected
- add_update_test(HTTP, HTTP, SUCCESS);
- add_update_test(HTTP, HTTPS, SUCCESS);
- add_update_test(HTTP, NOCERT, DOWNLOAD_ERROR);
- add_update_test(HTTP, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(HTTP, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(HTTP, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from valid https to other servers works as expected
- add_update_test(HTTPS, HTTP, DOWNLOAD_ERROR);
- add_update_test(HTTPS, HTTPS, SUCCESS);
- add_update_test(HTTPS, NOCERT, DOWNLOAD_ERROR);
- add_update_test(HTTPS, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(HTTPS, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(HTTPS, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from nocert https to other servers works as expected
- add_update_test(NOCERT, HTTP, DOWNLOAD_ERROR);
- add_update_test(NOCERT, HTTPS, DOWNLOAD_ERROR);
- add_update_test(NOCERT, NOCERT, DOWNLOAD_ERROR);
- add_update_test(NOCERT, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(NOCERT, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(NOCERT, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from self-signed https to other servers works as expected
- add_update_test(SELFSIGNED, HTTP, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from untrusted https to other servers works as expected
- add_update_test(UNTRUSTED, HTTP, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from expired https to other servers works as expected
- add_update_test(EXPIRED, HTTP, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, EXPIRED, DOWNLOAD_ERROR);
-
- run_update_tests(run_next_test);
-});
-
-// Runs tests with built-in certificates required and all certificate exceptions.
-add_test(function() {
- Services.prefs.clearUserPref(PREF_UPDATE_REQUIREBUILTINCERTS);
- addCertOverrides();
-
- // Tests that a simple update.rdf retrieval works as expected.
- add_update_test(HTTP, null, SUCCESS);
- add_update_test(HTTPS, null, DOWNLOAD_ERROR);
- add_update_test(NOCERT, null, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, null, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, null, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, null, DOWNLOAD_ERROR);
-
- // Tests that redirecting from http to other servers works as expected
- add_update_test(HTTP, HTTP, SUCCESS);
- add_update_test(HTTP, HTTPS, SUCCESS);
- add_update_test(HTTP, NOCERT, SUCCESS);
- add_update_test(HTTP, SELFSIGNED, SUCCESS);
- add_update_test(HTTP, UNTRUSTED, SUCCESS);
- add_update_test(HTTP, EXPIRED, SUCCESS);
-
- // Tests that redirecting from valid https to other servers works as expected
- add_update_test(HTTPS, HTTP, DOWNLOAD_ERROR);
- add_update_test(HTTPS, HTTPS, DOWNLOAD_ERROR);
- add_update_test(HTTPS, NOCERT, DOWNLOAD_ERROR);
- add_update_test(HTTPS, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(HTTPS, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(HTTPS, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from nocert https to other servers works as expected
- add_update_test(NOCERT, HTTP, DOWNLOAD_ERROR);
- add_update_test(NOCERT, HTTPS, DOWNLOAD_ERROR);
- add_update_test(NOCERT, NOCERT, DOWNLOAD_ERROR);
- add_update_test(NOCERT, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(NOCERT, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(NOCERT, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from self-signed https to other servers works as expected
- add_update_test(SELFSIGNED, HTTP, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from untrusted https to other servers works as expected
- add_update_test(UNTRUSTED, HTTP, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, EXPIRED, DOWNLOAD_ERROR);
-
- // Tests that redirecting from expired https to other servers works as expected
- add_update_test(EXPIRED, HTTP, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, HTTPS, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, NOCERT, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, SELFSIGNED, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, UNTRUSTED, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, EXPIRED, DOWNLOAD_ERROR);
-
- run_update_tests(run_next_test);
-});
-
-// Runs tests without requiring built-in certificates and all certificate
-// exceptions.
-add_test(function() {
- Services.prefs.setBoolPref(PREF_UPDATE_REQUIREBUILTINCERTS, false);
-
- // Tests that a simple update.rdf retrieval works as expected.
- add_update_test(HTTP, null, SUCCESS);
- add_update_test(HTTPS, null, SUCCESS);
- add_update_test(NOCERT, null, SUCCESS);
- add_update_test(SELFSIGNED, null, SUCCESS);
- add_update_test(UNTRUSTED, null, SUCCESS);
- add_update_test(EXPIRED, null, SUCCESS);
-
- // Tests that redirecting from http to other servers works as expected
- add_update_test(HTTP, HTTP, SUCCESS);
- add_update_test(HTTP, HTTPS, SUCCESS);
- add_update_test(HTTP, NOCERT, SUCCESS);
- add_update_test(HTTP, SELFSIGNED, SUCCESS);
- add_update_test(HTTP, UNTRUSTED, SUCCESS);
- add_update_test(HTTP, EXPIRED, SUCCESS);
-
- // Tests that redirecting from valid https to other servers works as expected
- add_update_test(HTTPS, HTTP, DOWNLOAD_ERROR);
- add_update_test(HTTPS, HTTPS, SUCCESS);
- add_update_test(HTTPS, NOCERT, SUCCESS);
- add_update_test(HTTPS, SELFSIGNED, SUCCESS);
- add_update_test(HTTPS, UNTRUSTED, SUCCESS);
- add_update_test(HTTPS, EXPIRED, SUCCESS);
-
- // Tests that redirecting from nocert https to other servers works as expected
- add_update_test(NOCERT, HTTP, DOWNLOAD_ERROR);
- add_update_test(NOCERT, HTTPS, SUCCESS);
- add_update_test(NOCERT, NOCERT, SUCCESS);
- add_update_test(NOCERT, SELFSIGNED, SUCCESS);
- add_update_test(NOCERT, UNTRUSTED, SUCCESS);
- add_update_test(NOCERT, EXPIRED, SUCCESS);
-
- // Tests that redirecting from self-signed https to other servers works as expected
- add_update_test(SELFSIGNED, HTTP, DOWNLOAD_ERROR);
- add_update_test(SELFSIGNED, HTTPS, SUCCESS);
- add_update_test(SELFSIGNED, NOCERT, SUCCESS);
- add_update_test(SELFSIGNED, SELFSIGNED, SUCCESS);
- add_update_test(SELFSIGNED, UNTRUSTED, SUCCESS);
- add_update_test(SELFSIGNED, EXPIRED, SUCCESS);
-
- // Tests that redirecting from untrusted https to other servers works as expected
- add_update_test(UNTRUSTED, HTTP, DOWNLOAD_ERROR);
- add_update_test(UNTRUSTED, HTTPS, SUCCESS);
- add_update_test(UNTRUSTED, NOCERT, SUCCESS);
- add_update_test(UNTRUSTED, SELFSIGNED, SUCCESS);
- add_update_test(UNTRUSTED, UNTRUSTED, SUCCESS);
- add_update_test(UNTRUSTED, EXPIRED, SUCCESS);
-
- // Tests that redirecting from expired https to other servers works as expected
- add_update_test(EXPIRED, HTTP, DOWNLOAD_ERROR);
- add_update_test(EXPIRED, HTTPS, SUCCESS);
- add_update_test(EXPIRED, NOCERT, SUCCESS);
- add_update_test(EXPIRED, SELFSIGNED, SUCCESS);
- add_update_test(EXPIRED, UNTRUSTED, SUCCESS);
- add_update_test(EXPIRED, EXPIRED, SUCCESS);
-
- run_update_tests(run_next_test);
-});