1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/toolkit/components/viewsource/test/browser/head.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,74 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ 1.6 + */ 1.7 + 1.8 +function openViewSourceWindow(aURI, aCallback) { 1.9 + let viewSourceWindow = openDialog("chrome://global/content/viewSource.xul", null, null, aURI); 1.10 + viewSourceWindow.addEventListener("pageshow", function pageShowHandler(event) { 1.11 + // Wait for the inner window to load, not viewSourceWindow. 1.12 + if (event.target.location == "view-source:" + aURI) { 1.13 + info("View source window opened: " + event.target.location); 1.14 + viewSourceWindow.removeEventListener("pageshow", pageShowHandler, false); 1.15 + aCallback(viewSourceWindow); 1.16 + } 1.17 + }, false); 1.18 +} 1.19 + 1.20 +function closeViewSourceWindow(aWindow, aCallback) { 1.21 + Services.wm.addListener({ 1.22 + onCloseWindow: function() { 1.23 + Services.wm.removeListener(this); 1.24 + executeSoon(aCallback); 1.25 + } 1.26 + }); 1.27 + aWindow.close(); 1.28 +} 1.29 + 1.30 +function testViewSourceWindow(aURI, aTestCallback, aCloseCallback) { 1.31 + openViewSourceWindow(aURI, function(aWindow) { 1.32 + aTestCallback(aWindow); 1.33 + closeViewSourceWindow(aWindow, aCloseCallback); 1.34 + }); 1.35 +} 1.36 + 1.37 +function openViewPartialSourceWindow(aReference, aCallback) { 1.38 + let viewSourceWindow = openDialog("chrome://global/content/viewPartialSource.xul", 1.39 + null, null, null, null, aReference, "selection"); 1.40 + viewSourceWindow.addEventListener("pageshow", function pageShowHandler(event) { 1.41 + // Wait for the inner window to load, not viewSourceWindow. 1.42 + if (/^view-source:/.test(event.target.location)) { 1.43 + info("View source window opened: " + event.target.location); 1.44 + viewSourceWindow.removeEventListener("pageshow", pageShowHandler, false); 1.45 + aCallback(viewSourceWindow); 1.46 + } 1.47 + }, false); 1.48 +} 1.49 + 1.50 +registerCleanupFunction(function() { 1.51 + var windows = Services.wm.getEnumerator("navigator:view-source"); 1.52 + ok(!windows.hasMoreElements(), "No remaining view source windows still open"); 1.53 + while (windows.hasMoreElements()) 1.54 + windows.getNext().close(); 1.55 +}); 1.56 + 1.57 +function openDocument(aURI, aCallback) { 1.58 + let tab = gBrowser.addTab(aURI); 1.59 + let browser = tab.linkedBrowser; 1.60 + browser.addEventListener("DOMContentLoaded", function pageLoadedListener() { 1.61 + browser.removeEventListener("DOMContentLoaded", pageLoadedListener, false); 1.62 + aCallback(tab); 1.63 + }, false); 1.64 + registerCleanupFunction(function() { 1.65 + gBrowser.removeTab(tab); 1.66 + }); 1.67 +} 1.68 + 1.69 +function openDocumentSelect(aURI, aCSSSelector, aCallback) { 1.70 + openDocument(aURI, function(aTab) { 1.71 + let element = aTab.linkedBrowser.contentDocument.querySelector(aCSSSelector); 1.72 + let selection = aTab.linkedBrowser.contentWindow.getSelection(); 1.73 + selection.selectAllChildren(element); 1.74 + 1.75 + openViewPartialSourceWindow(selection, aCallback); 1.76 + }); 1.77 +}