michael@0: /** michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/publicdomain/zero/1.0/ michael@0: */ michael@0: michael@0: const testPageURL = "http://mochi.test:8888/browser/" + michael@0: "dom/indexedDB/test/browser_permissionsPrompt.html"; michael@0: const notificationID = "indexedDB-permissions-prompt"; michael@0: michael@0: function test() michael@0: { michael@0: waitForExplicitFinish(); michael@0: michael@0: PopupNotifications.transitionsEnabled = false; michael@0: michael@0: // We want a prompt. michael@0: setPermission(testPageURL, "indexedDB", "allow"); michael@0: executeSoon(test1); michael@0: } michael@0: michael@0: function test1() michael@0: { michael@0: info("creating tab"); michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: michael@0: gBrowser.selectedBrowser.addEventListener("load", function () { michael@0: gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); michael@0: michael@0: setFinishedCallback(function(result, exception) { michael@0: ok(result instanceof IDBDatabase, michael@0: "First database creation was successful"); michael@0: ok(!exception, "No exception"); michael@0: is(getPermission(testPageURL, "indexedDB"), michael@0: Components.interfaces.nsIPermissionManager.UNKNOWN_ACTION, michael@0: "Correct permission set"); michael@0: gBrowser.removeCurrentTab(); michael@0: executeSoon(test2); michael@0: }); michael@0: michael@0: registerPopupEventHandler("popupshowing", function () { michael@0: ok(true, "prompt showing"); michael@0: }); michael@0: registerPopupEventHandler("popupshown", function () { michael@0: ok(true, "prompt shown"); michael@0: triggerMainCommand(this); michael@0: }); michael@0: registerPopupEventHandler("popuphidden", function () { michael@0: ok(true, "prompt hidden"); michael@0: }); michael@0: michael@0: }, true); michael@0: michael@0: info("loading test page: " + testPageURL); michael@0: content.location = testPageURL; michael@0: } michael@0: michael@0: function test2() michael@0: { michael@0: info("creating tab"); michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: michael@0: gBrowser.selectedBrowser.addEventListener("load", function () { michael@0: gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); michael@0: michael@0: setFinishedCallback(function(result, exception) { michael@0: ok(result instanceof IDBDatabase, michael@0: "First database creation was successful"); michael@0: ok(!exception, "No exception"); michael@0: is(getPermission(testPageURL, "indexedDB"), michael@0: Components.interfaces.nsIPermissionManager.UNKNOWN_ACTION, michael@0: "Correct permission set"); michael@0: gBrowser.removeCurrentTab(); michael@0: unregisterAllPopupEventHandlers(); michael@0: removePermission(testPageURL, "indexedDB"); michael@0: PopupNotifications.transitionsEnabled = true; michael@0: executeSoon(finish); michael@0: }); michael@0: michael@0: registerPopupEventHandler("popupshowing", function () { michael@0: ok(false, "Shouldn't show a popup this time"); michael@0: }); michael@0: registerPopupEventHandler("popupshown", function () { michael@0: ok(false, "Shouldn't show a popup this time"); michael@0: }); michael@0: registerPopupEventHandler("popuphidden", function () { michael@0: ok(false, "Shouldn't show a popup this time"); michael@0: }); michael@0: michael@0: }, true); michael@0: michael@0: info("loading test page: " + testPageURL); michael@0: content.location = testPageURL; michael@0: }