Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/**
* This file tests that favicons are correctly expired by expireAllFavicons.
*/
"use strict";
const TEST_PAGE_URI = NetUtil.newURI("http://example.com/");
const BOOKMARKED_PAGE_URI = NetUtil.newURI("http://example.com/bookmarked");
add_task(async function test_expireAllFavicons() {
// Add a visited page.
await PlacesTestUtils.addVisits({
uri: TEST_PAGE_URI,
transition: TRANSITION_TYPED,
});
// Set a favicon for our test page.
await setFaviconForPage(TEST_PAGE_URI, SMALLPNG_DATA_URI);
// Add a page with a bookmark.
await PlacesUtils.bookmarks.insert({
parentGuid: PlacesUtils.bookmarks.toolbarGuid,
url: BOOKMARKED_PAGE_URI,
title: "Test bookmark",
});
// Set a favicon for our bookmark.
await setFaviconForPage(BOOKMARKED_PAGE_URI, SMALLPNG_DATA_URI);
// Start expiration only after data has been saved in the database.
let promise = promiseTopicObserved(PlacesUtils.TOPIC_FAVICONS_EXPIRED);
PlacesUtils.favicons.expireAllFavicons();
await promise;
// Check that the favicons for the pages we added were removed.
await promiseFaviconMissingForPage(TEST_PAGE_URI);
await promiseFaviconMissingForPage(BOOKMARKED_PAGE_URI);
});