diff options
Diffstat (limited to 'toolkit/mozapps/webextensions/test/browser/browser_hotfix.js')
-rw-r--r-- | toolkit/mozapps/webextensions/test/browser/browser_hotfix.js | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/toolkit/mozapps/webextensions/test/browser/browser_hotfix.js b/toolkit/mozapps/webextensions/test/browser/browser_hotfix.js deleted file mode 100644 index b7bb3f580..000000000 --- a/toolkit/mozapps/webextensions/test/browser/browser_hotfix.js +++ /dev/null @@ -1,171 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -const PREF_EM_HOTFIX_ID = "extensions.hotfix.id"; -const PREF_EM_HOTFIX_LASTVERSION = "extensions.hotfix.lastVersion"; -const PREF_EM_HOTFIX_URL = "extensions.hotfix.url"; -const PREF_EM_HOTFIX_CERTS = "extensions.hotfix.certs."; -const PREF_EM_CERT_CHECKATTRIBUTES = "extensions.hotfix.cert.checkAttributes"; - -const PREF_INSTALL_REQUIREBUILTINCERTS = "extensions.install.requireBuiltInCerts"; -const PREF_UPDATE_REQUIREBUILTINCERTS = "extensions.update.requireBuiltInCerts"; - -const PREF_APP_UPDATE_ENABLED = "app.update.enabled"; -const PREF_APP_UPDATE_URL = "app.update.url"; - -const HOTFIX_ID = "hotfix@tests.mozilla.org"; - -/* - * Register an addon install listener and return a promise that: - * resolves with the AddonInstall object if the install succeeds - * rejects with the AddonInstall if the install fails - */ -function promiseInstallListener() { - return new Promise((resolve, reject) => { - let listener = { - onInstallEnded: ai => { - AddonManager.removeInstallListener(listener); - resolve(ai); - }, - onDownloadCancelled: ai => { - AddonManager.removeInstallListener(listener); - reject(ai); - } - }; - AddonManager.addInstallListener(listener); - }); -} - -function promiseSuccessfulInstall() { - return promiseInstallListener().then( - aInstall => { - ok(true, "Should have seen the install complete"); - is(aInstall.addon.id, HOTFIX_ID, "Should have installed the right add-on"); - aInstall.addon.uninstall(); - Services.prefs.clearUserPref(PREF_EM_HOTFIX_LASTVERSION); - }, - aInstall => { - ok(false, "Should not have seen the download cancelled"); - is(aInstall.addon.id, HOTFIX_ID, "Should have seen the right add-on"); - }); -} - -function promiseFailedInstall() { - return promiseInstallListener().then( - aInstall => { - ok(false, "Should not have seen the install complete"); - is(aInstall.addon.id, HOTFIX_ID, "Should have installed the right add-on"); - aInstall.addon.uninstall(); - Services.prefs.clearUserPref(PREF_EM_HOTFIX_LASTVERSION); - }, - aInstall => { - ok(true, "Should have seen the download cancelled"); - is(aInstall.addon.id, HOTFIX_ID, "Should have seen the right add-on"); - }); -} - -add_task(function setup() { - var oldAusUrl = Services.prefs.getDefaultBranch(null).getCharPref(PREF_APP_UPDATE_URL); - Services.prefs.getDefaultBranch(null).setCharPref(PREF_APP_UPDATE_URL, TESTROOT + "ausdummy.xml"); - Services.prefs.setBoolPref(PREF_APP_UPDATE_ENABLED, true); - Services.prefs.setBoolPref(PREF_INSTALL_REQUIREBUILTINCERTS, false); - Services.prefs.setBoolPref(PREF_UPDATE_REQUIREBUILTINCERTS, false); - Services.prefs.setCharPref(PREF_EM_HOTFIX_ID, HOTFIX_ID); - var oldURL = Services.prefs.getCharPref(PREF_EM_HOTFIX_URL); - Services.prefs.setCharPref(PREF_EM_HOTFIX_URL, TESTROOT + "signed_hotfix.rdf"); - - registerCleanupFunction(function() { - Services.prefs.setBoolPref(PREF_APP_UPDATE_ENABLED, false); - Services.prefs.getDefaultBranch(null).setCharPref(PREF_APP_UPDATE_URL, oldAusUrl); - Services.prefs.clearUserPref(PREF_EM_HOTFIX_ID); - Services.prefs.setCharPref(PREF_EM_HOTFIX_URL, oldURL); - Services.prefs.clearUserPref(PREF_INSTALL_REQUIREBUILTINCERTS); - Services.prefs.clearUserPref(PREF_UPDATE_REQUIREBUILTINCERTS); - - Services.prefs.clearUserPref(PREF_EM_CERT_CHECKATTRIBUTES); - var prefs = Services.prefs.getChildList(PREF_EM_HOTFIX_CERTS); - prefs.forEach(Services.prefs.clearUserPref); - }); -}); - -add_task(function* check_no_cert_checks() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, false); - yield Promise.all([ - promiseSuccessfulInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); -}); - -add_task(function* check_wrong_cert_fingerprint() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, true); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint", "foo"); - - yield Promise.all([ - promiseFailedInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint"); -}); - -add_task(function* check_right_cert_fingerprint() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, true); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint", "3E:B9:4E:07:12:FE:3C:01:41:46:13:46:FC:84:52:1A:8C:BE:1D:A2"); - - yield Promise.all([ - promiseSuccessfulInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); - - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint"); -}); - -add_task(function* check_multi_cert_fingerprint_1() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, true); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint", "3E:B9:4E:07:12:FE:3C:01:41:46:13:46:FC:84:52:1A:8C:BE:1D:A2"); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "2.sha1Fingerprint", "foo"); - - yield Promise.all([ - promiseSuccessfulInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); - - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint"); - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "2.sha1Fingerprint"); -}); - -add_task(function* check_multi_cert_fingerprint_2() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, true); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint", "foo"); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "2.sha1Fingerprint", "3E:B9:4E:07:12:FE:3C:01:41:46:13:46:FC:84:52:1A:8C:BE:1D:A2"); - - yield Promise.all([ - promiseSuccessfulInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); - - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint"); - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "2.sha1Fingerprint"); -}); - -add_task(function* check_no_cert_no_checks() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, false); - Services.prefs.setCharPref(PREF_EM_HOTFIX_URL, TESTROOT + "unsigned_hotfix.rdf"); - - yield Promise.all([ - promiseSuccessfulInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); -}); - -add_task(function* check_no_cert_cert_fingerprint_check() { - Services.prefs.setBoolPref(PREF_EM_CERT_CHECKATTRIBUTES, true); - Services.prefs.setCharPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint", "3E:B9:4E:07:12:FE:3C:01:41:46:13:46:FC:84:52:1A:8C:BE:1D:A2"); - - yield Promise.all([ - promiseFailedInstall(), - AddonManagerPrivate.backgroundUpdateCheck() - ]); - - Services.prefs.clearUserPref(PREF_EM_HOTFIX_CERTS + "1.sha1Fingerprint"); -}); |