Bug 728655 - Create some view partial source UI mochitests - utility functions; r=neil,dao f=jwein
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user