diff --git a/browser/base/content/test/general/browser_save_link-perwindowpb.js b/browser/base/content/test/general/browser_save_link-perwindowpb.js index 47f3f2dde02..fd6e5b7ad3b 100644 --- a/browser/base/content/test/general/browser_save_link-perwindowpb.js +++ b/browser/base/content/test/general/browser_save_link-perwindowpb.js @@ -13,29 +13,37 @@ let NetUtil = tempScope.NetUtil; // the first by checking that cookies set by the first response are not sent // during the second request. function triggerSave(aWindow, aCallback) { + info("started triggerSave"); var fileName; let testBrowser = aWindow.gBrowser.selectedBrowser; // This page sets a cookie if and only if a cookie does not exist yet let testURI = "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517-2.html"; testBrowser.loadURI(testURI); testBrowser.addEventListener("pageshow", function pageShown(event) { + info("got pageshow with " + event.target.location); if (event.target.location != testURI) { + info("try again!"); testBrowser.loadURI(testURI); return; } + info("found our page!"); testBrowser.removeEventListener("pageshow", pageShown, false); executeSoon(function () { + info("register to handle popupshown"); aWindow.document.addEventListener("popupshown", function(e) contextMenuOpened(aWindow, e), false); var link = testBrowser.contentDocument.getElementById("fff"); + info("link: " + link); EventUtils.synthesizeMouseAtCenter(link, { type: "contextmenu", button: 2 }, testBrowser.contentWindow); + info("right clicked!"); }); }, false); function contextMenuOpened(aWindow, event) { + info("contextMenuOpened"); event.currentTarget.removeEventListener("popupshown", contextMenuOpened, false); // Create the folder the link will be saved into. @@ -44,25 +52,32 @@ function triggerSave(aWindow, aCallback) { MockFilePicker.displayDirectory = destDir; MockFilePicker.showCallback = function(fp) { + info("showCallback"); fileName = fp.defaultString; + info("fileName: " + fileName); destFile.append (fileName); MockFilePicker.returnFiles = [destFile]; MockFilePicker.filterIndex = 1; // kSaveAsType_URL + info("done showCallback"); }; mockTransferCallback = function(downloadSuccess) { + info("mockTransferCallback"); onTransferComplete(aWindow, downloadSuccess, destDir); destDir.remove(true); ok(!destDir.exists(), "Destination dir should be removed"); ok(!destFile.exists(), "Destination file should be removed"); mockTransferCallback = function(){}; + info("done mockTransferCallback"); } // Select "Save Link As" option from context menu var saveLinkCommand = aWindow.document.getElementById("context-savelink"); + info("saveLinkCommand: " + saveLinkCommand); saveLinkCommand.doCommand(); event.target.hidePopup(); + info("popup hidden"); } function onTransferComplete(aWindow, downloadSuccess, destDir) { @@ -74,20 +89,26 @@ function triggerSave(aWindow, aCallback) { } function test() { + info("Start the test"); waitForExplicitFinish(); var windowsToClose = []; var gNumSet = 0; function testOnWindow(options, callback) { + info("testOnWindow(" + options + ")"); var win = OpenBrowserWindow(options); + info("got " + win); whenDelayedStartupFinished(win, () => callback(win)); } function whenDelayedStartupFinished(aWindow, aCallback) { + info("whenDelayedStartupFinished"); Services.obs.addObserver(function observer(aSubject, aTopic) { + info("whenDelayedStartupFinished, got topic: " + aTopic + ", got subject: " + aSubject + ", waiting for " + aWindow); if (aWindow == aSubject) { Services.obs.removeObserver(observer, aTopic); executeSoon(aCallback); + info("whenDelayedStartupFinished found our window"); } }, "browser-delayed-startup-finished", false); } @@ -95,6 +116,7 @@ function test() { mockTransferRegisterer.register(); registerCleanupFunction(function () { + info("Running the cleanup code"); mockTransferRegisterer.unregister(); MockFilePicker.cleanup(); windowsToClose.forEach(function(win) { @@ -102,9 +124,11 @@ function test() { }); Services.obs.removeObserver(observer, "http-on-modify-request"); Services.obs.removeObserver(observer, "http-on-examine-response"); + info("Finished running the cleanup code"); }); function observer(subject, topic, state) { + info("observer called with " + topic); if (topic == "http-on-modify-request") { onModifyRequest(subject); } else if (topic == "http-on-examine-response") { @@ -114,7 +138,9 @@ function test() { function onExamineResponse(subject) { let channel = subject.QueryInterface(Ci.nsIHttpChannel); + info("onExamineResponse with " + channel.URI.spec); if (channel.URI.spec != "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517.sjs") { + info("returning"); return; } try { @@ -123,21 +149,32 @@ function test() { // header with foopy=1 when there are no cookies for that domain. is(cookies, "foopy=1", "Cookie should be foopy=1"); gNumSet += 1; - } catch (ex if ex.result == Cr.NS_ERROR_NOT_AVAILABLE) { } + info("gNumSet = " + gNumSet); + } catch (ex if ex.result == Cr.NS_ERROR_NOT_AVAILABLE) { + info("onExamineResponse caught NOTAVAIL" + ex); + } catch (ex) { + info("ionExamineResponse caught " + ex); + } } function onModifyRequest(subject) { let channel = subject.QueryInterface(Ci.nsIHttpChannel); + info("onModifyRequest with " + channel.URI.spec); if (channel.URI.spec != "http://mochi.test:8888/browser/browser/base/content/test/general/bug792517.sjs") { return; } try { let cookies = channel.getRequestHeader("cookie"); + info("cookies: " + cookies); // From browser/base/content/test/general/bug792715.sjs, we should never send a // cookie because we are making only 2 requests: one in public mode, and // one in private mode. throw "We should never send a cookie in this test"; - } catch (ex if ex.result == Cr.NS_ERROR_NOT_AVAILABLE) { } + } catch (ex if ex.result == Cr.NS_ERROR_NOT_AVAILABLE) { + info("onModifyRequest caught NOTAVAIL" + ex); + } catch (ex) { + info("ionModifyRequest caught " + ex); + } } Services.obs.addObserver(observer, "http-on-modify-request", false); @@ -169,7 +206,10 @@ function createTemporarySaveDirectory() { .getService(Ci.nsIProperties) .get("TmpD", Ci.nsIFile); saveDir.append("testsavedir"); - if (!saveDir.exists()) + if (!saveDir.exists()) { + info("create testsavedir!"); saveDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0755); + } + info("return from createTempSaveDir: " + saveDir.path); return saveDir; }