gecko-dev/browser/base/content/test/general/browser_favicon_change.js
Blake Kaplan 58a5f1123d Bug 1330822 - Remove CPOWs from browser_favicon_change.js. r=Felipe
--HG--
extra : rebase_source : 3f142822da1505ed4c2893354bfb9bb9faf067db
2016-11-15 15:11:13 -08:00

41 lines
1.4 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const TEST_URL = "http://mochi.test:8888/browser/browser/base/content/test/general/file_favicon_change.html"
add_task(function*() {
let extraTab = gBrowser.selectedTab = gBrowser.addTab();
extraTab.linkedBrowser.loadURI(TEST_URL);
let tabLoaded = BrowserTestUtils.browserLoaded(extraTab.linkedBrowser);
let expectedFavicon = "http://example.org/one-icon";
let haveChanged = new Promise.defer();
let observer = new MutationObserver(function(mutations) {
for (let mut of mutations) {
if (mut.attributeName != "image") {
continue;
}
let imageVal = extraTab.getAttribute("image").replace(/#.*$/, "");
if (!imageVal) {
// The value gets removed because it doesn't load.
continue;
}
is(imageVal, expectedFavicon, "Favicon image should correspond to expected image.");
haveChanged.resolve();
}
});
observer.observe(extraTab, {attributes: true});
yield tabLoaded;
yield haveChanged.promise;
haveChanged = new Promise.defer();
expectedFavicon = "http://example.org/other-icon";
ContentTask.spawn(extraTab.linkedBrowser, null, function() {
let ev = new content.CustomEvent("PleaseChangeFavicon", {});
content.dispatchEvent(ev);
});
yield haveChanged.promise;
observer.disconnect();
gBrowser.removeTab(extraTab);
});