diff options
author | Matt A. Tobin <email@mattatobin.com> | 2018-02-09 06:46:43 -0500 |
---|---|---|
committer | Matt A. Tobin <email@mattatobin.com> | 2018-02-09 06:46:43 -0500 |
commit | ac46df8daea09899ce30dc8fd70986e258c746bf (patch) | |
tree | 2750d3125fc253fd5b0671e4bd268eff1fd97296 /addon-sdk/source/test/test-indexed-db.js | |
parent | 8cecf8d5208f3945b35f879bba3015bb1a11bec6 (diff) | |
download | UXP-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.js | 182 |
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); |