mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 15:58:39 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
204
services/sync/tests/unit/test_syncengine.js
Normal file
204
services/sync/tests/unit/test_syncengine.js
Normal file
|
|
@ -0,0 +1,204 @@
|
|||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
Cu.import("resource://services-sync/engines.js");
|
||||
Cu.import("resource://services-sync/service.js");
|
||||
Cu.import("resource://services-sync/util.js");
|
||||
Cu.import("resource://testing-common/services/sync/utils.js");
|
||||
|
||||
function makeSteamEngine() {
|
||||
return new SyncEngine('Steam', Service);
|
||||
}
|
||||
|
||||
var server;
|
||||
|
||||
function test_url_attributes() {
|
||||
_("SyncEngine url attributes");
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
Service.clusterURL = "https://cluster/";
|
||||
let engine = makeSteamEngine();
|
||||
try {
|
||||
do_check_eq(engine.storageURL, "https://cluster/1.1/foo/storage/");
|
||||
do_check_eq(engine.engineURL, "https://cluster/1.1/foo/storage/steam");
|
||||
do_check_eq(engine.metaURL, "https://cluster/1.1/foo/storage/meta/global");
|
||||
} finally {
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function test_syncID() {
|
||||
_("SyncEngine.syncID corresponds to preference");
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
let engine = makeSteamEngine();
|
||||
try {
|
||||
// Ensure pristine environment
|
||||
do_check_eq(Svc.Prefs.get("steam.syncID"), undefined);
|
||||
|
||||
// Performing the first get on the attribute will generate a new GUID.
|
||||
do_check_eq(engine.syncID, "fake-guid-00");
|
||||
do_check_eq(Svc.Prefs.get("steam.syncID"), "fake-guid-00");
|
||||
|
||||
Svc.Prefs.set("steam.syncID", Utils.makeGUID());
|
||||
do_check_eq(Svc.Prefs.get("steam.syncID"), "fake-guid-01");
|
||||
do_check_eq(engine.syncID, "fake-guid-01");
|
||||
} finally {
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function test_lastSync() {
|
||||
_("SyncEngine.lastSync and SyncEngine.lastSyncLocal correspond to preferences");
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
let engine = makeSteamEngine();
|
||||
try {
|
||||
// Ensure pristine environment
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSync"), undefined);
|
||||
do_check_eq(engine.lastSync, 0);
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSyncLocal"), undefined);
|
||||
do_check_eq(engine.lastSyncLocal, 0);
|
||||
|
||||
// Floats are properly stored as floats and synced with the preference
|
||||
engine.lastSync = 123.45;
|
||||
do_check_eq(engine.lastSync, 123.45);
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSync"), "123.45");
|
||||
|
||||
// Integer is properly stored
|
||||
engine.lastSyncLocal = 67890;
|
||||
do_check_eq(engine.lastSyncLocal, 67890);
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSyncLocal"), "67890");
|
||||
|
||||
// resetLastSync() resets the value (and preference) to 0
|
||||
engine.resetLastSync();
|
||||
do_check_eq(engine.lastSync, 0);
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSync"), "0");
|
||||
} finally {
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function test_toFetch() {
|
||||
_("SyncEngine.toFetch corresponds to file on disk");
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
const filename = "weave/toFetch/steam.json";
|
||||
let engine = makeSteamEngine();
|
||||
try {
|
||||
// Ensure pristine environment
|
||||
do_check_eq(engine.toFetch.length, 0);
|
||||
|
||||
// Write file to disk
|
||||
let toFetch = [Utils.makeGUID(), Utils.makeGUID(), Utils.makeGUID()];
|
||||
engine.toFetch = toFetch;
|
||||
do_check_eq(engine.toFetch, toFetch);
|
||||
// toFetch is written asynchronously
|
||||
engine._store._sleep(0);
|
||||
let fakefile = syncTesting.fakeFilesystem.fakeContents[filename];
|
||||
do_check_eq(fakefile, JSON.stringify(toFetch));
|
||||
|
||||
// Read file from disk
|
||||
toFetch = [Utils.makeGUID(), Utils.makeGUID()];
|
||||
syncTesting.fakeFilesystem.fakeContents[filename] = JSON.stringify(toFetch);
|
||||
engine.loadToFetch();
|
||||
do_check_eq(engine.toFetch.length, 2);
|
||||
do_check_eq(engine.toFetch[0], toFetch[0]);
|
||||
do_check_eq(engine.toFetch[1], toFetch[1]);
|
||||
} finally {
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function test_previousFailed() {
|
||||
_("SyncEngine.previousFailed corresponds to file on disk");
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
const filename = "weave/failed/steam.json";
|
||||
let engine = makeSteamEngine();
|
||||
try {
|
||||
// Ensure pristine environment
|
||||
do_check_eq(engine.previousFailed.length, 0);
|
||||
|
||||
// Write file to disk
|
||||
let previousFailed = [Utils.makeGUID(), Utils.makeGUID(), Utils.makeGUID()];
|
||||
engine.previousFailed = previousFailed;
|
||||
do_check_eq(engine.previousFailed, previousFailed);
|
||||
// previousFailed is written asynchronously
|
||||
engine._store._sleep(0);
|
||||
let fakefile = syncTesting.fakeFilesystem.fakeContents[filename];
|
||||
do_check_eq(fakefile, JSON.stringify(previousFailed));
|
||||
|
||||
// Read file from disk
|
||||
previousFailed = [Utils.makeGUID(), Utils.makeGUID()];
|
||||
syncTesting.fakeFilesystem.fakeContents[filename] = JSON.stringify(previousFailed);
|
||||
engine.loadPreviousFailed();
|
||||
do_check_eq(engine.previousFailed.length, 2);
|
||||
do_check_eq(engine.previousFailed[0], previousFailed[0]);
|
||||
do_check_eq(engine.previousFailed[1], previousFailed[1]);
|
||||
} finally {
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function test_resetClient() {
|
||||
_("SyncEngine.resetClient resets lastSync and toFetch");
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
let engine = makeSteamEngine();
|
||||
try {
|
||||
// Ensure pristine environment
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSync"), undefined);
|
||||
do_check_eq(Svc.Prefs.get("steam.lastSyncLocal"), undefined);
|
||||
do_check_eq(engine.toFetch.length, 0);
|
||||
|
||||
engine.lastSync = 123.45;
|
||||
engine.lastSyncLocal = 67890;
|
||||
engine.toFetch = [Utils.makeGUID(), Utils.makeGUID(), Utils.makeGUID()];
|
||||
engine.previousFailed = [Utils.makeGUID(), Utils.makeGUID(), Utils.makeGUID()];
|
||||
|
||||
engine.resetClient();
|
||||
do_check_eq(engine.lastSync, 0);
|
||||
do_check_eq(engine.lastSyncLocal, 0);
|
||||
do_check_eq(engine.toFetch.length, 0);
|
||||
do_check_eq(engine.previousFailed.length, 0);
|
||||
} finally {
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function test_wipeServer() {
|
||||
_("SyncEngine.wipeServer deletes server data and resets the client.");
|
||||
let engine = makeSteamEngine();
|
||||
|
||||
const PAYLOAD = 42;
|
||||
let steamCollection = new ServerWBO("steam", PAYLOAD);
|
||||
let server = httpd_setup({
|
||||
"/1.1/foo/storage/steam": steamCollection.handler()
|
||||
});
|
||||
let syncTesting = new SyncTestingInfrastructure(server);
|
||||
do_test_pending();
|
||||
|
||||
try {
|
||||
// Some data to reset.
|
||||
engine.lastSync = 123.45;
|
||||
engine.toFetch = [Utils.makeGUID(), Utils.makeGUID(), Utils.makeGUID()];
|
||||
|
||||
_("Wipe server data and reset client.");
|
||||
engine.wipeServer();
|
||||
do_check_eq(steamCollection.payload, undefined);
|
||||
do_check_eq(engine.lastSync, 0);
|
||||
do_check_eq(engine.toFetch.length, 0);
|
||||
|
||||
} finally {
|
||||
server.stop(do_test_finished);
|
||||
Svc.Prefs.resetBranch("");
|
||||
}
|
||||
}
|
||||
|
||||
function run_test() {
|
||||
server = httpd_setup({});
|
||||
test_url_attributes();
|
||||
test_syncID();
|
||||
test_lastSync();
|
||||
test_toFetch();
|
||||
test_previousFailed();
|
||||
test_resetClient();
|
||||
test_wipeServer();
|
||||
|
||||
server.stop(run_next_test);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue