зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1348223 - Part 4 - Add and update tests for removing site data and cookies in the page info window. r=florian
MozReview-Commit-ID: gAaComSklW --HG-- extra : rebase_source : 8bc84de30f2168bd29def812f5a2550fb9c0e1a6
This commit is contained in:
Родитель
4bf2617e6f
Коммит
4a0b3d1219
|
@ -13,6 +13,7 @@ support-files =
|
|||
[browser_pageinfo_image_info.js]
|
||||
uses-unsafe-cpows = true
|
||||
skip-if = (os == 'linux' && e10s) # bug 1161699
|
||||
[browser_pageinfo_security.js]
|
||||
[browser_pageinfo_svg_image.js]
|
||||
support-files =
|
||||
svg_image.html
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
ChromeUtils.import("resource:///modules/SitePermissions.jsm");
|
||||
|
||||
ChromeUtils.defineModuleGetter(this, "SiteDataTestUtils",
|
||||
"resource://testing-common/SiteDataTestUtils.jsm");
|
||||
ChromeUtils.defineModuleGetter(this, "DownloadUtils",
|
||||
"resource://gre/modules/DownloadUtils.jsm");
|
||||
|
||||
const TEST_ORIGIN = "https://example.com";
|
||||
const TEST_SUB_ORIGIN = "https://test1.example.com";
|
||||
const REMOVE_DIALOG_URL = "chrome://browser/content/preferences/siteDataRemoveSelected.xul";
|
||||
|
||||
// Test displaying and removing quota managed data.
|
||||
add_task(async function test_SiteData() {
|
||||
await SiteDataTestUtils.addToIndexedDB(TEST_ORIGIN);
|
||||
|
||||
await BrowserTestUtils.withNewTab(TEST_ORIGIN, async function(browser) {
|
||||
|
||||
let totalUsage = await SiteDataTestUtils.getQuotaUsage(TEST_ORIGIN);
|
||||
Assert.greater(totalUsage, 0, "The total usage should not be 0");
|
||||
|
||||
let pageInfo = BrowserPageInfo(TEST_ORIGIN, "securityTab");
|
||||
await BrowserTestUtils.waitForEvent(pageInfo, "load");
|
||||
|
||||
let label = pageInfo.document.getElementById("security-privacy-sitedata-value");
|
||||
let clearButton = pageInfo.document.getElementById("security-clear-sitedata");
|
||||
|
||||
let size = DownloadUtils.convertByteUnits(totalUsage);
|
||||
|
||||
// The usage details are filled asynchronously, so we assert that they're present by
|
||||
// waiting for them to be filled in.
|
||||
// We only wait for the right unit to appear, since this number is intermittently
|
||||
// varying by slight amounts on infra machines.
|
||||
await BrowserTestUtils.waitForCondition(() => label.textContent.includes(size[1]),
|
||||
"Should show site data usage in the security section.");
|
||||
let siteDataUpdated = TestUtils.topicObserved("sitedatamanager:sites-updated");
|
||||
|
||||
let removeDialogPromise = BrowserTestUtils.promiseAlertDialogOpen("accept", REMOVE_DIALOG_URL);
|
||||
clearButton.click();
|
||||
await removeDialogPromise;
|
||||
|
||||
await siteDataUpdated;
|
||||
|
||||
totalUsage = await SiteDataTestUtils.getQuotaUsage(TEST_ORIGIN);
|
||||
is(totalUsage, 0, "The total usage should be 0");
|
||||
|
||||
await BrowserTestUtils.waitForCondition(() => label.textContent == "No",
|
||||
"Should show no site data usage in the security section.");
|
||||
|
||||
pageInfo.close();
|
||||
});
|
||||
});
|
||||
|
||||
// Test displaying and removing cookies.
|
||||
add_task(async function test_Cookies() {
|
||||
// Add some test cookies.
|
||||
SiteDataTestUtils.addToCookies(TEST_ORIGIN, "test1", "1");
|
||||
SiteDataTestUtils.addToCookies(TEST_ORIGIN, "test2", "2");
|
||||
SiteDataTestUtils.addToCookies(TEST_SUB_ORIGIN, "test1", "1");
|
||||
|
||||
await BrowserTestUtils.withNewTab(TEST_ORIGIN, async function(browser) {
|
||||
let pageInfo = BrowserPageInfo(TEST_ORIGIN, "securityTab");
|
||||
await BrowserTestUtils.waitForEvent(pageInfo, "load");
|
||||
|
||||
let label = pageInfo.document.getElementById("security-privacy-sitedata-value");
|
||||
let clearButton = pageInfo.document.getElementById("security-clear-sitedata");
|
||||
|
||||
// The usage details are filled asynchronously, so we assert that they're present by
|
||||
// waiting for them to be filled in.
|
||||
await BrowserTestUtils.waitForCondition(() => label.textContent.includes("cookies"),
|
||||
"Should show cookies in the security section.");
|
||||
|
||||
let cookiesCleared = TestUtils.topicObserved("cookie-changed", (subj, data) => data == "deleted");
|
||||
|
||||
let removeDialogPromise = BrowserTestUtils.promiseAlertDialogOpen("accept", REMOVE_DIALOG_URL);
|
||||
clearButton.click();
|
||||
await removeDialogPromise;
|
||||
|
||||
await cookiesCleared;
|
||||
|
||||
let uri = Services.io.newURI(TEST_ORIGIN);
|
||||
is(Services.cookies.countCookiesFromHost(uri.host), 0, "Cookies from the base domain should be cleared");
|
||||
|
||||
await BrowserTestUtils.waitForCondition(() => label.textContent == "No",
|
||||
"Should show no cookies in the security section.");
|
||||
|
||||
pageInfo.close();
|
||||
});
|
||||
});
|
||||
|
||||
// Clean up in case we missed anything...
|
||||
add_task(async function cleanup() {
|
||||
await SiteDataTestUtils.clear();
|
||||
});
|
|
@ -45,7 +45,6 @@ class TestPageInfoWindow(PuppeteerMixin, MarionetteTestCase):
|
|||
self.assertEqual(panel.verifier.get_property('localName'), 'textbox')
|
||||
|
||||
self.assertEqual(panel.view_certificate.get_property('localName'), 'button')
|
||||
self.assertEqual(panel.view_cookies.get_property('localName'), 'button')
|
||||
self.assertEqual(panel.view_passwords.get_property('localName'), 'button')
|
||||
|
||||
def test_select(self):
|
||||
|
|
|
@ -189,14 +189,6 @@ class SecurityPanel(PageInfoPanel):
|
|||
"""
|
||||
return self.element.find_element(By.ID, 'security-view-cert')
|
||||
|
||||
@property
|
||||
def view_cookies(self):
|
||||
"""The DOM element which represents the view cookies button.
|
||||
|
||||
:returns: Reference to the button element.
|
||||
"""
|
||||
return self.element.find_element(By.ID, 'security-view-cookies')
|
||||
|
||||
@property
|
||||
def view_passwords(self):
|
||||
"""The DOM element which represents the view passwords button.
|
||||
|
|
Загрузка…
Ссылка в новой задаче