Bug 1148990 - Don't ship bagheeraclient.js or tokenserverclient.js on Android. r=gps

Neither of these clients are used on Android, and the Bagheera client isn't
used anywhere unless Firefox Health Report is enabled.

This patch conditionalizes their inclusion in services-common, makes the tests
aware, and also tests that they are _not_ present on Android.

Note that some unused test helpers are also omitted.
This commit is contained in:
Richard Newman 2015-03-30 15:02:51 -07:00
parent e42e46994e
commit 3b95a4999d
3 changed files with 76 additions and 19 deletions

View File

@ -14,25 +14,38 @@ EXTRA_COMPONENTS += [
]
EXTRA_JS_MODULES['services-common'] += [
'hawkclient.js',
'hawkrequest.js',
'logmanager.js',
'stringbundle.js',
'tokenserverclient.js',
'utils.js',
]
if CONFIG['OS_TARGET'] != 'Android':
EXTRA_JS_MODULES['services-common'] += [
'hawkclient.js',
'hawkrequest.js',
'tokenserverclient.js',
]
TESTING_JS_MODULES.services.common += [
'modules-testing/storageserver.js',
]
if CONFIG['MOZ_SERVICES_HEALTHREPORT']:
EXTRA_PP_JS_MODULES['services-common'] += [
'bagheeraclient.js',
]
TESTING_JS_MODULES.services.common += [
'modules-testing/bagheeraserver.js',
]
EXTRA_PP_JS_MODULES['services-common'] += [
'async.js',
'bagheeraclient.js',
'observers.js',
'rest.js',
]
TESTING_JS_MODULES.services.common += [
'modules-testing/bagheeraserver.js',
'modules-testing/logging.js',
'modules-testing/storageserver.js',
'modules-testing/utils.js',
]

View File

@ -1,30 +1,63 @@
/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
const modules = [
Components.utils.import("resource://gre/modules/AppConstants.jsm");
const MODULE_BASE = "resource://services-common/";
const shared_modules = [
"async.js",
"bagheeraclient.js",
"logmanager.js",
"rest.js",
"stringbundle.js",
"tokenserverclient.js",
"utils.js",
];
const test_modules = [
"bagheeraserver.js",
const non_android_modules = [
"bagheeraclient.js",
"tokenserverclient.js",
];
const TEST_BASE = "resource://testing-common/services/common/";
const shared_test_modules = [
"logging.js",
];
const non_android_test_modules = [
"bagheeraserver.js",
"storageserver.js",
];
function run_test() {
for each (let m in modules) {
let resource = "resource://services-common/" + m;
Components.utils.import(resource, {});
}
for each (let m in test_modules) {
let resource = "resource://testing-common/services/common/" + m;
function expectImportsToSucceed(mm, base=MODULE_BASE) {
for each (let m in mm) {
let resource = base + m;
Components.utils.import(resource, {});
}
}
function expectImportsToFail(mm, base=MODULE_BASE) {
for each (let m in mm) {
let resource = base + m;
let succeeded = false;
try {
Components.utils.import(resource, {});
succeeded = true;
} catch (e) {}
if (succeeded) {
throw "Importing " + m + " should have failed!";
}
}
}
function run_test() {
expectImportsToSucceed(shared_modules);
expectImportsToSucceed(shared_test_modules, base=TEST_BASE);
if (AppConstants.platform != "android") {
expectImportsToSucceed(non_android_modules);
expectImportsToSucceed(non_android_test_modules, base=TEST_BASE);
} else {
expectImportsToFail(non_android_modules);
expectImportsToFail(non_android_test_modules, base=TEST_BASE);
}
}

View File

@ -25,16 +25,27 @@ skip-if = toolkit == 'gonk'
[test_async_chain.js]
[test_async_querySpinningly.js]
[test_bagheera_server.js]
skip-if = os == "android"
[test_bagheera_client.js]
skip-if = os == "android"
[test_hawkclient.js]
skip-if = os == "android"
[test_hawkrequest.js]
skip-if = os == "android"
[test_logmanager.js]
[test_observers.js]
[test_restrequest.js]
[test_tokenauthenticatedrequest.js]
skip-if = os == "android"
[test_tokenserverclient.js]
skip-if = os == "android"
[test_storage_server.js]
skip-if = os == "android"