Bug 1304306 - (Part 2) Add mochitest-browser-chrome test for Form Autofill preferences draft
authorScott Wu <scottcwwu@gmail.com>
Mon, 23 Jan 2017 10:45:08 +0800
changeset 481666 c37bab6361564c268efd5004ea9e4a7946982582
parent 481665 e8401e4f616eceed821ee0d3785b513328f14c6b
child 545271 a2879d32fdec35de9a2cfc8d1b409954a258f493
push id44902
push userbmo:scwwu@mozilla.com
push dateFri, 10 Feb 2017 10:03:56 +0000
bugs1304306
milestone54.0a1
Bug 1304306 - (Part 2) Add mochitest-browser-chrome test for Form Autofill preferences MozReview-Commit-ID: 5aGNp18rL1g
browser/extensions/formautofill/test/browser/browser.ini
browser/extensions/formautofill/test/browser/browser_privacyPreferences.js
testing/profiles/prefs_general.js
--- a/browser/extensions/formautofill/test/browser/browser.ini
+++ b/browser/extensions/formautofill/test/browser/browser.ini
@@ -1,3 +1,4 @@
 [DEFAULT]
 
 [browser_check_installed.js]
+[browser_privacyPreferences.js]
new file mode 100644
--- /dev/null
+++ b/browser/extensions/formautofill/test/browser/browser_privacyPreferences.js
@@ -0,0 +1,50 @@
+"use strict";
+
+const PAGE_PREFS = "about:preferences";
+const PAGE_PRIVACY = PAGE_PREFS + "#privacy";
+const GROUP_AUTOFILL = "#formAutofillGroup";
+const CHECKBOX_AUTOFILL = GROUP_AUTOFILL + " checkbox";
+const PREF_AUTOFILL_ENABLED = "browser.formautofill.enabled";
+
+let args = {
+  group: GROUP_AUTOFILL,
+  checkbox: CHECKBOX_AUTOFILL,
+};
+
+// Visibility of form autofill group should be hidden when opening
+// preferences page.
+add_task(function* test_aboutPreferences() {
+  yield BrowserTestUtils.withNewTab({gBrowser, url: PAGE_PREFS}, function* (browser) {
+    yield ContentTask.spawn(browser, args, (args) => {
+      is(content.document.querySelector(args.group).hidden, true,
+        "Form Autofill group should be hidden");
+    });
+  });
+});
+
+// Visibility of form autofill group should be visible when opening
+// directly to privacy page. Checkbox is not checked by default.
+add_task(function* test_aboutPreferencesPrivacy() {
+  yield BrowserTestUtils.withNewTab({gBrowser, url: PAGE_PRIVACY}, function* (browser) {
+    yield ContentTask.spawn(browser, args, (args) => {
+      is(content.document.querySelector(args.group).hidden, false,
+        "Form Autofill group should be visible");
+      is(content.document.querySelector(args.checkbox).checked, false,
+        "Checkbox should be unchecked");
+    });
+  });
+});
+
+// Checkbox should be checked when form autofill is enabled.
+add_task(function* test_autofillEnabledCheckbox() {
+  SpecialPowers.pushPrefEnv({set: [[PREF_AUTOFILL_ENABLED, true]]});
+
+  yield BrowserTestUtils.withNewTab({gBrowser, url: PAGE_PRIVACY}, function* (browser) {
+    yield ContentTask.spawn(browser, args, (args) => {
+      is(content.document.querySelector(args.group).hidden, false,
+        "Form Autofill group should be visible");
+      is(content.document.querySelector(args.checkbox).checked, true,
+        "Checkbox should be checked when Form Autofill is enabled");
+    });
+  });
+});
--- a/testing/profiles/prefs_general.js
+++ b/testing/profiles/prefs_general.js
@@ -352,8 +352,11 @@ user_pref("plugin.load_flash_only", fals
 // cannot easily be upgraded.
 user_pref("media.libavcodec.allow-obsolete", true);
 
 user_pref("media.openUnsupportedTypeWithExternalApp", false);
 
 // Disable password capture, so that mochitests that include forms aren't
 // influenced by the presence of the persistent doorhanger notification.
 user_pref("signon.rememberSignons", false);
+
+// Enable form autofill feature testing.
+user_pref("browser.formautofill.experimental", true);