/* 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/. */ // This file tests the openSpecialDatabase function of mozIStorageService. add_task(async function test_invalid_storage_key() { try { Services.storage.openSpecialDatabase("abcd"); do_throw("We should not get here!"); } catch (e) { print(e); print("e.result is " + e.result); Assert.equal(Cr.NS_ERROR_INVALID_ARG, e.result); } }); add_task(async function test_memdb_close_clone_fails() { for (const name of [null, "foo"]) { const db = Services.storage.openSpecialDatabase("memory", name); db.close(); expectError(Cr.NS_ERROR_NOT_INITIALIZED, () => db.clone()); } }); add_task(async function test_memdb_no_file_on_disk() { for (const name of [null, "foo"]) { const db = Services.storage.openSpecialDatabase("memory", name); db.close(); for (const dirKey of ["CurWorkD", "ProfD"]) { const dir = Services.dirsvc.get(dirKey, Ci.nsIFile); const file = dir.clone(); file.append(!name ? ":memory:" : "file:foo?mode=memory&cache=shared"); Assert.ok(!file.exists()); } } }); add_task(async function test_memdb_sharing() { for (const name of [null, "foo"]) { const db = Services.storage.openSpecialDatabase("memory", name); db.executeSimpleSQL("CREATE TABLE test(name TEXT)"); const db2 = Services.storage.openSpecialDatabase("memory", name); Assert.ok(!!name == db2.tableExists("test")); db.close(); db2.close(); } });