function test_params_enumerate() {
let stmt = createStatement("SELECT * FROM test WHERE id IN (:a, :b, :c)");
// Make sure they are right.
let expected = [0, 1, 2, "a", "b", "c", "length"];
let index = 0; for (let name in stmt.params) { if (name == "QueryInterface") { continue;
} Assert.equal(name, expected[index++]);
} Assert.equal(index, 7);
}
function test_params_prototype() {
let stmt = createStatement("SELECT * FROM sqlite_master");
// Set a property on the prototype and make sure it exist (will not be a // bindable parameter, however).
Object.getPrototypeOf(stmt.params).test = 2; Assert.equal(stmt.params.test, 2);
function test_row_prototype() {
let stmt = createStatement("SELECT * FROM sqlite_master");
Assert.ok(stmt.executeStep());
// Set a property on the prototype and make sure it exists (will not be in the // results, however).
Object.getPrototypeOf(stmt.row).test = 2; Assert.equal(stmt.row.test, 2);
// Clean up after ourselves. delete Object.getPrototypeOf(stmt.row).test;
stmt.finalize();
}
function test_row_enumerate() {
let stmt = createStatement("SELECT * FROM test");
Assert.ok(stmt.executeStep());
let expected = ["id", "string"];
let expected_values = [123, "foo"];
let index = 0; for (let name in stmt.row) { Assert.equal(name, expected[index]); Assert.equal(stmt.row[name], expected_values[index]);
index++;
} Assert.equal(index, 2);
// Save off the row helper, then forget the statement and trigger a GC. We // want to ensure that if the row helper is retained but the statement is // destroyed, that no crash occurs and that the late access attempt simply // throws an error.
let savedOffRow = stmt.row;
stmt = null;
Cu.forceGC(); Assert.throws(
() => { return savedOffRow.string;
},
/NS_ERROR_NOT_INITIALIZED/, "GC'ed statement should throw"
);
}
function test_params_gets_sync() { // Added for bug 562866. /* letstmt=createStatement( "SELECT*FROMtestWHEREidIN(:a,:b,:c)" );
// Make sure we do not assert in getting the value. letoriginalCount=Object.getOwnPropertyNames(stmt.params).length; letexpected=["a","b","c"]; for(letnameofexpected){ stmt.params[name]; }
// Now make sure we didn't magically get any additional properties. letfinalCount=Object.getOwnPropertyNames(stmt.params).length; do_check_eq(originalCount+expected.length,finalCount);
*/
}
function test_params_gets_async() { // Added for bug 562866. /* letstmt=createAsyncStatement( "SELECT*FROMtestWHEREidIN(:a,:b,:c)" );
// Make sure we do not assert in getting the value. letoriginalCount=Object.getOwnPropertyNames(stmt.params).length; letexpected=["a","b","c"]; for(letnameofexpected){ stmt.params[name]; }
// Now make sure we didn't magically get any additional properties. letfinalCount=Object.getOwnPropertyNames(stmt.params).length; do_check_eq(originalCount+expected.length,finalCount);
*/
}
// Test Runner
var tests = [
test_params_enumerate,
test_params_prototype,
test_row_enumerate,
test_row_prototype,
test_params_gets_sync,
test_params_gets_async,
]; function run_test() {
cleanup();
// Create our database.
getOpenedDatabase().executeSimpleSQL( "CREATE TABLE test (id INTEGER PRIMARY KEY, string TEXT)"
);
getOpenedDatabase().executeSimpleSQL( "INSERT INTO test (id, string) VALUES (123, 'foo')"
);
// Run the tests.
tests.forEach(test => test());
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-08-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.