summaryrefslogtreecommitdiffstats
path: root/addon-sdk/source/test/test-indexed-db.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-09 06:46:43 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-09 06:46:43 -0500
commitac46df8daea09899ce30dc8fd70986e258c746bf (patch)
tree2750d3125fc253fd5b0671e4bd268eff1fd97296 /addon-sdk/source/test/test-indexed-db.js
parent8cecf8d5208f3945b35f879bba3015bb1a11bec6 (diff)
downloadUXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.gz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.lz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.tar.xz
UXP-ac46df8daea09899ce30dc8fd70986e258c746bf.zip
Move Add-on SDK source to toolkit/jetpack
Diffstat (limited to 'addon-sdk/source/test/test-indexed-db.js')
-rw-r--r--addon-sdk/source/test/test-indexed-db.js182
1 files changed, 0 insertions, 182 deletions
diff --git a/addon-sdk/source/test/test-indexed-db.js b/addon-sdk/source/test/test-indexed-db.js
deleted file mode 100644
index ea53a3e72..000000000
--- a/addon-sdk/source/test/test-indexed-db.js
+++ /dev/null
@@ -1,182 +0,0 @@
-/* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-"use strict";
-
-const { indexedDB, IDBKeyRange, DOMException
- } = require("sdk/indexed-db");
-
-exports["test indexedDB is frozen"] = function(assert){
- let original = indexedDB.open;
- let f = function(){};
- assert.throws(function(){indexedDB.open = f});
- assert.equal(indexedDB.open,original);
- assert.notEqual(indexedDB.open,f);
-
-};
-
-exports["test db variables"] = function(assert) {
- [ indexedDB, IDBKeyRange, DOMException
- ].forEach(function(value) {
- assert.notEqual(typeof(value), "undefined", "variable is defined");
- });
-}
-
-exports["test open"] = function(assert, done) {
- testOpen(0, assert, done);
-}
-
-function testOpen(step, assert, done) {
- const dbName = "MyTestDatabase";
- const openParams = [
- { dbName: "MyTestDatabase", dbVersion: 10 },
- { dbName: "MyTestDatabase" },
- { dbName: "MyTestDatabase", dbOptions: { storage: "temporary" } },
- { dbName: "MyTestDatabase", dbOptions: { version: 20, storage: "default" } }
- ];
-
- let params = openParams[step];
-
- let request;
- let expectedStorage;
- let expectedVersion;
- let upgradeNeededCalled = false;
- if ("dbVersion" in params) {
- request = indexedDB.open(params.dbName, params.dbVersion);
- expectedVersion = params.dbVersion;
- expectedStorage = "persistent";
- } else if ("dbOptions" in params) {
- request = indexedDB.open(params.dbName, params.dbOptions);
- if ("version" in params.dbOptions) {
- expectedVersion = params.dbOptions.version;
- } else {
- expectedVersion = 1;
- }
- if ("storage" in params.dbOptions) {
- expectedStorage = params.dbOptions.storage;
- } else {
- expectedStorage = "persistent";
- }
- } else {
- request = indexedDB.open(params.dbName);
- expectedVersion = 1;
- expectedStorage = "persistent";
- }
- request.onerror = function(event) {
- assert.fail("Failed to open indexedDB")
- done();
- }
- request.onupgradeneeded = function(event) {
- upgradeNeededCalled = true;
- assert.equal(event.oldVersion, 0, "Correct old version");
- }
- request.onsuccess = function(event) {
- assert.pass("IndexedDB was open");
- assert.equal(upgradeNeededCalled, true, "Upgrade needed called");
- let db = request.result;
- assert.equal(db.storage, expectedStorage, "Storage is correct");
- db.onversionchange = function(event) {
- assert.equal(event.oldVersion, expectedVersion, "Old version is correct");
- db.close();
- }
- if ("dbOptions" in params) {
- request = indexedDB.deleteDatabase(params.dbName, params.dbOptions);
- } else {
- request = indexedDB.deleteDatabase(params.dbName);
- }
- request.onerror = function(event) {
- assert.fail("Failed to delete indexedDB")
- done();
- }
- request.onsuccess = function(event) {
- assert.pass("IndexedDB was deleted");
-
- if (++step == openParams.length) {
- done();
- } else {
- testOpen(step, assert, done);
- }
- }
- }
-}
-
-exports["test dbname is unprefixed"] = function(assert, done) {
- // verify fixes in https://bugzilla.mozilla.org/show_bug.cgi?id=786688
- let dbName = "dbname-unprefixed";
- let request = indexedDB.open(dbName);
- request.onerror = function(event) {
- assert.fail("Failed to open db");
- done();
- };
- request.onsuccess = function(event) {
- assert.equal(request.result.name, dbName);
- done();
- };
-};
-
-exports["test structuring the database"] = function(assert, done) {
- // This is what our customer data looks like.
- let customerData = [
- { ssn: "444-44-4444", name: "Bill", age: 35, email: "bill@company.com" },
- { ssn: "555-55-5555", name: "Donna", age: 32, email: "donna@home.org" }
- ];
- let dbName = "the_name";
- let request = indexedDB.open(dbName, 2);
- request.onerror = function(event) {
- assert.fail("Failed to open db");
- done();
- };
- request.onsuccess = function(event) {
- assert.pass("transaction is complete");
- testRead(assert, done);
- }
- request.onupgradeneeded = function(event) {
- assert.pass("data base upgrade")
-
- var db = event.target.result;
-
- // Create an objectStore to hold information about our customers. We"re
- // going to use "ssn" as our key path because it"s guaranteed to be
- // unique.
- var objectStore = db.createObjectStore("customers", { keyPath: "ssn" });
-
- // Create an index to search customers by name. We may have duplicates
- // so we can"t use a unique index.
- objectStore.createIndex("name", "name", { unique: false });
-
- // Create an index to search customers by email. We want to ensure that
- // no two customers have the same email, so use a unique index.
- objectStore.createIndex("email", "email", { unique: true });
-
- // Store values in the newly created objectStore.
- customerData.forEach(function(data) {
- objectStore.add(data);
- });
- assert.pass("data added to object store");
- };
-};
-
-function testRead(assert, done) {
- let dbName = "the_name";
- let request = indexedDB.open(dbName, 2);
- request.onsuccess = function(event) {
- assert.pass("data opened")
- var db = event.target.result;
- let transaction = db.transaction(["customers"]);
- var objectStore = transaction.objectStore("customers");
- var request = objectStore.get("444-44-4444");
- request.onerror = function(event) {
- assert.fail("Failed to retrive data")
- };
- request.onsuccess = function(event) {
- // Do something with the request.result!
- assert.equal(request.result.name, "Bill", "Name is correct");
- done();
- };
- };
- request.onerror = function() {
- assert.fail("failed to open db");
- };
-};
-
-require("sdk/test").run(exports);