Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test runs only with pattern: os == 'android'
- Manifest: mobile/shared/modules/geckoview/test/xpcshell/xpcshell.toml
/* 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
"use strict";
const { GeckoViewTrackingDB } = ChromeUtils.importESModule(
"resource://gre/modules/GeckoViewTrackingDB.sys.mjs"
);
const mockService = {
getEventsByDateRange(dateFrom, dateTo) {
return Promise.resolve([
{
getResultByName(name) {
switch (name) {
case "type":
return 1;
case "count":
return 5;
case "timestamp":
return "2023-01-01";
default:
return null;
}
},
},
]);
},
sumAllEvents() {
return Promise.resolve(42);
},
getEarliestRecordedDate() {
return Promise.resolve(1000);
},
QueryInterface: ChromeUtils.generateQI(["nsITrackingDBService"]),
};
// Mock TrackingDBService
const { MockRegistrar } = ChromeUtils.importESModule(
);
MockRegistrar.register("@mozilla.org/tracking-db-service;1", mockService);
add_task(async function test_getEventsByDateRange() {
const callback = {
onSuccess(data) {
Assert.equal(data.events.length, 1);
Assert.equal(data.events[0].type, 1);
Assert.equal(data.events[0].count, 5);
Assert.equal(data.events[0].date, "2023-01-01");
},
onError(err) {
do_throw("Unexpected error: " + err);
},
};
await GeckoViewTrackingDB.onEvent(
"GeckoView:TrackingDB:GetEventsByDateRange",
{ dateFrom: 0, dateTo: Date.now() },
callback
);
});
add_task(async function test_sumAllEvents() {
const callback = {
onSuccess(data) {
Assert.equal(data.sum, 42);
},
onError(err) {
do_throw("Unexpected error: " + err);
},
};
await GeckoViewTrackingDB.onEvent(
"GeckoView:TrackingDB:SumAllEvents",
{},
callback
);
});
add_task(async function test_getEarliestRecordedDate() {
const callback = {
onSuccess(data) {
Assert.equal(data.date, 1000);
},
onError(err) {
do_throw("Unexpected error: " + err);
},
};
await GeckoViewTrackingDB.onEvent(
"GeckoView:TrackingDB:GetEarliestRecordedDate",
{},
callback
);
});