summaryrefslogtreecommitdiffstats
path: root/toolkit/components/thumbnails/test/browser_thumbnails_bg_destroy_browser.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/thumbnails/test/browser_thumbnails_bg_destroy_browser.js')
-rw-r--r--toolkit/components/thumbnails/test/browser_thumbnails_bg_destroy_browser.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/toolkit/components/thumbnails/test/browser_thumbnails_bg_destroy_browser.js b/toolkit/components/thumbnails/test/browser_thumbnails_bg_destroy_browser.js
new file mode 100644
index 0000000000..609d344972
--- /dev/null
+++ b/toolkit/components/thumbnails/test/browser_thumbnails_bg_destroy_browser.js
@@ -0,0 +1,48 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+add_task(async function thumbnails_bg_destroy_browser() {
+ await SpecialPowers.pushPrefEnv({
+ set: [["dom.ipc.processCount", 1]],
+ });
+
+ let url1 = "https://example.com/1";
+ ok(!thumbnailExists(url1), "First file should not exist yet.");
+
+ let url2 = "https://example.com/2";
+ ok(!thumbnailExists(url2), "Second file should not exist yet.");
+
+ let defaultTimeout = BackgroundPageThumbs._destroyBrowserTimeout;
+ BackgroundPageThumbs._destroyBrowserTimeout = 1000;
+
+ await bgCapture(url1);
+ ok(thumbnailExists(url1), "First file should exist after capture.");
+ removeThumbnail(url1);
+
+ // arbitrary wait - intermittent failures noted after 2 seconds
+ await TestUtils.waitForCondition(
+ () => {
+ return BackgroundPageThumbs._thumbBrowser === undefined;
+ },
+ "BackgroundPageThumbs._thumbBrowser should eventually be discarded.",
+ 1000,
+ 5
+ );
+
+ is(
+ BackgroundPageThumbs._thumbBrowser,
+ undefined,
+ "Thumb browser should be destroyed after timeout."
+ );
+ BackgroundPageThumbs._destroyBrowserTimeout = defaultTimeout;
+
+ await bgCapture(url2);
+ ok(thumbnailExists(url2), "Second file should exist after capture.");
+ removeThumbnail(url2);
+
+ isnot(
+ BackgroundPageThumbs._thumbBrowser,
+ undefined,
+ "Thumb browser should exist immediately after capture."
+ );
+});