[Pkg-mozext-commits] [requestpolicy] 16/65: [fix] advancedprefs: update checkboxes when prefs change

David Prévot taffit at moszumanska.debian.org
Fri Mar 25 22:59:47 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository requestpolicy.

commit 7ba6a23ee5aecc5ae23ebf9e9f20d08af8dc7eb4
Author: Martin Kimmerle <dev at 256k.de>
Date:   Wed Jan 13 09:22:29 2016 +0100

    [fix] advancedprefs: update checkboxes when prefs change
    
    The settings page did not get updated when a root-branch pref
    got changed.
---
 src/content/settings/advancedprefs.js              |   6 +-
 tests/marionette/tests/settings/manifest.ini       |   1 +
 tests/marionette/tests/settings/test_checkboxes.py | 108 +++++++++++++++++++++
 3 files changed, 114 insertions(+), 1 deletion(-)

diff --git a/src/content/settings/advancedprefs.js b/src/content/settings/advancedprefs.js
index db49734..7457d30 100644
--- a/src/content/settings/advancedprefs.js
+++ b/src/content/settings/advancedprefs.js
@@ -144,7 +144,11 @@
         });
 
     // call updateDisplay() every time a preference gets changed
-    WinEnv.prefObs.addListener("", updateDisplay);
+    WinEnv.prefObs.addListeners([
+      "",
+      "root/ network.prefetch-next",
+      "root/ network.dns.disablePrefetch",
+    ], updateDisplay);
   };
 
 }());
diff --git a/tests/marionette/tests/settings/manifest.ini b/tests/marionette/tests/settings/manifest.ini
index 511d4d6..6f6b217 100644
--- a/tests/marionette/tests/settings/manifest.ini
+++ b/tests/marionette/tests/settings/manifest.ini
@@ -1,2 +1,3 @@
+[test_checkboxes.py]
 [test_subscriptions.py]
 [test_your_policy.py]
diff --git a/tests/marionette/tests/settings/test_checkboxes.py b/tests/marionette/tests/settings/test_checkboxes.py
new file mode 100644
index 0000000..49ac6d1
--- /dev/null
+++ b/tests/marionette/tests/settings/test_checkboxes.py
@@ -0,0 +1,108 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# 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/.
+
+from rp_ui_harness import RequestPolicyTestCase
+from functools import partial
+
+
+RP_BRANCH = "extensions.requestpolicy."
+
+
+class TestCheckboxes(RequestPolicyTestCase):
+
+    ################
+    # Test Methods #
+    ################
+
+    def test_basicprefs(self):
+        with self.marionette.using_context("content"):
+            self.marionette.navigate("about:requestpolicy?basicprefs")
+
+        self._test("pref-indicateBlockedObjects",
+                   RP_BRANCH + "indicateBlockedObjects")
+
+        with self.prefs.using_pref(RP_BRANCH + "indicateBlockedObjects", True):
+            self._test("pref-dontIndicateBlacklistedObjects",
+                       RP_BRANCH + "indicateBlacklistedObjects",
+                       inverse=True)
+
+        self._test("pref-autoReload", RP_BRANCH + "autoReload")
+
+        self._test("pref-privateBrowsingPermanentWhitelisting",
+                   RP_BRANCH + "privateBrowsingPermanentWhitelisting")
+
+    def test_advancedprefs(self):
+        with self.marionette.using_context("content"):
+            self.marionette.navigate("about:requestpolicy?advancedprefs")
+
+        self._test("pref-linkPrefetch", "network.prefetch-next")
+        self._test("pref-prefetch.link.disableOnStartup",
+                   RP_BRANCH + "prefetch.link.disableOnStartup")
+        self._test("pref-prefetch.link.restoreDefaultOnUninstall",
+                   RP_BRANCH + "prefetch.link.restoreDefaultOnUninstall")
+
+        self._test("pref-dnsPrefetch", "network.dns.disablePrefetch",
+                   inverse=True)
+        self._test("pref-prefetch.dns.disableOnStartup",
+                   RP_BRANCH + "prefetch.dns.disableOnStartup")
+        self._test("pref-prefetch.dns.restoreDefaultOnUninstall",
+                   RP_BRANCH + "prefetch.dns.restoreDefaultOnUninstall")
+
+        self._test("menu.info.showNumRequests",
+                   RP_BRANCH + "menu.info.showNumRequests")
+
+    def test_defaultpolicy(self):
+        with self.marionette.using_context("content"):
+            self.marionette.navigate("about:requestpolicy?defaultpolicy")
+
+        with self.prefs.using_pref(RP_BRANCH + "defaultPolicy.allow", False):
+            self._test("allowsamedomain",
+                       RP_BRANCH + "defaultPolicy.allowSameDomain")
+
+    ##########################
+    # Private Helper Methods #
+    ##########################
+
+    def _test(self, checkbox_id, pref_name, inverse=False):
+        with self.marionette.using_context("content"):
+            checkbox = self.marionette.find_element("id", checkbox_id)
+            compare = partial(self._compare, checkbox, pref_name,
+                              inverse=inverse)
+
+            initial_value = self.prefs.get_pref(pref_name)
+
+            compare(initial_value)
+            checkbox.click()
+            compare(not initial_value)
+            checkbox.click()
+            compare(initial_value)
+
+            self._toggle_pref(pref_name)
+            compare(not initial_value)
+            self._toggle_pref(pref_name)
+            compare(initial_value)
+
+    def _compare(self, checkbox, pref_name, expected_pref_value, inverse=False):
+        cb_value = checkbox.get_attribute("checked") == "true"
+        pref_value = self.prefs.get_pref(pref_name)
+
+        try:
+            self.assertIsInstance(cb_value, bool)
+            self.assertIsInstance(pref_value, bool)
+
+            self.assertEqual(expected_pref_value, pref_value)
+
+            if not inverse:
+                self.assertEqual(cb_value, pref_value)
+            else:
+                self.assertNotEqual(cb_value, pref_value)
+        except:
+            print ("pref name: {}, checkbox: {}, pref: {}"
+                   .format(pref_name, str(cb_value), str(pref_value)))
+            raise
+
+    def _toggle_pref(self, pref_name):
+        current_value = self.prefs.get_pref(pref_name)
+        self.prefs.set_pref(pref_name, not current_value)
+

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/requestpolicy.git



More information about the Pkg-mozext-commits mailing list