summaryrefslogtreecommitdiffstats
path: root/dom/indexedDB/test/browser_permissionsPromptWorker.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/indexedDB/test/browser_permissionsPromptWorker.js')
-rw-r--r--dom/indexedDB/test/browser_permissionsPromptWorker.js91
1 files changed, 91 insertions, 0 deletions
diff --git a/dom/indexedDB/test/browser_permissionsPromptWorker.js b/dom/indexedDB/test/browser_permissionsPromptWorker.js
new file mode 100644
index 000000000..a60704e69
--- /dev/null
+++ b/dom/indexedDB/test/browser_permissionsPromptWorker.js
@@ -0,0 +1,91 @@
+/**
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+const testWorkerURL = "http://mochi.test:8888/browser/" +
+ "dom/indexedDB/test/browser_permissionsWorker.html";
+const testSharedWorkerURL = "http://mochi.test:8888/browser/" +
+ "dom/indexedDB/test/browser_permissionsSharedWorker.html";
+const notificationID = "indexedDB-permissions-prompt";
+
+function test()
+{
+ waitForExplicitFinish();
+ executeSoon(test1);
+}
+
+function test1()
+{
+ // We want a prompt.
+ removePermission(testWorkerURL, "indexedDB");
+
+ info("creating tab");
+ gBrowser.selectedTab = gBrowser.addTab();
+
+ gBrowser.selectedBrowser.addEventListener("load", function () {
+ gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
+
+ setFinishedCallback(function(isIDBDatabase, exception) {
+ ok(isIDBDatabase, "First database creation was successful");
+ ok(!exception, "No exception");
+ is(getPermission(testWorkerURL, "indexedDB"),
+ Components.interfaces.nsIPermissionManager.ALLOW_ACTION,
+ "Correct permission set");
+ gBrowser.removeCurrentTab();
+ executeSoon(test2);
+ });
+
+ registerPopupEventHandler("popupshowing", function () {
+ ok(true, "prompt showing");
+ });
+ registerPopupEventHandler("popupshown", function () {
+ ok(true, "prompt shown");
+ triggerMainCommand(this);
+ });
+ registerPopupEventHandler("popuphidden", function () {
+ ok(true, "prompt hidden");
+ });
+
+ }, true);
+
+ info("loading test page: " + testWorkerURL);
+ content.location = testWorkerURL;
+}
+
+function test2()
+{
+ // We want a prompt.
+ removePermission(testSharedWorkerURL, "indexedDB");
+
+ info("creating tab");
+ gBrowser.selectedTab = gBrowser.addTab();
+
+ gBrowser.selectedBrowser.addEventListener("load", function () {
+ gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true);
+
+ setFinishedCallback(function(isIDBDatabase, exception) {
+ ok(!isIDBDatabase, "First database creation was successful");
+ ok(exception, "No exception");
+ is(getPermission(testSharedWorkerURL, "indexedDB"),
+ Components.interfaces.nsIPermissionManager.UNKNOWN_ACTION,
+ "Correct permission set");
+ gBrowser.removeCurrentTab();
+ executeSoon(finish);
+ });
+
+ registerPopupEventHandler("popupshowing", function () {
+ ok(false, "prompt showing");
+ });
+ registerPopupEventHandler("popupshown", function () {
+ ok(false, "prompt shown");
+ });
+ registerPopupEventHandler("popuphidden", function () {
+ ok(false, "prompt hidden");
+ });
+
+ }, true);
+
+ info("loading test page: " + testSharedWorkerURL);
+ content.location = testSharedWorkerURL;
+}