diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /browser/base/content/test/favicons/browser_favicon_store.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'browser/base/content/test/favicons/browser_favicon_store.js')
-rw-r--r-- | browser/base/content/test/favicons/browser_favicon_store.js | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/browser/base/content/test/favicons/browser_favicon_store.js b/browser/base/content/test/favicons/browser_favicon_store.js new file mode 100644 index 0000000000..a183effe1a --- /dev/null +++ b/browser/base/content/test/favicons/browser_favicon_store.js @@ -0,0 +1,56 @@ +/* Any copyright is dedicated to the Public Domain. + * https://creativecommons.org/publicdomain/zero/1.0/ */ + +// Test that favicons are stored. + +registerCleanupFunction(async () => { + Services.cache2.clear(); + await PlacesTestUtils.clearFavicons(); + await PlacesUtils.history.clear(); +}); + +async function test_icon(pageUrl, iconUrl) { + let iconPromise = waitForFaviconMessage(true, iconUrl); + let storedIconPromise = PlacesTestUtils.waitForNotification( + "favicon-changed", + events => events.some(e => e.url == pageUrl) + ); + await BrowserTestUtils.withNewTab(pageUrl, async () => { + let { iconURL } = await iconPromise; + Assert.equal(iconURL, iconUrl, "Should have seen the expected icon."); + + // Ensure the favicon has been stored. + await storedIconPromise; + await new Promise((resolve, reject) => { + PlacesUtils.favicons.getFaviconURLForPage( + Services.io.newURI(pageUrl), + foundIconURI => { + if (foundIconURI) { + Assert.equal( + foundIconURI.spec, + iconUrl, + "Should have stored the expected icon." + ); + resolve(); + } + reject(); + } + ); + }); + }); +} + +add_task(async function test_icon_stored() { + for (let [pageUrl, iconUrl] of [ + [ + "https://example.net/browser/browser/base/content/test/favicons/datauri-favicon.html", + "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATklEQVRYhe3SIQ4AIBADwf7/04elBAtrVlSduGnSTDJ7cuT1PQJwwO+Hl7sAGAA07gjAAfgIBeAAoHFHAA7ARygABwCNOwJwAD5CATRgAYXh+kypw86nAAAAAElFTkSuQmCC", + ], + [ + "https://example.net/browser/browser/base/content/test/favicons/file_favicon.html", + "https://example.net/browser/browser/base/content/test/favicons/file_favicon.png", + ], + ]) { + await test_icon(pageUrl, iconUrl); + } +}); |