diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /storage/test/unit/test_storage_ext.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'storage/test/unit/test_storage_ext.js')
-rw-r--r-- | storage/test/unit/test_storage_ext.js | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/storage/test/unit/test_storage_ext.js b/storage/test/unit/test_storage_ext.js new file mode 100644 index 0000000000..748ac86750 --- /dev/null +++ b/storage/test/unit/test_storage_ext.js @@ -0,0 +1,84 @@ +/* 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 basics of loading SQLite extension. + +const VALID_EXTENSION_NAME = "fts5"; + +add_setup(async function () { + cleanup(); +}); + +add_task(async function test_valid_call() { + info("Testing valid call"); + let conn = getOpenedUnsharedDatabase(); + + await new Promise((resolve, reject) => { + conn.loadExtension(VALID_EXTENSION_NAME, status => { + if (Components.isSuccessCode(status)) { + resolve(); + } else { + reject(status); + } + }); + }); + + cleanup(); +}); + +add_task(async function test_invalid_calls() { + info("Testing invalid calls"); + let conn = getOpenedUnsharedDatabase(); + + await Assert.rejects( + new Promise((resolve, reject) => { + conn.loadExtension("unknown", status => { + if (Components.isSuccessCode(status)) { + resolve(); + } else { + reject(status); + } + }); + }), + /NS_ERROR_ILLEGAL_VALUE/, + "Should fail loading unknown extension" + ); + + cleanup(); + + await Assert.rejects( + new Promise((resolve, reject) => { + conn.loadExtension(VALID_EXTENSION_NAME, status => { + if (Components.isSuccessCode(status)) { + resolve(); + } else { + reject(status); + } + }); + }), + /NS_ERROR_NOT_INITIALIZED/, + "Should fail loading extension on a closed connection" + ); +}); + +add_task(async function test_more_invalid_calls() { + let conn = getOpenedUnsharedDatabase(); + let promiseClosed = asyncClose(conn); + + await Assert.rejects( + new Promise((resolve, reject) => { + conn.loadExtension(VALID_EXTENSION_NAME, status => { + if (Components.isSuccessCode(status)) { + resolve(); + } else { + reject(status); + } + }); + }), + /NS_ERROR_NOT_INITIALIZED/, + "Should fail loading extension on a closing connection" + ); + + await promiseClosed; +}); |