Bug 728655 - Create some view partial source UI mochitests - utility functions; r=neil,dao f=jwein

This commit is contained in:
Geoff Lankow
2011-11-09 01:28:48 +13:00
parent 7e59249e6c
commit de7d5c2b99

View File

@@ -5,6 +5,7 @@
function openViewSourceWindow(aURI, aCallback) {
let viewSourceWindow = openDialog("chrome://global/content/viewSource.xul", null, null, aURI);
viewSourceWindow.addEventListener("pageshow", function pageShowHandler(event) {
// Wait for the inner window to load, not viewSourceWindow.
if (event.target.location == "view-source:" + aURI) {
info("View source window opened: " + event.target.location);
viewSourceWindow.removeEventListener("pageshow", pageShowHandler, false);
@@ -23,10 +24,44 @@ function closeViewSourceWindow(aWindow, aCallback) {
aWindow.close();
}
function openViewPartialSourceWindow(aReference, aCallback) {
let viewSourceWindow = openDialog("chrome://global/content/viewPartialSource.xul",
null, null, null, null, aReference, "selection");
viewSourceWindow.addEventListener("pageshow", function pageShowHandler(event) {
// Wait for the inner window to load, not viewSourceWindow.
if (/^view-source:/.test(event.target.location)) {
info("View source window opened: " + event.target.location);
viewSourceWindow.removeEventListener("pageshow", pageShowHandler, false);
aCallback(viewSourceWindow);
}
}, false);
}
registerCleanupFunction(function() {
var windows = Services.wm.getEnumerator("navigator:view-source");
if (windows.hasMoreElements())
ok(false, "Found unexpected view source window still open");
ok(!windows.hasMoreElements(), "No remaining view source windows still open");
while (windows.hasMoreElements())
windows.getNext().QueryInterface(Components.interfaces.nsIDOMWindow).close();
windows.getNext().close();
});
function openDocument(aURI, aCallback) {
let tab = window.gBrowser.addTab(aURI);
let browser = tab.linkedBrowser;
browser.addEventListener("DOMContentLoaded", function pageLoadedListener() {
browser.removeEventListener("DOMContentLoaded", pageLoadedListener, false);
aCallback(tab);
}, false);
registerCleanupFunction(function() {
window.gBrowser.removeTab(tab);
});
}
function openDocumentSelect(aURI, aCSSSelector, aCallback) {
openDocument(aURI, function(aTab) {
let element = aTab.linkedBrowser.contentDocument.querySelector(aCSSSelector);
let selection = aTab.linkedBrowser.contentWindow.getSelection();
selection.selectAllChildren(element);
openViewPartialSourceWindow(selection, aCallback);
});
}