mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 11:45:37 +00:00
Bug 870114 - Write a test that verifies that BackgroundPageThumbs uses private browsing. r=markh
This commit is contained in:
parent
607eeacbfa
commit
9aa8e82fee
@ -194,6 +194,43 @@ let tests = [
|
||||
|
||||
win.close();
|
||||
},
|
||||
|
||||
function noCookies() {
|
||||
// Visit the test page in the browser and tell it to set a cookie.
|
||||
let url = testPageURL({ setGreenCookie: true });
|
||||
let tab = gBrowser.loadOneTab(url, { inBackground: false });
|
||||
let browser = tab.linkedBrowser;
|
||||
yield onPageLoad(browser);
|
||||
|
||||
// The root element of the page shouldn't be green yet.
|
||||
let greenStr = "rgb(0, 255, 0)";
|
||||
isnot(browser.contentDocument.documentElement.style.backgroundColor,
|
||||
greenStr,
|
||||
"The page shouldn't be green yet.");
|
||||
|
||||
// Cookie should be set now. Reload the page to verify. Its root element
|
||||
// will be green if the cookie's set.
|
||||
browser.reload();
|
||||
yield onPageLoad(browser);
|
||||
is(browser.contentDocument.documentElement.style.backgroundColor,
|
||||
greenStr,
|
||||
"The page should be green now.");
|
||||
|
||||
// Capture the page. Get the image data of the capture and verify it's not
|
||||
// green. (Checking only the first pixel suffices.)
|
||||
yield capture(url);
|
||||
let file = fileForURL(url);
|
||||
ok(file.exists(), "Thumbnail file should exist after capture.");
|
||||
|
||||
let deferred = imports.Promise.defer();
|
||||
retrieveImageDataForURL(url, function ([r, g, b]) {
|
||||
isnot([r, g, b].toString(), [0, 255, 0].toString(),
|
||||
"The captured page should not be green.");
|
||||
gBrowser.removeTab(tab);
|
||||
deferred.resolve();
|
||||
});
|
||||
yield deferred.promise;
|
||||
},
|
||||
];
|
||||
|
||||
function capture(url, options) {
|
||||
@ -239,3 +276,14 @@ function openPrivateWindow() {
|
||||
});
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function onPageLoad(browser) {
|
||||
let deferred = imports.Promise.defer();
|
||||
browser.addEventListener("load", function load(event) {
|
||||
if (event.target == browser.contentWindow.document) {
|
||||
browser.removeEventListener("load", load, true);
|
||||
deferred.resolve();
|
||||
}
|
||||
}, true);
|
||||
return deferred.promise;
|
||||
}
|
||||
|
@ -17,6 +17,16 @@ function handleRequest(req, resp) {
|
||||
}
|
||||
catch (err) {}
|
||||
|
||||
if (opts.setGreenCookie)
|
||||
resp.setHeader("Set-Cookie", "green", false);
|
||||
|
||||
if (req.hasHeader("Cookie") &&
|
||||
req.getHeader("Cookie").split(";").indexOf("green") >= 0) {
|
||||
resp.write('<html style="background: #0f0;"></html>');
|
||||
resp.finish();
|
||||
return;
|
||||
}
|
||||
|
||||
if (opts.redirect) {
|
||||
resp.setHeader("Location", opts.redirect);
|
||||
resp.setStatusLine(null, 303, null);
|
||||
|
Loading…
Reference in New Issue
Block a user