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: executeSoon(test1); michael@0: } michael@0: michael@0: function test1() michael@0: { michael@0: gBrowser.selectedTab = gBrowser.addTab(); michael@0: gBrowser.selectedBrowser.addEventListener("load", function () { michael@0: if (content.location != testPageURL) { michael@0: content.location = testPageURL; michael@0: return; michael@0: } 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: gBrowser.removeCurrentTab(); michael@0: michael@0: executeSoon(test2); michael@0: }); michael@0: }, true); michael@0: content.location = testPageURL; michael@0: } michael@0: michael@0: function test2() michael@0: { michael@0: var win = OpenBrowserWindow({private: true}); michael@0: win.addEventListener("load", function onLoad() { michael@0: win.removeEventListener("load", onLoad, false); michael@0: executeSoon(function() test3(win)); michael@0: }, false); michael@0: registerCleanupFunction(function() win.close()); michael@0: } michael@0: michael@0: function test3(win) michael@0: { michael@0: win.gBrowser.selectedTab = win.gBrowser.addTab(); michael@0: win.gBrowser.selectedBrowser.addEventListener("load", function () { michael@0: if (win.content.location != testPageURL) { michael@0: win.content.location = testPageURL; michael@0: return; michael@0: } michael@0: win.gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); michael@0: michael@0: setFinishedCallback(function(result, exception) { michael@0: ok(!result, "No database"); michael@0: is(exception, "InvalidStateError", "Correct exception"); michael@0: win.gBrowser.removeCurrentTab(); michael@0: michael@0: executeSoon(finish); michael@0: }, win); michael@0: }, true); michael@0: win.content.location = testPageURL; michael@0: }