diff options
Diffstat (limited to 'browser/components/newtab/tests/browser/browser_PreviewProvider.js')
-rw-r--r-- | browser/components/newtab/tests/browser/browser_PreviewProvider.js | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/browser/components/newtab/tests/browser/browser_PreviewProvider.js b/browser/components/newtab/tests/browser/browser_PreviewProvider.js deleted file mode 100644 index b1e3eda9f..000000000 --- a/browser/components/newtab/tests/browser/browser_PreviewProvider.js +++ /dev/null @@ -1,90 +0,0 @@ -/* globals XPCOMUtils, Services, PreviewProvider, registerCleanupFunction */ -"use strict"; - -let Cu = Components.utils; -Cu.import("resource://gre/modules/Task.jsm"); -Cu.import("resource://gre/modules/XPCOMUtils.jsm"); -Cu.import("resource://gre/modules/Services.jsm"); - -XPCOMUtils.defineLazyModuleGetter(this, "PreviewProvider", - "resource:///modules/PreviewProvider.jsm"); - -var oldEnabledPref = Services.prefs.getBoolPref("browser.pagethumbnails.capturing_disabled"); -Services.prefs.setBoolPref("browser.pagethumbnails.capturing_disabled", false); - -registerCleanupFunction(function() { - while (gBrowser.tabs.length > 1) { - gBrowser.removeTab(gBrowser.tabs[1]); - } - Services.prefs.setBoolPref("browser.pagethumbnails.capturing_disabled", oldEnabledPref); -}); - -const TEST_URL = "https://example.com/browser/browser/components/newtab/tests/browser/blue_page.html"; - -function pixelsForDataURI(dataURI, options) { - return new Promise(resolve => { - if (!options) { - options = {}; - } - let {width, height} = options; - if (!width) { - width = 100; - } - if (!height) { - height = 100; - } - - let htmlns = "http://www.w3.org/1999/xhtml"; - let img = document.createElementNS(htmlns, "img"); - img.setAttribute("src", dataURI); - - img.addEventListener("load", function onLoad() { - img.removeEventListener("load", onLoad, true); - let canvas = document.createElementNS(htmlns, "canvas"); - canvas.setAttribute("width", width); - canvas.setAttribute("height", height); - let ctx = canvas.getContext("2d"); - ctx.drawImage(img, 0, 0, width, height); - let result = ctx.getImageData(0, 0, width, height).data; - resolve(result); - }); - }); -} - -function* chunk_four(listData) { - let index = 0; - while (index < listData.length) { - yield listData.slice(index, index + 5); - index += 4; - } -} - -add_task(function* open_page() { - let dataURI = yield PreviewProvider.getThumbnail(TEST_URL); - let pixels = yield pixelsForDataURI(dataURI, {width: 10, height: 10}); - let rgbCount = {r: 0, g: 0, b: 0, a: 0}; - for (let [r, g, b, a] of chunk_four(pixels)) { - if (r === 255) { - rgbCount.r += 1; - } - if (g === 255) { - rgbCount.g += 1; - } - if (b === 255) { - rgbCount.b += 1; - } - if (a === 255) { - rgbCount.a += 1; - } - } - Assert.equal(`${rgbCount.r},${rgbCount.g},${rgbCount.b},${rgbCount.a}`, - "0,0,100,100", "there should be 100 blue-only pixels at full opacity"); -}); - -add_task(function* invalid_url() { - try { - yield PreviewProvider.getThumbnail("invalid:URL"); - } catch (err) { - Assert.ok(true, "URL Failed"); - } -}); |