summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/favicons/test_expireAllFavicons.js
blob: c5d8edfddac2900c1adc21cb3654d4a8db2df950 (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
39
/**
 * 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(function* test_expireAllFavicons() {
  // Add a visited page.
  yield PlacesTestUtils.addVisits({ uri: TEST_PAGE_URI, transition: TRANSITION_TYPED });

  // Set a favicon for our test page.
  yield promiseSetIconForPage(TEST_PAGE_URI, SMALLPNG_DATA_URI);

  // Add a page with a bookmark.
  yield PlacesUtils.bookmarks.insert({
    parentGuid: PlacesUtils.bookmarks.toolbarGuid,
    url: BOOKMARKED_PAGE_URI,
    title: "Test bookmark"
  });

  // Set a favicon for our bookmark.
  yield promiseSetIconForPage(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();
  yield promise;

  // Check that the favicons for the pages we added were removed.
  yield promiseFaviconMissingForPage(TEST_PAGE_URI);
  yield promiseFaviconMissingForPage(BOOKMARKED_PAGE_URI);
});

function run_test() {
  run_next_test();
}