Bug 1247201 - yield on tests using removeDataFromDomain,r=mak

This changeset changes tests using ForgetAboutSite.removeDataFromDomain
to yield on it, since now it is a Task

MozReview-Commit-ID: 72OEYoO1avd

--HG--
extra : rebase_source : 9ea8cc06493c3e965d260dc9377461ff29fe572a
This commit is contained in:
milindl 2017-03-17 14:29:48 +05:30
parent d901d9c90a
commit 6109edd9bd
7 changed files with 122 additions and 130 deletions

View File

@ -150,7 +150,7 @@ function* test_cookie_cleared() {
}
// Forget the site.
ForgetAboutSite.removeDataFromDomain(TEST_HOST);
yield ForgetAboutSite.removeDataFromDomain(TEST_HOST);
// Check that whether cookies has been cleared or not.
for (let userContextId of Object.keys(USER_CONTEXTS)) {
@ -185,7 +185,7 @@ function* test_cache_cleared() {
}
// Forget the site.
ForgetAboutSite.removeDataFromDomain(TEST_HOST);
yield ForgetAboutSite.removeDataFromDomain(TEST_HOST);
// Check that do caches be removed or not?
for (let userContextId of Object.keys(USER_CONTEXTS)) {
@ -217,7 +217,7 @@ function* test_image_cache_cleared() {
gHits = 0;
// Forget the site.
ForgetAboutSite.removeDataFromDomain("localhost:" + gHttpServer.identity.primaryPort + "/");
yield ForgetAboutSite.removeDataFromDomain("localhost:" + gHttpServer.identity.primaryPort + "/");
// Load again.
for (let userContextId of Object.keys(USER_CONTEXTS)) {
@ -276,7 +276,7 @@ function* test_storage_cleared() {
}
// Forget the site.
ForgetAboutSite.removeDataFromDomain(TEST_HOST);
yield ForgetAboutSite.removeDataFromDomain(TEST_HOST);
// Open the tab again without setting the localStorage and check that the
// local storage has been cleared or not.

View File

@ -45,7 +45,7 @@ add_task(function* () {
}
// Cleanup.
ForgetAboutSite.removeDataFromDomain(COOKIE.host);
yield ForgetAboutSite.removeDataFromDomain(COOKIE.host);
Assert.equal(Services.cookies.countCookiesFromHost(COOKIE.host), 0,
"There are no cookies after cleanup");
});

View File

@ -4,18 +4,19 @@
Components.utils.import("resource://gre/modules/ForgetAboutSite.jsm");
function waitForClearHistory(aCallback) {
let observer = {
observe(aSubject, aTopic, aData) {
Services.obs.removeObserver(this, "browser:purge-domain-data");
setTimeout(aCallback, 0);
}
};
Services.obs.addObserver(observer, "browser:purge-domain-data", false);
function promiseClearHistory() {
return new Promise(resolve => {
let observer = {
observe(aSubject, aTopic, aData) {
Services.obs.removeObserver(this, "browser:purge-domain-data");
resolve();
}
};
Services.obs.addObserver(observer, "browser:purge-domain-data", false);
});
}
function test() {
waitForExplicitFinish();
add_task(function* () {
// utility functions
function countClosedTabsByTitle(aClosedTabList, aTitle) {
return aClosedTabList.filter(aData => aData.title == aTitle).length;
@ -92,39 +93,37 @@ function test() {
ss.setBrowserState(JSON.stringify(testState));
// purge domain & check that we purged correctly for closed windows
ForgetAboutSite.removeDataFromDomain("mozilla.org");
waitForClearHistory(function() {
let closedWindowData = JSON.parse(ss.getClosedWindowData());
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield promiseClearHistory();
let closedWindowData = JSON.parse(ss.getClosedWindowData());
// First set of tests for _closedWindows[0] - tests basics
let win = closedWindowData[0];
is(win.tabs.length, 1, "1 tab was removed");
is(countOpenTabsByTitle(win.tabs, FORGET), 0,
"The correct tab was removed");
is(countOpenTabsByTitle(win.tabs, REMEMBER), 1,
"The correct tab was remembered");
is(win.selected, 1, "Selected tab has changed");
is(win.title, REMEMBER, "The window title was correctly updated");
// First set of tests for _closedWindows[0] - tests basics
let win = closedWindowData[0];
is(win.tabs.length, 1, "1 tab was removed");
is(countOpenTabsByTitle(win.tabs, FORGET), 0,
"The correct tab was removed");
is(countOpenTabsByTitle(win.tabs, REMEMBER), 1,
"The correct tab was remembered");
is(win.selected, 1, "Selected tab has changed");
is(win.title, REMEMBER, "The window title was correctly updated");
// Test more complicated case
win = closedWindowData[1];
is(win.tabs.length, 3, "2 tabs were removed");
is(countOpenTabsByTitle(win.tabs, FORGET), 0,
"The correct tabs were removed");
is(countOpenTabsByTitle(win.tabs, REMEMBER), 3,
"The correct tabs were remembered");
is(win.selected, 3, "Selected tab has changed");
is(win.title, REMEMBER, "The window title was correctly updated");
// Test more complicated case
win = closedWindowData[1];
is(win.tabs.length, 3, "2 tabs were removed");
is(countOpenTabsByTitle(win.tabs, FORGET), 0,
"The correct tabs were removed");
is(countOpenTabsByTitle(win.tabs, REMEMBER), 3,
"The correct tabs were remembered");
is(win.selected, 3, "Selected tab has changed");
is(win.title, REMEMBER, "The window title was correctly updated");
// Tests handling of _closedTabs
win = closedWindowData[2];
is(countClosedTabsByTitle(win._closedTabs, REMEMBER), 1,
"The correct number of tabs were removed, and the correct ones");
is(countClosedTabsByTitle(win._closedTabs, FORGET), 0,
"All tabs to be forgotten were indeed removed");
// Tests handling of _closedTabs
win = closedWindowData[2];
is(countClosedTabsByTitle(win._closedTabs, REMEMBER), 1,
"The correct number of tabs were removed, and the correct ones");
is(countClosedTabsByTitle(win._closedTabs, FORGET), 0,
"All tabs to be forgotten were indeed removed");
// restore pre-test state
ss.setBrowserState(oldState);
finish();
});
}
// restore pre-test state
ss.setBrowserState(oldState);
});

View File

@ -4,21 +4,21 @@
Components.utils.import("resource://gre/modules/ForgetAboutSite.jsm");
function waitForClearHistory(aCallback) {
let observer = {
observe(aSubject, aTopic, aData) {
Services.obs.removeObserver(this, "browser:purge-domain-data");
setTimeout(aCallback, 0);
}
};
Services.obs.addObserver(observer, "browser:purge-domain-data", false);
function promiseClearHistory() {
return new Promise(resolve => {
let observer = {
observe(aSubject, aTopic, aData) {
Services.obs.removeObserver(this, "browser:purge-domain-data");
resolve();
}
};
Services.obs.addObserver(observer, "browser:purge-domain-data", false);
});
}
function test() {
add_task(function* () {
/** Test for Bug 464199 **/
waitForExplicitFinish();
const REMEMBER = Date.now(), FORGET = Math.random();
let test_state = { windows: [{ "tabs": [{ "entries": [] }], _closedTabs: [
{ state: { entries: [{ url: "http://www.example.net/" }] }, title: FORGET },
@ -53,33 +53,30 @@ function test() {
// open a window and add the above closed tab list
let newWin = openDialog(location, "", "chrome,all,dialog=no");
promiseWindowLoaded(newWin).then(() => {
gPrefService.setIntPref("browser.sessionstore.max_tabs_undo",
test_state.windows[0]._closedTabs.length);
ss.setWindowState(newWin, JSON.stringify(test_state), true);
yield promiseWindowLoaded(newWin);
gPrefService.setIntPref("browser.sessionstore.max_tabs_undo",
test_state.windows[0]._closedTabs.length);
ss.setWindowState(newWin, JSON.stringify(test_state), true);
let closedTabs = JSON.parse(ss.getClosedTabData(newWin));
is(closedTabs.length, test_state.windows[0]._closedTabs.length,
"Closed tab list has the expected length");
is(countByTitle(closedTabs, FORGET),
test_state.windows[0]._closedTabs.length - remember_count,
"The correct amout of tabs are to be forgotten");
is(countByTitle(closedTabs, REMEMBER), remember_count,
"Everything is set up.");
let closedTabs = JSON.parse(ss.getClosedTabData(newWin));
is(closedTabs.length, test_state.windows[0]._closedTabs.length,
"Closed tab list has the expected length");
is(countByTitle(closedTabs, FORGET),
test_state.windows[0]._closedTabs.length - remember_count,
"The correct amout of tabs are to be forgotten");
is(countByTitle(closedTabs, REMEMBER), remember_count,
"Everything is set up.");
ForgetAboutSite.removeDataFromDomain("example.net");
waitForClearHistory(function() {
closedTabs = JSON.parse(ss.getClosedTabData(newWin));
is(closedTabs.length, remember_count,
"The correct amout of tabs was removed");
is(countByTitle(closedTabs, FORGET), 0,
"All tabs to be forgotten were indeed removed");
is(countByTitle(closedTabs, REMEMBER), remember_count,
"... and tabs to be remembered weren't.");
// clean up
gPrefService.clearUserPref("browser.sessionstore.max_tabs_undo");
BrowserTestUtils.closeWindow(newWin).then(finish);
});
});
}
yield ForgetAboutSite.removeDataFromDomain("example.net");
yield promiseClearHistory();
closedTabs = JSON.parse(ss.getClosedTabData(newWin));
is(closedTabs.length, remember_count,
"The correct amout of tabs was removed");
is(countByTitle(closedTabs, FORGET), 0,
"All tabs to be forgotten were indeed removed");
is(countByTitle(closedTabs, REMEMBER), remember_count,
"... and tabs to be remembered weren't.");
// clean up
gPrefService.clearUserPref("browser.sessionstore.max_tabs_undo");
yield BrowserTestUtils.closeWindow(newWin);
});

View File

@ -63,9 +63,10 @@ function test2()
function test3()
{
// Remove database from domain 2
ForgetAboutSite.removeDataFromDomain(domains[1]);
setPermission(testPageURL4, "indexedDB");
executeSoon(test4);
ForgetAboutSite.removeDataFromDomain(domains[1]).then(() => {
setPermission(testPageURL4, "indexedDB");
executeSoon(test4);
});
}
function test4()

View File

@ -37,7 +37,7 @@ function setTestPluginEnabledState(newEnabledState, plugin) {
});
}
add_task(function* setup() {
add_task(function* () {
var tags = pluginHost.getPluginTags();
// Find the test plugin
@ -48,12 +48,9 @@ add_task(function* setup() {
}
if (!pluginTag) {
ok(false, "Test Plug-in not available, can't run test");
finish();
return;
}
setTestPluginEnabledState(Ci.nsIPluginTag.STATE_ENABLED, pluginTag);
});
add_task(function* () {
yield BrowserTestUtils.openNewForegroundTab(gBrowser, testURL);
// Set data for the plugin after the page load.
@ -85,5 +82,3 @@ add_task(function* () {
gBrowser.removeCurrentTab();
});

View File

@ -244,7 +244,7 @@ function* test_history_cleared_with_direct_match() {
do_check_false(yield promiseIsURIVisited(TEST_URI));
yield PlacesTestUtils.addVisits(TEST_URI);
do_check_true(yield promiseIsURIVisited(TEST_URI));
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
do_check_false(yield promiseIsURIVisited(TEST_URI));
}
@ -253,7 +253,7 @@ function* test_history_cleared_with_subdomain() {
do_check_false(yield promiseIsURIVisited(TEST_URI));
yield PlacesTestUtils.addVisits(TEST_URI);
do_check_true(yield promiseIsURIVisited(TEST_URI));
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
do_check_false(yield promiseIsURIVisited(TEST_URI));
}
@ -262,7 +262,7 @@ function* test_history_not_cleared_with_uri_contains_domain() {
do_check_false(yield promiseIsURIVisited(TEST_URI));
yield PlacesTestUtils.addVisits(TEST_URI);
do_check_true(yield promiseIsURIVisited(TEST_URI));
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
do_check_true(yield promiseIsURIVisited(TEST_URI));
// Clear history since we left something there from this test.
@ -270,46 +270,46 @@ function* test_history_not_cleared_with_uri_contains_domain() {
}
// Cookie Service
function test_cookie_cleared_with_direct_match() {
function* test_cookie_cleared_with_direct_match() {
const TEST_DOMAIN = "mozilla.org";
add_cookie(TEST_DOMAIN);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_cookie_exists(TEST_DOMAIN, false);
}
function test_cookie_cleared_with_subdomain() {
function* test_cookie_cleared_with_subdomain() {
const TEST_DOMAIN = "www.mozilla.org";
add_cookie(TEST_DOMAIN);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_cookie_exists(TEST_DOMAIN, false);
}
function test_cookie_not_cleared_with_uri_contains_domain() {
function* test_cookie_not_cleared_with_uri_contains_domain() {
const TEST_DOMAIN = "ilovemozilla.org";
add_cookie(TEST_DOMAIN);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_cookie_exists(TEST_DOMAIN, true);
}
// Login Manager
function test_login_manager_disabled_hosts_cleared_with_direct_match() {
function* test_login_manager_disabled_hosts_cleared_with_direct_match() {
const TEST_HOST = "http://mozilla.org";
add_disabled_host(TEST_HOST);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_disabled_host(TEST_HOST, false);
}
function test_login_manager_disabled_hosts_cleared_with_subdomain() {
function* test_login_manager_disabled_hosts_cleared_with_subdomain() {
const TEST_HOST = "http://www.mozilla.org";
add_disabled_host(TEST_HOST);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_disabled_host(TEST_HOST, false);
}
function test_login_manager_disabled_hosts_not_cleared_with_uri_contains_domain() {
function* test_login_manager_disabled_hosts_not_cleared_with_uri_contains_domain() {
const TEST_HOST = "http://ilovemozilla.org";
add_disabled_host(TEST_HOST);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_disabled_host(TEST_HOST, true);
// Reset state
@ -319,24 +319,24 @@ function test_login_manager_disabled_hosts_not_cleared_with_uri_contains_domain(
check_disabled_host(TEST_HOST, false);
}
function test_login_manager_logins_cleared_with_direct_match() {
function* test_login_manager_logins_cleared_with_direct_match() {
const TEST_HOST = "http://mozilla.org";
add_login(TEST_HOST);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_login_exists(TEST_HOST, false);
}
function test_login_manager_logins_cleared_with_subdomain() {
function* test_login_manager_logins_cleared_with_subdomain() {
const TEST_HOST = "http://www.mozilla.org";
add_login(TEST_HOST);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_login_exists(TEST_HOST, false);
}
function test_login_manager_logins_not_cleared_with_uri_contains_domain() {
function* test_login_manager_logins_not_cleared_with_uri_contains_domain() {
const TEST_HOST = "http://ilovemozilla.org";
add_login(TEST_HOST);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_login_exists(TEST_HOST, true);
let lm = Cc["@mozilla.org/login-manager;1"].
@ -346,24 +346,24 @@ function test_login_manager_logins_not_cleared_with_uri_contains_domain() {
}
// Permission Manager
function test_permission_manager_cleared_with_direct_match() {
function* test_permission_manager_cleared_with_direct_match() {
const TEST_URI = uri("http://mozilla.org");
add_permission(TEST_URI);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_permission_exists(TEST_URI, false);
}
function test_permission_manager_cleared_with_subdomain() {
function* test_permission_manager_cleared_with_subdomain() {
const TEST_URI = uri("http://www.mozilla.org");
add_permission(TEST_URI);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_permission_exists(TEST_URI, false);
}
function test_permission_manager_not_cleared_with_uri_contains_domain() {
function* test_permission_manager_not_cleared_with_uri_contains_domain() {
const TEST_URI = uri("http://ilovemozilla.org");
add_permission(TEST_URI);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
check_permission_exists(TEST_URI, true);
// Reset state
@ -398,7 +398,7 @@ function* test_content_preferences_cleared_with_direct_match() {
do_check_false(yield preference_exists(TEST_URI));
yield add_preference(TEST_URI);
do_check_true(yield preference_exists(TEST_URI));
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield waitForPurgeNotification();
do_check_false(yield preference_exists(TEST_URI));
}
@ -408,7 +408,7 @@ function* test_content_preferences_cleared_with_subdomain() {
do_check_false(yield preference_exists(TEST_URI));
yield add_preference(TEST_URI);
do_check_true(yield preference_exists(TEST_URI));
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield waitForPurgeNotification();
do_check_false(yield preference_exists(TEST_URI));
}
@ -418,12 +418,12 @@ function* test_content_preferences_not_cleared_with_uri_contains_domain() {
do_check_false(yield preference_exists(TEST_URI));
yield add_preference(TEST_URI);
do_check_true(yield preference_exists(TEST_URI));
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield waitForPurgeNotification();
do_check_true(yield preference_exists(TEST_URI));
// Reset state
ForgetAboutSite.removeDataFromDomain("ilovemozilla.org");
yield ForgetAboutSite.removeDataFromDomain("ilovemozilla.org");
yield waitForPurgeNotification();
do_check_false(yield preference_exists(TEST_URI));
}
@ -502,7 +502,7 @@ function* test_push_cleared() {
}
// Cache
function test_cache_cleared() {
function* test_cache_cleared() {
// Because this test is asynchronous, it should be the last test
do_check_true(tests[tests.length - 1] == arguments.callee);
@ -522,7 +522,7 @@ function test_cache_cleared() {
}
};
os.addObserver(observer, "cacheservice:empty-cache", false);
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
do_test_pending();
}
@ -551,7 +551,7 @@ function* test_storage_cleared() {
do_check_eq(storage.getItem("test"), "value" + i);
}
ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield ForgetAboutSite.removeDataFromDomain("mozilla.org");
yield waitForPurgeNotification();
do_check_eq(s[0].getItem("test"), null);