mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 750948 - Implement unit tests for AitC client against mock server; r=gps
This commit is contained in:
parent
885e5a7519
commit
341cc8e70d
153
services/aitc/tests/unit/test_aitc_client.js
Normal file
153
services/aitc/tests/unit/test_aitc_client.js
Normal file
@ -0,0 +1,153 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
Cu.import("resource://services-aitc/client.js");
|
||||
|
||||
Cu.import("resource://services-common/rest.js");
|
||||
Cu.import("resource://services-common/utils.js");
|
||||
Cu.import("resource://services-common/preferences.js");
|
||||
|
||||
Cu.import("resource://testing-common/services-common/aitcserver.js");
|
||||
|
||||
const PREFS = new Preferences("services.aitc.client.")
|
||||
|
||||
function run_test() {
|
||||
initTestLogging("Trace");
|
||||
run_next_test();
|
||||
}
|
||||
|
||||
function get_aitc_server() {
|
||||
_("Create new server.");
|
||||
|
||||
let server = new AITCServer10Server();
|
||||
server.start(get_server_port());
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
function get_server_with_user(username) {
|
||||
_("Create server user for User " + username);
|
||||
|
||||
let server = get_aitc_server();
|
||||
server.createUser(username);
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
function get_mock_app(remote) {
|
||||
|
||||
let app = {
|
||||
name: "Mocking Birds",
|
||||
origin: "http://example.com",
|
||||
installOrigin: "http://example.com",
|
||||
installedAt: Date.now(),
|
||||
modifiedAt: Date.now(),
|
||||
receipts: []
|
||||
};
|
||||
|
||||
app[remote ? 'manifestPath' : 'manifestURL'] = "/manifest.webapp";
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
function get_client_for_server(username, server) {
|
||||
_("Create server user for User " + username);
|
||||
|
||||
let token = {
|
||||
endpoint: server.url + username,
|
||||
id: 'ID-HERE',
|
||||
key: 'KEY-HERE'
|
||||
};
|
||||
|
||||
let client = new AitcClient(token, PREFS);
|
||||
|
||||
return client;
|
||||
}
|
||||
|
||||
add_test(function test_getapps_empty() {
|
||||
_("Ensure client request for empty user has appropriate content.");
|
||||
|
||||
const username = "123";
|
||||
|
||||
let server = get_server_with_user(username);
|
||||
let client = get_client_for_server(username, server);
|
||||
|
||||
client.getApps(function(error, apps) {
|
||||
_("Got response");
|
||||
do_check_null(error);
|
||||
|
||||
do_check_true(Array.isArray(apps));
|
||||
do_check_eq(apps.length, 0);
|
||||
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
});
|
||||
|
||||
add_test(function test_install_app() {
|
||||
_("Ensure client request for installing an app has appropriate content.");
|
||||
|
||||
const username = "123";
|
||||
const app = get_mock_app();
|
||||
|
||||
let server = get_server_with_user(username);
|
||||
|
||||
let client = get_client_for_server(username, server);
|
||||
|
||||
// TODO _putApp instead of, as install requires app in registry
|
||||
client._putApp(client._makeRemoteApp(app), function(error, status) {
|
||||
_("Got response");
|
||||
do_check_null(error);
|
||||
|
||||
do_check_true(status);
|
||||
|
||||
client.getApps(function(error, apps) {
|
||||
_("Got response");
|
||||
do_check_null(error);
|
||||
|
||||
do_check_true(Array.isArray(apps));
|
||||
do_check_eq(apps.length, 1);
|
||||
|
||||
let first = apps[0];
|
||||
|
||||
do_check_eq(first.origin, app.origin);
|
||||
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
add_test(function test_uninstall_app() {
|
||||
_("Ensure client request for un-installing an app has appropriate content.");
|
||||
|
||||
const username = "123";
|
||||
const app = get_mock_app();
|
||||
|
||||
let server = get_server_with_user(username);
|
||||
let client = get_client_for_server(username, server);
|
||||
|
||||
server.users[username].addApp(get_mock_app(true));
|
||||
|
||||
client.remoteUninstall(app, function(error, status) {
|
||||
_("Got response");
|
||||
do_check_null(error);
|
||||
|
||||
do_check_true(status);
|
||||
|
||||
client.getApps(function(error, apps) {
|
||||
_("Got response");
|
||||
do_check_eq(error);
|
||||
|
||||
do_check_true(Array.isArray(apps));
|
||||
do_check_eq(apps.length, 1);
|
||||
|
||||
let first = apps[0];
|
||||
|
||||
do_check_eq(first.origin, app.origin);
|
||||
do_check_true(first.hidden);
|
||||
|
||||
server.stop(run_next_test);
|
||||
});
|
||||
});
|
||||
});
|
@ -1,7 +1,8 @@
|
||||
[DEFAULT]
|
||||
head = ../../../common/tests/unit/head_global.js ../../../common/tests/unit/head_helpers.js
|
||||
head = ../../../common/tests/unit/head_global.js ../../../common/tests/unit/head_helpers.js ../../../common/tests/unit/head_http.js
|
||||
tail =
|
||||
|
||||
[test_load_modules.js]
|
||||
[test_storage_queue.js]
|
||||
[test_storage_registry.js]
|
||||
[test_aitc_client.js]
|
||||
|
Loading…
Reference in New Issue
Block a user