summaryrefslogtreecommitdiffstats
path: root/toolkit/components/thumbnails/test/browser_thumbnails_bug818225.js
blob: 37f9b2f7d7f38af160d6a079c3ddd3db98dd5e29 (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
40
41
42
/* Any copyright is dedicated to the Public Domain.
   http://creativecommons.org/publicdomain/zero/1.0/ */

const URL =
  "http://mochi.test:8888/browser/toolkit/components/thumbnails/" +
  "test/background_red.html?" +
  Date.now();

// Test PageThumbs API function getThumbnailPath
add_task(async function thumbnails_bg_bug818225() {
  let path = PageThumbs.getThumbnailPath(URL);
  await testIfExists(path, false, "Thumbnail file does not exist");
  await promiseAddVisitsAndRepopulateNewTabLinks(URL);

  await BrowserTestUtils.withNewTab(
    {
      gBrowser,
      url: URL,
    },
    async () => {
      gBrowserThumbnails.clearTopSiteURLCache();
      await whenFileExists(URL);
    }
  );

  path = PageThumbs.getThumbnailPath(URL);
  let expectedPath = PageThumbsStorageService.getFilePathForURL(URL);
  is(path, expectedPath, "Thumbnail file has correct path");

  await testIfExists(path, true, "Thumbnail file exists");
});

function testIfExists(aPath, aExpected, aMessage) {
  return IOUtils.exists(aPath).then(
    function onSuccess(exists) {
      is(exists, aExpected, aMessage);
    },
    function onFailure(error) {
      ok(false, `IOUtils.exists() failed ${error}`);
    }
  );
}