summaryrefslogtreecommitdiffstats
path: root/browser/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'browser/extensions')
-rw-r--r--browser/extensions/formautofill/moz.build4
-rw-r--r--browser/extensions/formautofill/test/browser/.eslintrc.js7
-rw-r--r--browser/extensions/formautofill/test/browser/browser.ini3
-rw-r--r--browser/extensions/formautofill/test/browser/browser_check_installed.js14
-rw-r--r--browser/extensions/formautofill/test/unit/.eslintrc5
-rw-r--r--browser/extensions/formautofill/test/unit/head.js81
-rw-r--r--browser/extensions/formautofill/test/unit/test_autofillFormFields.js200
-rw-r--r--browser/extensions/formautofill/test/unit/test_collectFormFields.js122
-rw-r--r--browser/extensions/formautofill/test/unit/test_populateFieldValues.js106
-rw-r--r--browser/extensions/formautofill/test/unit/test_profileStorage.js222
-rw-r--r--browser/extensions/formautofill/test/unit/xpcshell.ini12
-rw-r--r--browser/extensions/pdfjs/moz.build2
-rw-r--r--browser/extensions/pdfjs/test/.eslintrc.js7
-rw-r--r--browser/extensions/pdfjs/test/browser.ini10
-rw-r--r--browser/extensions/pdfjs/test/browser_pdfjs_main.js67
-rw-r--r--browser/extensions/pdfjs/test/browser_pdfjs_navigation.js283
-rw-r--r--browser/extensions/pdfjs/test/browser_pdfjs_savedialog.js65
-rw-r--r--browser/extensions/pdfjs/test/browser_pdfjs_views.js67
-rw-r--r--browser/extensions/pdfjs/test/browser_pdfjs_zoom.js154
-rw-r--r--browser/extensions/pdfjs/test/file_pdfjs_test.pdfbin150611 -> 0 bytes
-rw-r--r--browser/extensions/pdfjs/test/head.js15
-rw-r--r--browser/extensions/pocket/moz.build2
-rw-r--r--browser/extensions/pocket/test/.eslintrc.js7
-rw-r--r--browser/extensions/pocket/test/browser.ini6
-rw-r--r--browser/extensions/pocket/test/browser_pocket_ui_check.js61
-rw-r--r--browser/extensions/pocket/test/head.js67
-rw-r--r--browser/extensions/pocket/test/test.html11
-rw-r--r--browser/extensions/webcompat/moz.build2
-rw-r--r--browser/extensions/webcompat/test/browser/.eslintrc.js7
-rw-r--r--browser/extensions/webcompat/test/browser/browser.ini3
-rw-r--r--browser/extensions/webcompat/test/browser/browser_check_installed.js13
31 files changed, 0 insertions, 1625 deletions
diff --git a/browser/extensions/formautofill/moz.build b/browser/extensions/formautofill/moz.build
index 92577db53..abcc659ee 100644
--- a/browser/extensions/formautofill/moz.build
+++ b/browser/extensions/formautofill/moz.build
@@ -15,8 +15,4 @@ FINAL_TARGET_PP_FILES.features['formautofill@mozilla.org'] += [
'install.rdf.in'
]
-BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
-
-XPCSHELL_TESTS_MANIFESTS += ['test/unit/xpcshell.ini']
-
JAR_MANIFESTS += ['jar.mn']
diff --git a/browser/extensions/formautofill/test/browser/.eslintrc.js b/browser/extensions/formautofill/test/browser/.eslintrc.js
deleted file mode 100644
index 52a2004c9..000000000
--- a/browser/extensions/formautofill/test/browser/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = { // eslint-disable-line no-undef
- "extends": [
- "../../../../../testing/mochitest/browser.eslintrc.js",
- ],
-};
diff --git a/browser/extensions/formautofill/test/browser/browser.ini b/browser/extensions/formautofill/test/browser/browser.ini
deleted file mode 100644
index 500224636..000000000
--- a/browser/extensions/formautofill/test/browser/browser.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[DEFAULT]
-
-[browser_check_installed.js]
diff --git a/browser/extensions/formautofill/test/browser/browser_check_installed.js b/browser/extensions/formautofill/test/browser/browser_check_installed.js
deleted file mode 100644
index b018c0f71..000000000
--- a/browser/extensions/formautofill/test/browser/browser_check_installed.js
+++ /dev/null
@@ -1,14 +0,0 @@
-"use strict";
-
-add_task(function* test_enabled() {
- let addon = yield new Promise(
- resolve => AddonManager.getAddonByID("formautofill@mozilla.org", resolve)
- );
- isnot(addon, null, "Check addon exists");
- is(addon.version, "1.0", "Check version");
- is(addon.name, "Form Autofill", "Check name");
- ok(addon.isCompatible, "Check application compatibility");
- ok(!addon.appDisabled, "Check not app disabled");
- ok(addon.isActive, "Check addon is active");
- is(addon.type, "extension", "Check type is 'extension'");
-});
diff --git a/browser/extensions/formautofill/test/unit/.eslintrc b/browser/extensions/formautofill/test/unit/.eslintrc
deleted file mode 100644
index 8e33fb0c6..000000000
--- a/browser/extensions/formautofill/test/unit/.eslintrc
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "extends": [
- "../../../../../testing/xpcshell/xpcshell.eslintrc.js"
- ],
-}
diff --git a/browser/extensions/formautofill/test/unit/head.js b/browser/extensions/formautofill/test/unit/head.js
deleted file mode 100644
index 67e3bd60b..000000000
--- a/browser/extensions/formautofill/test/unit/head.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Provides infrastructure for automated login components tests.
- */
-
- /* exported importAutofillModule, getTempFile */
-
-"use strict";
-
-const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://testing-common/MockDocument.jsm");
-
-// Redirect the path of the resouce in addon to the exact file path.
-let defineLazyModuleGetter = XPCOMUtils.defineLazyModuleGetter;
-XPCOMUtils.defineLazyModuleGetter = function() {
- let result = /^resource\:\/\/formautofill\/(.+)$/.exec(arguments[2]);
- if (result) {
- arguments[2] = Services.io.newFileURI(do_get_file(result[1])).spec;
- }
- return defineLazyModuleGetter.apply(this, arguments);
-};
-
-// Load the module by Service newFileURI API for running extension's XPCShell test
-function importAutofillModule(module) {
- return Cu.import(Services.io.newFileURI(do_get_file(module)).spec);
-}
-
-XPCOMUtils.defineLazyModuleGetter(this, "DownloadPaths",
- "resource://gre/modules/DownloadPaths.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
- "resource://gre/modules/FileUtils.jsm");
-
-// While the previous test file should have deleted all the temporary files it
-// used, on Windows these might still be pending deletion on the physical file
-// system. Thus, start from a new base number every time, to make a collision
-// with a file that is still pending deletion highly unlikely.
-let gFileCounter = Math.floor(Math.random() * 1000000);
-
-/**
- * Returns a reference to a temporary file, that is guaranteed not to exist, and
- * to have never been created before.
- *
- * @param {string} leafName
- * Suggested leaf name for the file to be created.
- *
- * @returns {nsIFile} pointing to a non-existent file in a temporary directory.
- *
- * @note It is not enough to delete the file if it exists, or to delete the file
- * after calling nsIFile.createUnique, because on Windows the delete
- * operation in the file system may still be pending, preventing a new
- * file with the same name to be created.
- */
-function getTempFile(leafName) {
- // Prepend a serial number to the extension in the suggested leaf name.
- let [base, ext] = DownloadPaths.splitBaseNameAndExtension(leafName);
- let finalLeafName = base + "-" + gFileCounter + ext;
- gFileCounter++;
-
- // Get a file reference under the temporary directory for this test file.
- let file = FileUtils.getFile("TmpD", [finalLeafName]);
- do_check_false(file.exists());
-
- do_register_cleanup(function() {
- if (file.exists()) {
- file.remove(false);
- }
- });
-
- return file;
-}
-
-add_task(function* test_common_initialize() {
- Services.prefs.setBoolPref("dom.forms.autocomplete.experimental", true);
-
- // Clean up after every test.
- do_register_cleanup(() => {
- Services.prefs.setBoolPref("dom.forms.autocomplete.experimental", false);
- });
-});
diff --git a/browser/extensions/formautofill/test/unit/test_autofillFormFields.js b/browser/extensions/formautofill/test/unit/test_autofillFormFields.js
deleted file mode 100644
index a842e84e8..000000000
--- a/browser/extensions/formautofill/test/unit/test_autofillFormFields.js
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Test for form auto fill content helper fill all inputs function.
- */
-
-"use strict";
-
-let {FormAutofillHandler} = importAutofillModule("FormAutofillContent.jsm");
-
-const TESTCASES = [
- {
- description: "Form without autocomplete property",
- document: `<form><input id="given-name"><input id="family-name">
- <input id="street-addr"><input id="city"><input id="country">
- <input id='email'><input id="tel"></form>`,
- fieldDetails: [],
- profileData: [],
- expectedResult: {
- "given-name": "",
- "family-name": "",
- "street-addr": "",
- "city": "",
- "country": "",
- "email": "",
- "tel": "",
- },
- },
- {
- description: "Form with autocomplete properties and 1 token",
- document: `<form><input id="given-name" autocomplete="given-name">
- <input id="family-name" autocomplete="family-name">
- <input id="street-addr" autocomplete="street-address">
- <input id="city" autocomplete="address-level2">
- <input id="country" autocomplete="country">
- <input id="email" autocomplete="email">
- <input id="tel" autocomplete="tel"></form>`,
- fieldDetails: [
- {"section": "", "addressType": "", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- profileData: [
- {"section": "", "addressType": "", "fieldName": "given-name", "contactType": "", "index": 0, "value": "foo"},
- {"section": "", "addressType": "", "fieldName": "family-name", "contactType": "", "index": 1, "value": "bar"},
- {"section": "", "addressType": "", "fieldName": "street-address", "contactType": "", "index": 2, "value": "2 Harrison St"},
- {"section": "", "addressType": "", "fieldName": "address-level2", "contactType": "", "index": 3, "value": "San Francisco"},
- {"section": "", "addressType": "", "fieldName": "country", "contactType": "", "index": 4, "value": "US"},
- {"section": "", "addressType": "", "fieldName": "email", "contactType": "", "index": 5, "value": "foo@mozilla.com"},
- {"section": "", "addressType": "", "fieldName": "tel", "contactType": "", "index": 6, "value": "1234567"},
- ],
- expectedResult: {
- "given-name": "foo",
- "family-name": "bar",
- "street-addr": "2 Harrison St",
- "city": "San Francisco",
- "country": "US",
- "email": "foo@mozilla.com",
- "tel": "1234567",
- },
- },
- {
- description: "Form with autocomplete properties and 2 tokens",
- document: `<form><input id="given-name" autocomplete="shipping given-name">
- <input id="family-name" autocomplete="shipping family-name">
- <input id="street-addr" autocomplete="shipping street-address">
- <input id="city" autocomplete="shipping address-level2">
- <input id="country" autocomplete="shipping country">
- <input id='email' autocomplete="shipping email">
- <input id="tel" autocomplete="shipping tel"></form>`,
- fieldDetails: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- profileData: [
- {"section": "", "addressType": "shipping", "fieldName": "given-name", "contactType": "", "index": 0, "value": "foo"},
- {"section": "", "addressType": "shipping", "fieldName": "family-name", "contactType": "", "index": 1, "value": "bar"},
- {"section": "", "addressType": "shipping", "fieldName": "street-address", "contactType": "", "index": 2, "value": "2 Harrison St"},
- {"section": "", "addressType": "shipping", "fieldName": "address-level2", "contactType": "", "index": 3, "value": "San Francisco"},
- {"section": "", "addressType": "shipping", "fieldName": "country", "contactType": "", "index": 4, "value": "US"},
- {"section": "", "addressType": "shipping", "fieldName": "email", "contactType": "", "index": 5, "value": "foo@mozilla.com"},
- {"section": "", "addressType": "shipping", "fieldName": "tel", "contactType": "", "index": 6, "value": "1234567"},
- ],
- expectedResult: {
- "given-name": "foo",
- "family-name": "bar",
- "street-addr": "2 Harrison St",
- "city": "San Francisco",
- "country": "US",
- "email": "foo@mozilla.com",
- "tel": "1234567",
- },
- },
- {
- description: "Form with autocomplete properties and profile is partly matched",
- document: `<form><input id="given-name" autocomplete="shipping given-name">
- <input id="family-name" autocomplete="shipping family-name">
- <input id="street-addr" autocomplete="shipping street-address">
- <input id="city" autocomplete="shipping address-level2">
- <input id="country" autocomplete="shipping country">
- <input id='email' autocomplete="shipping email">
- <input id="tel" autocomplete="shipping tel"></form>`,
- fieldDetails: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- profileData: [
- {"section": "", "addressType": "shipping", "fieldName": "given-name", "contactType": "", "index": 0, "value": "foo"},
- {"section": "", "addressType": "shipping", "fieldName": "family-name", "contactType": "", "index": 1, "value": "bar"},
- {"section": "", "addressType": "shipping", "fieldName": "street-address", "contactType": "", "index": 2, "value": "2 Harrison St"},
- {"section": "", "addressType": "shipping", "fieldName": "address-level2", "contactType": "", "index": 3, "value": "San Francisco"},
- {"section": "", "addressType": "shipping", "fieldName": "country", "contactType": "", "index": 4, "value": "US"},
- {"section": "", "addressType": "shipping", "fieldName": "email", "contactType": "", "index": 5},
- {"section": "", "addressType": "shipping", "fieldName": "tel", "contactType": "", "index": 6},
- ],
- expectedResult: {
- "given-name": "foo",
- "family-name": "bar",
- "street-addr": "2 Harrison St",
- "city": "San Francisco",
- "country": "US",
- "email": "",
- "tel": "",
- },
- },
- {
- description: "Form with autocomplete properties but mismatched",
- document: `<form><input id="given-name" autocomplete="shipping given-name">
- <input id="family-name" autocomplete="shipping family-name">
- <input id="street-addr" autocomplete="billing street-address">
- <input id="city" autocomplete="billing address-level2">
- <input id="country" autocomplete="billing country">
- <input id='email' autocomplete="shipping email">
- <input id="tel" autocomplete="shipping tel"></form>`,
- fieldDetails: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- profileData: [
- {"section": "", "addressType": "shipping", "fieldName": "given-name", "contactType": "", "index": 0, "value": "foo"},
- {"section": "", "addressType": "shipping", "fieldName": "family-name", "contactType": "", "index": 1, "value": "bar"},
- {"section": "", "addressType": "shipping", "fieldName": "street-address", "contactType": "", "index": 2, "value": "2 Harrison St"},
- {"section": "", "addressType": "shipping", "fieldName": "address-level2", "contactType": "", "index": 3, "value": "San Francisco"},
- {"section": "", "addressType": "shipping", "fieldName": "country", "contactType": "", "index": 4, "value": "US"},
- {"section": "", "addressType": "shipping", "fieldName": "email", "contactType": "", "index": 5, "value": "foo@mozilla.com"},
- {"section": "", "addressType": "shipping", "fieldName": "tel", "contactType": "", "index": 6, "value": "1234567"},
- ],
- expectedResult: {
- "given-name": "foo",
- "family-name": "bar",
- "street-addr": "",
- "city": "",
- "country": "",
- "email": "foo@mozilla.com",
- "tel": "1234567",
- },
- },
-];
-
-for (let tc of TESTCASES) {
- (function() {
- let testcase = tc;
- add_task(function* () {
- do_print("Starting testcase: " + testcase.description);
-
- let doc = MockDocument.createTestDocument("http://localhost:8080/test/",
- testcase.document);
- let form = doc.querySelector("form");
- let handler = new FormAutofillHandler(form);
-
- handler.fieldDetails = testcase.fieldDetails;
- handler.fieldDetails.forEach((field, index) => {
- field.element = doc.querySelectorAll("input")[index];
- });
-
- handler.autofillFormFields(testcase.profileData);
- for (let id in testcase.expectedResult) {
- Assert.equal(doc.getElementById(id).value, testcase.expectedResult[id],
- "Check the " + id + " fields were filled with correct data");
- }
- });
- })();
-}
diff --git a/browser/extensions/formautofill/test/unit/test_collectFormFields.js b/browser/extensions/formautofill/test/unit/test_collectFormFields.js
deleted file mode 100644
index 52549b746..000000000
--- a/browser/extensions/formautofill/test/unit/test_collectFormFields.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Test for form auto fill content helper collectFormFields functions.
- */
-
-"use strict";
-
-let {FormAutofillHandler} = importAutofillModule("FormAutofillContent.jsm");
-
-const TESTCASES = [
- {
- description: "Form without autocomplete property",
- document: `<form><input id="given-name"><input id="family-name">
- <input id="street-addr"><input id="city"><input id="country">
- <input id='email'><input id="tel"></form>`,
- returnedFormat: [],
- fieldDetails: [],
- },
- {
- description: "Form with autocomplete properties and 1 token",
- document: `<form><input id="given-name" autocomplete="given-name">
- <input id="family-name" autocomplete="family-name">
- <input id="street-addr" autocomplete="street-address">
- <input id="city" autocomplete="address-level2">
- <input id="country" autocomplete="country">
- <input id="email" autocomplete="email">
- <input id="tel" autocomplete="tel"></form>`,
- returnedFormat: [
- {"section": "", "addressType": "", "contactType": "", "fieldName": "given-name", "index": 0},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "family-name", "index": 1},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "street-address", "index": 2},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "address-level2", "index": 3},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "country", "index": 4},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "email", "index": 5},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "tel", "index": 6},
- ],
- fieldDetails: [
- {"section": "", "addressType": "", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- },
- {
- description: "Form with autocomplete properties and 2 tokens",
- document: `<form><input id="given-name" autocomplete="shipping given-name">
- <input id="family-name" autocomplete="shipping family-name">
- <input id="street-addr" autocomplete="shipping street-address">
- <input id="city" autocomplete="shipping address-level2">
- <input id="country" autocomplete="shipping country">
- <input id='email' autocomplete="shipping email">
- <input id="tel" autocomplete="shipping tel"></form>`,
- returnedFormat: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "index": 0},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "index": 1},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "index": 2},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "index": 3},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "index": 4},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "index": 5},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "index": 6},
- ],
- fieldDetails: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- },
- {
- description: "Form with autocomplete properties and profile is partly matched",
- document: `<form><input id="given-name" autocomplete="shipping given-name">
- <input id="family-name" autocomplete="shipping family-name">
- <input id="street-addr" autocomplete="shipping street-address">
- <input id="city" autocomplete="shipping address-level2">
- <input id="country" autocomplete="shipping country">
- <input id='email' autocomplete="shipping email">
- <input id="tel" autocomplete="shipping tel"></form>`,
- returnedFormat: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "index": 0},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "index": 1},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "index": 2},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "index": 3},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "index": 4},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "index": 5},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "index": 6},
- ],
- fieldDetails: [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "given-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "family-name", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email", "element": {}},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel", "element": {}},
- ],
- },
-];
-
-for (let tc of TESTCASES) {
- (function() {
- let testcase = tc;
- add_task(function* () {
- do_print("Starting testcase: " + testcase.description);
-
- let doc = MockDocument.createTestDocument("http://localhost:8080/test/",
- testcase.document);
- let form = doc.querySelector("form");
- let handler = new FormAutofillHandler(form);
-
- Assert.deepEqual(handler.collectFormFields(), testcase.returnedFormat,
- "Check the format of form autofill were returned correctly");
-
- Assert.deepEqual(handler.fieldDetails, testcase.fieldDetails,
- "Check the fieldDetails were set correctly");
- });
- })();
-}
diff --git a/browser/extensions/formautofill/test/unit/test_populateFieldValues.js b/browser/extensions/formautofill/test/unit/test_populateFieldValues.js
deleted file mode 100644
index 1215cbd16..000000000
--- a/browser/extensions/formautofill/test/unit/test_populateFieldValues.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Test for populating field values in Form Autofill Parent.
- */
-
-/* global FormAutofillParent */
-
-"use strict";
-
-importAutofillModule("FormAutofillParent.jsm");
-
-do_get_profile();
-
-const TEST_FIELDS = [
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "organization"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "street-address"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level2"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "address-level1"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "postal-code"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "country"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "tel"},
- {"section": "", "addressType": "shipping", "contactType": "", "fieldName": "email"},
-];
-
-const TEST_GUID = "test-guid";
-
-const TEST_PROFILE = {
- guid: TEST_GUID,
- organization: "World Wide Web Consortium",
- streetAddress: "32 Vassar Street\nMIT Room 32-G524",
- addressLevel2: "Cambridge",
- addressLevel1: "MA",
- postalCode: "02139",
- country: "US",
- tel: "+1 617 253 5702",
- email: "timbl@w3.org",
-};
-
-function camelCase(str) {
- return str.toLowerCase().replace(/-([a-z])/g, s => s[1].toUpperCase());
-}
-
-add_task(function* test_populateFieldValues() {
- FormAutofillParent.init();
-
- let store = FormAutofillParent.getProfileStore();
- do_check_neq(store, null);
-
- store.get = function(guid) {
- do_check_eq(guid, TEST_GUID);
- return store._clone(TEST_PROFILE);
- };
-
- let notifyUsedCalledCount = 0;
- store.notifyUsed = function(guid) {
- do_check_eq(guid, TEST_GUID);
- notifyUsedCalledCount++;
- };
-
- yield new Promise((resolve) => {
- FormAutofillParent.receiveMessage({
- name: "FormAutofill:PopulateFieldValues",
- data: {
- guid: TEST_GUID,
- fields: TEST_FIELDS,
- },
- target: {
- sendAsyncMessage: function(name, data) {
- do_check_eq(name, "FormAutofill:fillForm");
-
- let fields = data.fields;
- do_check_eq(fields.length, TEST_FIELDS.length);
-
- for (let i = 0; i < fields.length; i++) {
- do_check_eq(fields[i].fieldName, TEST_FIELDS[i].fieldName);
- do_check_eq(fields[i].value,
- TEST_PROFILE[camelCase(fields[i].fieldName)]);
- }
-
- resolve();
- },
- },
- });
- });
-
- do_check_eq(notifyUsedCalledCount, 1);
-
- FormAutofillParent._uninit();
- do_check_null(FormAutofillParent.getProfileStore());
-});
-
-add_task(function* test_populateFieldValues_with_invalid_guid() {
- FormAutofillParent.init();
-
- Assert.throws(() => {
- FormAutofillParent.receiveMessage({
- name: "FormAutofill:PopulateFieldValues",
- data: {
- guid: "invalid-guid",
- fields: TEST_FIELDS,
- },
- target: {},
- });
- }, /No matching profile\./);
-
- FormAutofillParent._uninit();
-});
diff --git a/browser/extensions/formautofill/test/unit/test_profileStorage.js b/browser/extensions/formautofill/test/unit/test_profileStorage.js
deleted file mode 100644
index 018adedb8..000000000
--- a/browser/extensions/formautofill/test/unit/test_profileStorage.js
+++ /dev/null
@@ -1,222 +0,0 @@
-/**
- * Tests ProfileStorage object.
- */
-
-/* global ProfileStorage */
-
-"use strict";
-
-Cu.import("resource://gre/modules/Task.jsm");
-Cu.import(Services.io.newFileURI(do_get_file("ProfileStorage.jsm")).spec);
-
-const TEST_STORE_FILE_NAME = "test-profile.json";
-
-const TEST_PROFILE_1 = {
- organization: "World Wide Web Consortium",
- streetAddress: "32 Vassar Street\nMIT Room 32-G524",
- addressLevel2: "Cambridge",
- addressLevel1: "MA",
- postalCode: "02139",
- country: "US",
- tel: "+1 617 253 5702",
- email: "timbl@w3.org",
-};
-
-const TEST_PROFILE_2 = {
- streetAddress: "Some Address",
- country: "US",
-};
-
-const TEST_PROFILE_3 = {
- streetAddress: "Other Address",
- postalCode: "12345",
-};
-
-const TEST_PROFILE_WITH_INVALID_FIELD = {
- streetAddress: "Another Address",
- invalidField: "INVALID",
-};
-
-let prepareTestProfiles = Task.async(function* (path) {
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- profileStorage.add(TEST_PROFILE_1);
- profileStorage.add(TEST_PROFILE_2);
- yield profileStorage._saveImmediately();
-});
-
-let do_check_profile_matches = (profileWithMeta, profile) => {
- for (let key in profile) {
- do_check_eq(profileWithMeta[key], profile[key]);
- }
-};
-
-add_task(function* test_initialize() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- do_check_eq(profileStorage._store.data.version, 1);
- do_check_eq(profileStorage._store.data.profiles.length, 0);
-
- let data = profileStorage._store.data;
-
- yield profileStorage._saveImmediately();
-
- profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- Assert.deepEqual(profileStorage._store.data, data);
-});
-
-add_task(function* test_getAll() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- yield prepareTestProfiles(path);
-
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profiles = profileStorage.getAll();
-
- do_check_eq(profiles.length, 2);
- do_check_profile_matches(profiles[0], TEST_PROFILE_1);
- do_check_profile_matches(profiles[1], TEST_PROFILE_2);
-
- // Modifying output shouldn't affect the storage.
- profiles[0].organization = "test";
- do_check_profile_matches(profileStorage.getAll()[0], TEST_PROFILE_1);
-});
-
-add_task(function* test_get() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- yield prepareTestProfiles(path);
-
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profiles = profileStorage.getAll();
- let guid = profiles[0].guid;
-
- let profile = profileStorage.get(guid);
- do_check_profile_matches(profile, TEST_PROFILE_1);
-
- // Modifying output shouldn't affect the storage.
- profile.organization = "test";
- do_check_profile_matches(profileStorage.get(guid), TEST_PROFILE_1);
-
- Assert.throws(() => profileStorage.get("INVALID_GUID"),
- /No matching profile\./);
-});
-
-add_task(function* test_add() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- yield prepareTestProfiles(path);
-
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profiles = profileStorage.getAll();
-
- do_check_eq(profiles.length, 2);
-
- do_check_profile_matches(profiles[0], TEST_PROFILE_1);
- do_check_profile_matches(profiles[1], TEST_PROFILE_2);
-
- do_check_neq(profiles[0].guid, undefined);
- do_check_neq(profiles[0].timeCreated, undefined);
- do_check_eq(profiles[0].timeLastModified, profiles[0].timeCreated);
- do_check_eq(profiles[0].timeLastUsed, 0);
- do_check_eq(profiles[0].timesUsed, 0);
-
- Assert.throws(() => profileStorage.add(TEST_PROFILE_WITH_INVALID_FIELD),
- /"invalidField" is not a valid field\./);
-});
-
-add_task(function* test_update() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- yield prepareTestProfiles(path);
-
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profiles = profileStorage.getAll();
- let guid = profiles[1].guid;
- let timeLastModified = profiles[1].timeLastModified;
-
- do_check_neq(profiles[1].country, undefined);
-
- profileStorage.update(guid, TEST_PROFILE_3);
- yield profileStorage._saveImmediately();
-
- profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profile = profileStorage.get(guid);
-
- do_check_eq(profile.country, undefined);
- do_check_neq(profile.timeLastModified, timeLastModified);
- do_check_profile_matches(profile, TEST_PROFILE_3);
-
- Assert.throws(
- () => profileStorage.update("INVALID_GUID", TEST_PROFILE_3),
- /No matching profile\./
- );
-
- Assert.throws(
- () => profileStorage.update(guid, TEST_PROFILE_WITH_INVALID_FIELD),
- /"invalidField" is not a valid field\./
- );
-});
-
-add_task(function* test_notifyUsed() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- yield prepareTestProfiles(path);
-
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profiles = profileStorage.getAll();
- let guid = profiles[1].guid;
- let timeLastUsed = profiles[1].timeLastUsed;
- let timesUsed = profiles[1].timesUsed;
-
- profileStorage.notifyUsed(guid);
- yield profileStorage._saveImmediately();
-
- profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profile = profileStorage.get(guid);
-
- do_check_eq(profile.timesUsed, timesUsed + 1);
- do_check_neq(profile.timeLastUsed, timeLastUsed);
-
- Assert.throws(() => profileStorage.notifyUsed("INVALID_GUID"),
- /No matching profile\./);
-});
-
-add_task(function* test_remove() {
- let path = getTempFile(TEST_STORE_FILE_NAME).path;
- yield prepareTestProfiles(path);
-
- let profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- let profiles = profileStorage.getAll();
- let guid = profiles[1].guid;
-
- do_check_eq(profiles.length, 2);
-
- profileStorage.remove(guid);
- yield profileStorage._saveImmediately();
-
- profileStorage = new ProfileStorage(path);
- yield profileStorage.initialize();
-
- profiles = profileStorage.getAll();
-
- do_check_eq(profiles.length, 1);
-
- Assert.throws(() => profileStorage.get(guid), /No matching profile\./);
-});
diff --git a/browser/extensions/formautofill/test/unit/xpcshell.ini b/browser/extensions/formautofill/test/unit/xpcshell.ini
deleted file mode 100644
index 2c5763681..000000000
--- a/browser/extensions/formautofill/test/unit/xpcshell.ini
+++ /dev/null
@@ -1,12 +0,0 @@
-[DEFAULT]
-head = head.js
-tail =
-support-files =
- ../../content/FormAutofillContent.jsm
- ../../content/FormAutofillParent.jsm
- ../../content/ProfileStorage.jsm
-
-[test_autofillFormFields.js]
-[test_collectFormFields.js]
-[test_populateFieldValues.js]
-[test_profileStorage.js]
diff --git a/browser/extensions/pdfjs/moz.build b/browser/extensions/pdfjs/moz.build
index a1d2634da..aac3a838c 100644
--- a/browser/extensions/pdfjs/moz.build
+++ b/browser/extensions/pdfjs/moz.build
@@ -4,6 +4,4 @@
# 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/.
-BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
-
JAR_MANIFESTS += ['jar.mn']
diff --git a/browser/extensions/pdfjs/test/.eslintrc.js b/browser/extensions/pdfjs/test/.eslintrc.js
deleted file mode 100644
index c764b133d..000000000
--- a/browser/extensions/pdfjs/test/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
- "extends": [
- "../../../../testing/mochitest/browser.eslintrc.js"
- ]
-};
diff --git a/browser/extensions/pdfjs/test/browser.ini b/browser/extensions/pdfjs/test/browser.ini
deleted file mode 100644
index fb4aa9afc..000000000
--- a/browser/extensions/pdfjs/test/browser.ini
+++ /dev/null
@@ -1,10 +0,0 @@
-[DEFAULT]
-support-files =
- file_pdfjs_test.pdf
- head.js
-
-[browser_pdfjs_main.js]
-[browser_pdfjs_navigation.js]
-[browser_pdfjs_savedialog.js]
-[browser_pdfjs_views.js]
-[browser_pdfjs_zoom.js]
diff --git a/browser/extensions/pdfjs/test/browser_pdfjs_main.js b/browser/extensions/pdfjs/test/browser_pdfjs_main.js
deleted file mode 100644
index 9660e92c1..000000000
--- a/browser/extensions/pdfjs/test/browser_pdfjs_main.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
-const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
-
-add_task(function* test() {
- let handlerService = Cc["@mozilla.org/uriloader/handler-service;1"].getService(Ci.nsIHandlerService);
- let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
- let handlerInfo = mimeService.getFromTypeAndExtension('application/pdf', 'pdf');
-
- // Make sure pdf.js is the default handler.
- is(handlerInfo.alwaysAskBeforeHandling, false, 'pdf handler defaults to always-ask is false');
- is(handlerInfo.preferredAction, Ci.nsIHandlerInfo.handleInternally, 'pdf handler defaults to internal');
-
- info('Pref action: ' + handlerInfo.preferredAction);
-
- yield BrowserTestUtils.withNewTab({ gBrowser: gBrowser, url: "about:blank" },
- function* (newTabBrowser) {
- yield waitForPdfJS(newTabBrowser, TESTROOT + "file_pdfjs_test.pdf");
-
- ok(gBrowser.isFindBarInitialized(), "Browser FindBar initialized!");
-
- yield ContentTask.spawn(newTabBrowser, null, function* () {
- //
- // Overall sanity tests
- //
- Assert.ok(content.document.querySelector('div#viewer'), "document content has viewer UI");
- Assert.ok('PDFJS' in content.wrappedJSObject, "window content has PDFJS object");
-
- //
- // Sidebar: open
- //
- var sidebar = content.document.querySelector('button#sidebarToggle'),
- outerContainer = content.document.querySelector('div#outerContainer');
-
- sidebar.click();
- Assert.ok(outerContainer.classList.contains('sidebarOpen'), "sidebar opens on click");
-
- //
- // Sidebar: close
- //
- sidebar.click();
- Assert.ok(!outerContainer.classList.contains('sidebarOpen'), "sidebar closes on click");
-
- //
- // Page change from prev/next buttons
- //
- var prevPage = content.document.querySelector('button#previous'),
- nextPage = content.document.querySelector('button#next');
-
- var pgNumber = content.document.querySelector('input#pageNumber').value;
- Assert.equal(parseInt(pgNumber, 10), 1, "initial page is 1");
-
- //
- // Bookmark button
- //
- var viewBookmark = content.document.querySelector('a#viewBookmark');
- viewBookmark.click();
-
- Assert.ok(viewBookmark.href.length > 0, "viewBookmark button has href");
-
- var viewer = content.wrappedJSObject.PDFViewerApplication;
- yield viewer.close();
- });
- });
-});
diff --git a/browser/extensions/pdfjs/test/browser_pdfjs_navigation.js b/browser/extensions/pdfjs/test/browser_pdfjs_navigation.js
deleted file mode 100644
index b01a87ec8..000000000
--- a/browser/extensions/pdfjs/test/browser_pdfjs_navigation.js
+++ /dev/null
@@ -1,283 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-requestLongerTimeout(2);
-
-Components.utils.import("resource://gre/modules/Promise.jsm", this);
-
-const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
-const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
-
-const PDF_OUTLINE_ITEMS = 17;
-const TESTS = [
- {
- action: {
- selector: "button#next",
- event: "click"
- },
- expectedPage: 2,
- message: "navigated to next page using NEXT button"
-
- },
- {
- action: {
- selector: "button#previous",
- event: "click"
- },
- expectedPage: 1,
- message: "navigated to previous page using PREV button"
- },
- {
- action: {
- selector: "button#next",
- event: "click"
- },
- expectedPage: 2,
- message: "navigated to next page using NEXT button"
- },
- {
- action: {
- selector: "input#pageNumber",
- value: 1,
- event: "change"
- },
- expectedPage: 1,
- message: "navigated to first page using pagenumber"
- },
- {
- action: {
- selector: "#thumbnailView a:nth-child(4)",
- event: "click"
- },
- expectedPage: 4,
- message: "navigated to 4th page using thumbnail view"
- },
- {
- action: {
- selector: "#thumbnailView a:nth-child(2)",
- event: "click"
- },
- expectedPage: 2,
- message: "navigated to 2nd page using thumbnail view"
- },
- {
- action: {
- selector: "#viewer",
- event: "keydown",
- keyCode: 36
- },
- expectedPage: 1,
- message: "navigated to 1st page using 'home' key"
- },
- {
- action: {
- selector: "#viewer",
- event: "keydown",
- keyCode: 34
- },
- expectedPage: 2,
- message: "navigated to 2nd page using 'Page Down' key"
- },
- {
- action: {
- selector: "#viewer",
- event: "keydown",
- keyCode: 33
- },
- expectedPage: 1,
- message: "navigated to 1st page using 'Page Up' key"
- },
- {
- action: {
- selector: "#viewer",
- event: "keydown",
- keyCode: 39
- },
- expectedPage: 2,
- message: "navigated to 2nd page using 'right' key"
- },
- {
- action: {
- selector: "#viewer",
- event: "keydown",
- keyCode: 37
- },
- expectedPage: 1,
- message: "navigated to 1st page using 'left' key"
- },
- {
- action: {
- selector: "#viewer",
- event: "keydown",
- keyCode: 35
- },
- expectedPage: 5,
- message: "navigated to last page using 'home' key"
- },
- {
- action: {
- selector: ".outlineItem:nth-child(1) a",
- event: "click"
- },
- expectedPage: 1,
- message: "navigated to 1st page using outline view"
- },
- {
- action: {
- selector: ".outlineItem:nth-child(" + PDF_OUTLINE_ITEMS + ") a",
- event: "click"
- },
- expectedPage: 4,
- message: "navigated to 4th page using outline view"
- },
- {
- action: {
- selector: "input#pageNumber",
- value: 5,
- event: "change"
- },
- expectedPage: 5,
- message: "navigated to 5th page using pagenumber"
- }
-];
-
-add_task(function* test() {
- let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
- let handlerInfo = mimeService.getFromTypeAndExtension('application/pdf', 'pdf');
-
- // Make sure pdf.js is the default handler.
- is(handlerInfo.alwaysAskBeforeHandling, false, 'pdf handler defaults to always-ask is false');
- is(handlerInfo.preferredAction, Ci.nsIHandlerInfo.handleInternally, 'pdf handler defaults to internal');
-
- info('Pref action: ' + handlerInfo.preferredAction);
-
- yield BrowserTestUtils.withNewTab({ gBrowser, url: "about:blank" },
- function* (newTabBrowser) {
- yield waitForPdfJS(newTabBrowser, TESTROOT + "file_pdfjs_test.pdf");
-
- yield ContentTask.spawn(newTabBrowser, null, function* () {
- // Check if PDF is opened with internal viewer
- Assert.ok(content.document.querySelector("div#viewer"), "document content has viewer UI");
- Assert.ok("PDFJS" in content.wrappedJSObject, "window content has PDFJS object");
- });
-
- yield ContentTask.spawn(newTabBrowser, null, contentSetUp);
-
- yield Task.spawn(runTests(newTabBrowser));
-
- yield ContentTask.spawn(newTabBrowser, null, function*() {
- let pageNumber = content.document.querySelector('input#pageNumber');
- Assert.equal(pageNumber.value, pageNumber.max, "Document is left on the last page");
- });
- });
-});
-
-function* contentSetUp() {
- /**
- * Outline Items gets appended to the document later on we have to
- * wait for them before we start to navigate though document
- *
- * @param document
- * @returns {deferred.promise|*}
- */
- function waitForOutlineItems(document) {
- return new Promise((resolve, reject) => {
- document.addEventListener("outlineloaded", function outlineLoaded(evt) {
- document.removeEventListener("outlineloaded", outlineLoaded);
- var outlineCount = evt.detail.outlineCount;
-
- if (document.querySelectorAll(".outlineItem").length === outlineCount) {
- resolve();
- } else {
- reject();
- }
- });
- });
- }
-
- /**
- * The key navigation has to happen in page-fit, otherwise it won't scroll
- * through a complete page
- *
- * @param document
- * @returns {deferred.promise|*}
- */
- function setZoomToPageFit(document) {
- return new Promise((resolve) => {
- document.addEventListener("pagerendered", function onZoom(e) {
- document.removeEventListener("pagerendered", onZoom);
- document.querySelector("#viewer").click();
- resolve();
- });
-
- var select = document.querySelector("select#scaleSelect");
- select.selectedIndex = 2;
- select.dispatchEvent(new Event("change"));
- });
- }
-
- yield waitForOutlineItems(content.document);
- yield setZoomToPageFit(content.document);
-}
-
-/**
- * As the page changes asynchronously, we have to wait for the event after
- * we trigger the action so we will be at the expected page number after each action
- *
- * @param document
- * @param window
- * @param test
- * @param callback
- */
-function* runTests(browser) {
- yield ContentTask.spawn(browser, TESTS, function* (TESTS) {
- let window = content;
- let document = window.document;
-
- for (let test of TESTS) {
- let deferred = {};
- deferred.promise = new Promise((resolve, reject) => {
- deferred.resolve = resolve;
- deferred.reject = reject;
- });
-
- let pageNumber = document.querySelector('input#pageNumber');
-
- // Add an event-listener to wait for page to change, afterwards resolve the promise
- let timeout = window.setTimeout(() => deferred.reject(), 5000);
- window.addEventListener('pagechange', function pageChange() {
- if (pageNumber.value == test.expectedPage) {
- window.removeEventListener('pagechange', pageChange);
- window.clearTimeout(timeout);
- deferred.resolve(+pageNumber.value);
- }
- });
-
- // Get the element and trigger the action for changing the page
- var el = document.querySelector(test.action.selector);
- Assert.ok(el, "Element '" + test.action.selector + "' has been found");
-
- // The value option is for input case
- if (test.action.value)
- el.value = test.action.value;
-
- // Dispatch the event for changing the page
- if (test.action.event == "keydown") {
- var ev = document.createEvent("KeyboardEvent");
- ev.initKeyEvent("keydown", true, true, null, false, false, false, false,
- test.action.keyCode, 0);
- el.dispatchEvent(ev);
- }
- else {
- var ev = new Event(test.action.event);
- }
- el.dispatchEvent(ev);
-
- let pgNumber = yield deferred.promise;
- Assert.equal(pgNumber, test.expectedPage, test.message);
- }
-
- var viewer = content.wrappedJSObject.PDFViewerApplication;
- yield viewer.close();
- });
-}
diff --git a/browser/extensions/pdfjs/test/browser_pdfjs_savedialog.js b/browser/extensions/pdfjs/test/browser_pdfjs_savedialog.js
deleted file mode 100644
index a6564e591..000000000
--- a/browser/extensions/pdfjs/test/browser_pdfjs_savedialog.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
-const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
-
-function test() {
- var oldAction = changeMimeHandler(Ci.nsIHandlerInfo.useSystemDefault, true);
- var tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf");
- //
- // Test: "Open with" dialog comes up when pdf.js is not selected as the default
- // handler.
- //
- addWindowListener('chrome://mozapps/content/downloads/unknownContentType.xul', finish);
-
- waitForExplicitFinish();
- registerCleanupFunction(function() {
- changeMimeHandler(oldAction[0], oldAction[1]);
- gBrowser.removeTab(tab);
- });
-}
-
-function changeMimeHandler(preferredAction, alwaysAskBeforeHandling) {
- let handlerService = Cc["@mozilla.org/uriloader/handler-service;1"].getService(Ci.nsIHandlerService);
- let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
- let handlerInfo = mimeService.getFromTypeAndExtension('application/pdf', 'pdf');
- var oldAction = [handlerInfo.preferredAction, handlerInfo.alwaysAskBeforeHandling];
-
- // Change and save mime handler settings
- handlerInfo.alwaysAskBeforeHandling = alwaysAskBeforeHandling;
- handlerInfo.preferredAction = preferredAction;
- handlerService.store(handlerInfo);
-
- Services.obs.notifyObservers(null, 'pdfjs:handlerChanged', null);
-
- // Refresh data
- handlerInfo = mimeService.getFromTypeAndExtension('application/pdf', 'pdf');
-
- //
- // Test: Mime handler was updated
- //
- is(handlerInfo.alwaysAskBeforeHandling, alwaysAskBeforeHandling, 'always-ask prompt change successful');
- is(handlerInfo.preferredAction, preferredAction, 'mime handler change successful');
-
- return oldAction;
-}
-
-function addWindowListener(aURL, aCallback) {
- Services.wm.addListener({
- onOpenWindow: function(aXULWindow) {
- info("window opened, waiting for focus");
- Services.wm.removeListener(this);
-
- var domwindow = aXULWindow.QueryInterface(Ci.nsIInterfaceRequestor)
- .getInterface(Ci.nsIDOMWindow);
- waitForFocus(function() {
- is(domwindow.document.location.href, aURL, "should have seen the right window open");
- domwindow.close();
- aCallback();
- }, domwindow);
- },
- onCloseWindow: function(aXULWindow) { },
- onWindowTitleChange: function(aXULWindow, aNewTitle) { }
- });
-}
diff --git a/browser/extensions/pdfjs/test/browser_pdfjs_views.js b/browser/extensions/pdfjs/test/browser_pdfjs_views.js
deleted file mode 100644
index d14503e41..000000000
--- a/browser/extensions/pdfjs/test/browser_pdfjs_views.js
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
-const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
-
-add_task(function* test() {
- let handlerService = Cc["@mozilla.org/uriloader/handler-service;1"].getService(Ci.nsIHandlerService);
- let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
- let handlerInfo = mimeService.getFromTypeAndExtension('application/pdf', 'pdf');
-
- // Make sure pdf.js is the default handler.
- is(handlerInfo.alwaysAskBeforeHandling, false, 'pdf handler defaults to always-ask is false');
- is(handlerInfo.preferredAction, Ci.nsIHandlerInfo.handleInternally, 'pdf handler defaults to internal');
-
- info('Pref action: ' + handlerInfo.preferredAction);
-
- yield BrowserTestUtils.withNewTab({ gBrowser, url: "about:blank" },
- function* (browser) {
- // check that PDF is opened with internal viewer
- yield waitForPdfJS(browser, TESTROOT + "file_pdfjs_test.pdf");
-
- yield ContentTask.spawn(browser, null, function* () {
- Assert.ok(content.document.querySelector("div#viewer"), "document content has viewer UI");
- Assert.ok("PDFJS" in content.wrappedJSObject, "window content has PDFJS object");
-
- //open sidebar
- var sidebar = content.document.querySelector('button#sidebarToggle');
- var outerContainer = content.document.querySelector('div#outerContainer');
-
- sidebar.click();
- Assert.ok(outerContainer.classList.contains("sidebarOpen"), "sidebar opens on click");
-
- // check that thumbnail view is open
- var thumbnailView = content.document.querySelector('div#thumbnailView');
- var outlineView = content.document.querySelector('div#outlineView');
-
- Assert.equal(thumbnailView.getAttribute("class"), null,
- "Initial view is thumbnail view");
- Assert.equal(outlineView.getAttribute("class"), "hidden",
- "Outline view is hidden initially");
-
- //switch to outline view
- var viewOutlineButton = content.document.querySelector('button#viewOutline');
- viewOutlineButton.click();
-
- Assert.equal(thumbnailView.getAttribute("class"), "hidden",
- "Thumbnail view is hidden when outline is selected");
- Assert.equal(outlineView.getAttribute("class"), "",
- "Outline view is visible when selected");
-
- //switch back to thumbnail view
- var viewThumbnailButton = content.document.querySelector('button#viewThumbnail');
- viewThumbnailButton.click();
-
- Assert.equal(thumbnailView.getAttribute("class"), "",
- "Thumbnail view is visible when selected");
- Assert.equal(outlineView.getAttribute("class"), "hidden",
- "Outline view is hidden when thumbnail is selected");
-
- sidebar.click();
-
- var viewer = content.wrappedJSObject.PDFViewerApplication;
- yield viewer.close();
- });
- });
-});
diff --git a/browser/extensions/pdfjs/test/browser_pdfjs_zoom.js b/browser/extensions/pdfjs/test/browser_pdfjs_zoom.js
deleted file mode 100644
index f2b73fd99..000000000
--- a/browser/extensions/pdfjs/test/browser_pdfjs_zoom.js
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
-
-requestLongerTimeout(2);
-
-Components.utils.import("resource://gre/modules/Promise.jsm", this);
-
-const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
-const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
-
-const TESTS = [
- {
- action: {
- selector: "button#zoomIn",
- event: "click"
- },
- expectedZoom: 1, // 1 - zoom in
- message: "Zoomed in using the '+' (zoom in) button"
- },
-
- {
- action: {
- selector: "button#zoomOut",
- event: "click"
- },
- expectedZoom: -1, // -1 - zoom out
- message: "Zoomed out using the '-' (zoom out) button"
- },
-
- {
- action: {
- keyboard: true,
- keyCode: 61,
- event: "+"
- },
- expectedZoom: 1, // 1 - zoom in
- message: "Zoomed in using the CTRL++ keys"
- },
-
- {
- action: {
- keyboard: true,
- keyCode: 109,
- event: "-"
- },
- expectedZoom: -1, // -1 - zoom out
- message: "Zoomed out using the CTRL+- keys"
- },
-
- {
- action: {
- selector: "select#scaleSelect",
- index: 5,
- event: "change"
- },
- expectedZoom: -1, // -1 - zoom out
- message: "Zoomed using the zoom picker"
- }
-];
-
-add_task(function* test() {
- let handlerService = Cc["@mozilla.org/uriloader/handler-service;1"]
- .getService(Ci.nsIHandlerService);
- let mimeService = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
- let handlerInfo = mimeService.getFromTypeAndExtension('application/pdf', 'pdf');
-
- // Make sure pdf.js is the default handler.
- is(handlerInfo.alwaysAskBeforeHandling, false,
- 'pdf handler defaults to always-ask is false');
- is(handlerInfo.preferredAction, Ci.nsIHandlerInfo.handleInternally,
- 'pdf handler defaults to internal');
-
- info('Pref action: ' + handlerInfo.preferredAction);
-
- yield BrowserTestUtils.withNewTab({ gBrowser, url: "about:blank" },
- function* (newTabBrowser) {
- yield waitForPdfJS(newTabBrowser, TESTROOT + "file_pdfjs_test.pdf" + "#zoom=100");
-
- yield ContentTask.spawn(newTabBrowser, TESTS, function* (TESTS) {
- let document = content.document;
-
- function waitForRender() {
- return new Promise((resolve) => {
- document.addEventListener("pagerendered", function onPageRendered(e) {
- if(e.detail.pageNumber !== 1) {
- return;
- }
-
- document.removeEventListener("pagerendered", onPageRendered, true);
- resolve();
- }, true);
- });
- }
-
- // check that PDF is opened with internal viewer
- Assert.ok(content.document.querySelector("div#viewer"), "document content has viewer UI");
- Assert.ok("PDFJS" in content.wrappedJSObject, "window content has PDFJS object");
-
- let initialWidth, previousWidth;
- initialWidth = previousWidth =
- parseInt(content.document.querySelector("div#pageContainer1").style.width);
-
- for (let test of TESTS) {
- // We zoom using an UI element
- var ev;
- if (test.action.selector) {
- // Get the element and trigger the action for changing the zoom
- var el = document.querySelector(test.action.selector);
- Assert.ok(el, "Element '" + test.action.selector + "' has been found");
-
- if (test.action.index){
- el.selectedIndex = test.action.index;
- }
-
- // Dispatch the event for changing the zoom
- ev = new Event(test.action.event);
- }
- // We zoom using keyboard
- else {
- // Simulate key press
- ev = new content.KeyboardEvent("keydown",
- { key: test.action.event,
- keyCode: test.action.keyCode,
- ctrlKey: true });
- el = content;
- }
-
- el.dispatchEvent(ev);
- yield waitForRender();
-
- var pageZoomScale = content.document.querySelector('select#scaleSelect');
-
- // The zoom value displayed in the zoom select
- var zoomValue = pageZoomScale.options[pageZoomScale.selectedIndex].innerHTML;
-
- let pageContainer = content.document.querySelector('div#pageContainer1');
- let actualWidth = parseInt(pageContainer.style.width);
-
- // the actual zoom of the PDF document
- let computedZoomValue = parseInt(((actualWidth/initialWidth).toFixed(2))*100) + "%";
- Assert.equal(computedZoomValue, zoomValue, "Content has correct zoom");
-
- // Check that document zooms in the expected way (in/out)
- let zoom = (actualWidth - previousWidth) * test.expectedZoom;
- Assert.ok(zoom > 0, test.message);
-
- previousWidth = actualWidth;
- }
-
- var viewer = content.wrappedJSObject.PDFViewerApplication;
- yield viewer.close();
- });
- });
-});
diff --git a/browser/extensions/pdfjs/test/file_pdfjs_test.pdf b/browser/extensions/pdfjs/test/file_pdfjs_test.pdf
deleted file mode 100644
index 7ad87e3c2..000000000
--- a/browser/extensions/pdfjs/test/file_pdfjs_test.pdf
+++ /dev/null
Binary files differ
diff --git a/browser/extensions/pdfjs/test/head.js b/browser/extensions/pdfjs/test/head.js
deleted file mode 100644
index d980bceb1..000000000
--- a/browser/extensions/pdfjs/test/head.js
+++ /dev/null
@@ -1,15 +0,0 @@
-function waitForPdfJS(browser, url) {
- // Runs tests after all 'load' event handlers have fired off
- return ContentTask.spawn(browser, url, function* (url) {
- yield new Promise((resolve) => {
- // NB: Add the listener to the global object so that we receive the
- // event fired from the new window.
- addEventListener("documentload", function listener() {
- removeEventListener("documentload", listener, false);
- resolve();
- }, false, true);
-
- content.location = url;
- });
- });
-}
diff --git a/browser/extensions/pocket/moz.build b/browser/extensions/pocket/moz.build
index 495e48a62..52227bb8b 100644
--- a/browser/extensions/pocket/moz.build
+++ b/browser/extensions/pocket/moz.build
@@ -17,6 +17,4 @@ FINAL_TARGET_PP_FILES.features['firefox@getpocket.com'] += [
'install.rdf.in'
]
-BROWSER_CHROME_MANIFESTS += ['test/browser.ini']
-
JAR_MANIFESTS += ['jar.mn']
diff --git a/browser/extensions/pocket/test/.eslintrc.js b/browser/extensions/pocket/test/.eslintrc.js
deleted file mode 100644
index c764b133d..000000000
--- a/browser/extensions/pocket/test/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
- "extends": [
- "../../../../testing/mochitest/browser.eslintrc.js"
- ]
-};
diff --git a/browser/extensions/pocket/test/browser.ini b/browser/extensions/pocket/test/browser.ini
deleted file mode 100644
index 3e0be8736..000000000
--- a/browser/extensions/pocket/test/browser.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[DEFAULT]
-support-files =
- head.js
- test.html
-
-[browser_pocket_ui_check.js]
diff --git a/browser/extensions/pocket/test/browser_pocket_ui_check.js b/browser/extensions/pocket/test/browser_pocket_ui_check.js
deleted file mode 100644
index 12aeaffd6..000000000
--- a/browser/extensions/pocket/test/browser_pocket_ui_check.js
+++ /dev/null
@@ -1,61 +0,0 @@
-"use strict";
-
-function checkWindowProperties(expectPresent, l) {
- for (let name of l) {
- is(!!window.hasOwnProperty(name), expectPresent, "property " + name + (expectPresent ? " is" : " is not") + " present");
- }
-}
-function checkElements(expectPresent, l) {
- for (let id of l) {
- is(!!document.getElementById(id), expectPresent, "element " + id + (expectPresent ? " is" : " is not") + " present");
- }
-}
-
-add_task(function* test_setup() {
- let clearValue = Services.prefs.prefHasUserValue("extensions.pocket.enabled");
- let enabledOnStartup = Services.prefs.getBoolPref("extensions.pocket.enabled");
- registerCleanupFunction(() => {
- if (clearValue) {
- Services.prefs.clearUserPref("extensions.pocket.enabled");
- } else {
- Services.prefs.setBoolPref("extensions.pocket.enabled", enabledOnStartup);
- }
- });
-});
-
-add_task(function*() {
- yield promisePocketEnabled();
-
- checkWindowProperties(true, ["Pocket", "pktUI", "pktUIMessaging"]);
- checkElements(true, ["pocket-button", "panelMenu_pocket", "menu_pocket", "BMB_pocket",
- "panelMenu_pocketSeparator", "menu_pocketSeparator",
- "BMB_pocketSeparator"]);
-
- // check context menu exists
- info("checking content context menu");
- let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, "https://example.com/browser/browser/extensions/pocket/test/test.html");
-
- let contextMenu = document.getElementById("contentAreaContextMenu");
- let popupShown = BrowserTestUtils.waitForEvent(contextMenu, "popupshown");
- let popupHidden = BrowserTestUtils.waitForEvent(contextMenu, "popuphidden");
- yield BrowserTestUtils.synthesizeMouseAtCenter("body", {
- type: "contextmenu",
- button: 2
- }, tab.linkedBrowser);
- yield popupShown;
-
- checkElements(true, ["context-pocket", "context-savelinktopocket"]);
-
- contextMenu.hidePopup();
- yield popupHidden;
- yield BrowserTestUtils.removeTab(tab);
-
- yield promisePocketDisabled();
-
- checkWindowProperties(false, ["Pocket", "pktUI", "pktUIMessaging"]);
- checkElements(false, ["pocket-button", "panelMenu_pocket", "menu_pocket", "BMB_pocket",
- "panelMenu_pocketSeparator", "menu_pocketSeparator",
- "BMB_pocketSeparator", "context-pocket", "context-savelinktopocket"]);
-
- yield promisePocketReset();
-});
diff --git a/browser/extensions/pocket/test/head.js b/browser/extensions/pocket/test/head.js
deleted file mode 100644
index e044a42c7..000000000
--- a/browser/extensions/pocket/test/head.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// Currently Pocket is disabled in tests. We want these tests to work under
-// either case that Pocket is disabled or enabled on startup of the browser,
-// and that at the end we're reset to the correct state.
-let enabledOnStartup = false;
-
-// PocketEnabled/Disabled promises return true if it was already
-// Enabled/Disabled, and false if it need to Enable/Disable.
-function promisePocketEnabled() {
- if (Services.prefs.getPrefType("extensions.pocket.enabled") != Services.prefs.PREF_INVALID &&
- Services.prefs.getBoolPref("extensions.pocket.enabled")) {
- info( "pocket was already enabled, assuming enabled by default for tests");
- enabledOnStartup = true;
- return Promise.resolve(true);
- }
- info( "pocket is not enabled");
- return new Promise((resolve, reject) => {
- let listener = {
- onWidgetAfterCreation(widgetid) {
- if (widgetid == "pocket-button") {
- info("pocket-button created");
- CustomizableUI.removeListener(listener);
- resolve(false);
- }
- }
- }
- CustomizableUI.addListener(listener);
- Services.prefs.setBoolPref("extensions.pocket.enabled", true);
- });
-}
-
-function promisePocketDisabled() {
- if (Services.prefs.getPrefType("extensions.pocket.enabled") == Services.prefs.PREF_INVALID ||
- !Services.prefs.getBoolPref("extensions.pocket.enabled")) {
- info("pocket-button already disabled");
- return Promise.resolve(true);
- }
- return new Promise((resolve, reject) => {
- let listener = {
- onWidgetDestroyed: function(widgetid) {
- if (widgetid == "pocket-button") {
- CustomizableUI.removeListener(listener);
- info( "pocket-button destroyed");
- // wait for a full unload of pocket
- BrowserTestUtils.waitForCondition(() => {
- return !window.hasOwnProperty("pktUI");
- }, "pocket properties removed from window").then(() => {
- resolve(false);
- })
- }
- }
- }
- CustomizableUI.addListener(listener);
- info("reset pocket enabled pref");
- // testing/profiles/prefs_general.js uses user_pref to disable pocket, set
- // back to false.
- Services.prefs.setBoolPref("extensions.pocket.enabled", false);
- });
-}
-
-function promisePocketReset() {
- if (enabledOnStartup) {
- info("reset is enabling pocket addon");
- return promisePocketEnabled();
- }
- info("reset is disabling pocket addon");
- return promisePocketDisabled();
-}
diff --git a/browser/extensions/pocket/test/test.html b/browser/extensions/pocket/test/test.html
deleted file mode 100644
index aa08cd566..000000000
--- a/browser/extensions/pocket/test/test.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!DOCTYPE html>
-
-<html>
-<head>
- <title>Page Title</title>
- <meta charset="utf-8" />
-</head>
-
-<body>
-</body>
-</html>
diff --git a/browser/extensions/webcompat/moz.build b/browser/extensions/webcompat/moz.build
index 2423511b4..7d592013b 100644
--- a/browser/extensions/webcompat/moz.build
+++ b/browser/extensions/webcompat/moz.build
@@ -14,5 +14,3 @@ FINAL_TARGET_FILES.features['webcompat@mozilla.org'] += [
FINAL_TARGET_PP_FILES.features['webcompat@mozilla.org'] += [
'install.rdf.in'
]
-
-BROWSER_CHROME_MANIFESTS += ['test/browser/browser.ini']
diff --git a/browser/extensions/webcompat/test/browser/.eslintrc.js b/browser/extensions/webcompat/test/browser/.eslintrc.js
deleted file mode 100644
index 7c8021192..000000000
--- a/browser/extensions/webcompat/test/browser/.eslintrc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-"use strict";
-
-module.exports = {
- "extends": [
- "../../../../../testing/mochitest/browser.eslintrc.js"
- ]
-};
diff --git a/browser/extensions/webcompat/test/browser/browser.ini b/browser/extensions/webcompat/test/browser/browser.ini
deleted file mode 100644
index 500224636..000000000
--- a/browser/extensions/webcompat/test/browser/browser.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[DEFAULT]
-
-[browser_check_installed.js]
diff --git a/browser/extensions/webcompat/test/browser/browser_check_installed.js b/browser/extensions/webcompat/test/browser/browser_check_installed.js
deleted file mode 100644
index b77458054..000000000
--- a/browser/extensions/webcompat/test/browser/browser_check_installed.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-
-add_task(function* test_enabled() {
- let addon = yield new Promise(
- resolve => AddonManager.getAddonByID("webcompat@mozilla.org", resolve)
- );
- isnot(addon, null, "Check addon exists");
- is(addon.version, "1.0", "Check version");
- is(addon.name, "Web Compat", "Check name");
- ok(addon.isCompatible, "Check application compatibility");
- ok(!addon.appDisabled, "Check not app disabled");
- ok(addon.isActive, "Check addon is active");
-});