summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/favicons/test_expireAllFavicons.js
blob: 73c3ca6e4b7cec7d09ab41ce6decd6b46082fa45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
 * 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);
});