1
0
Fork 0
privacybadger/tests/selenium/storage_test.py
Daniel Baumann 51333c7ef4
Adding upstream version 2020.10.7.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 23:00:13 +02:00

71 lines
2.2 KiB
Python

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import unittest
import pbtest
from time import sleep
# time to wait for loading privacy policy from eff.org
POLICY_DOWNLOAD_TIMEOUT = 20
PB_POLICY_HASH_LEN = 40 # https://www.eff.org/files/dnt-policies.json
class StorageTest(pbtest.PBSeleniumTest):
"""Privacy Badger storage initialization tests."""
def check_policy_download(self):
timeout = POLICY_DOWNLOAD_TIMEOUT
dnt_hashes_not_empty = (
"return ("
"chrome.extension.getBackgroundPage()."
"badger.storage.getStore('dnt_hashes') != {}"
")"
)
# give updatePrivacyPolicyHashes() some time to download the policy hash
while (timeout > 0 and not self.js(dnt_hashes_not_empty)):
sleep(1)
timeout -= 1
# make sure we didn't time out
self.assertGreater(timeout, 0, "Timed out waiting for DNT hashes")
# now check the downloaded policy hash
get_dnt_hashes = (
"return ("
"chrome.extension.getBackgroundPage()."
"badger.storage.getStore('dnt_hashes')."
"getItemClones()"
")"
)
policy_hashes = self.js(get_dnt_hashes)
for policy_hash in policy_hashes.keys():
self.assertEqual(PB_POLICY_HASH_LEN, len(policy_hash))
def test_should_init_storage_entries(self):
self.load_url(self.options_url)
self.check_policy_download()
self.assertEqual(
self.js(
"return chrome.extension.getBackgroundPage()."
"constants.YELLOWLIST_URL"
),
"https://www.eff.org/files/cookieblocklist_new.txt"
)
disabled_sites = self.js(
"return chrome.extension.getBackgroundPage()."
"badger.getSettings().getItem('disabledSites')"
)
self.assertFalse(
len(disabled_sites),
"Shouldn't have any disabledSites after installation"
)
self.assertTrue(self.js(
"return chrome.extension.getBackgroundPage()."
"badger.getSettings().getItem('checkForDNTPolicy')"
), "Should start with DNT policy enabled")
if __name__ == "__main__":
unittest.main()