Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
add_task(async function setup() {
const path = await setupPlacesDatabase("places_v66.sqlite");
const db = await Sqlite.openConnection({ path });
await db.execute(`
INSERT INTO moz_inputhistory (input, use_count, place_id)
VALUES
('abc', 1, 1),
('aBc', 0.9, 1),
('ABC', 5, 1),
('ABC', 1, 2),
('DEF', 1, 3)
`);
await db.close();
});
add_task(async function database_is_valid() {
// Accessing the database for the first time triggers migration.
Assert.equal(
PlacesUtils.history.databaseStatus,
PlacesUtils.history.DATABASE_STATUS_UPGRADED
);
let db = await PlacesUtils.promiseDBConnection();
Assert.equal(await db.getSchemaVersion(), CURRENT_SCHEMA_VERSION);
});
add_task(async function moz_inputhistory() {
await PlacesUtils.withConnectionWrapper("test_sqlite_migration", async db => {
const rows = await db.execute(
"SELECT * FROM moz_inputhistory ORDER BY place_id"
);
Assert.equal(rows.length, 3);
Assert.equal(rows[0].getResultByName("place_id"), 1);
Assert.equal(rows[0].getResultByName("input"), "abc");
Assert.equal(rows[0].getResultByName("use_count"), 5);
Assert.equal(rows[1].getResultByName("place_id"), 2);
Assert.equal(rows[1].getResultByName("input"), "abc");
Assert.equal(rows[1].getResultByName("use_count"), 1);
Assert.equal(rows[2].getResultByName("place_id"), 3);
Assert.equal(rows[2].getResultByName("input"), "def");
Assert.equal(rows[2].getResultByName("use_count"), 1);
});
});