forked from mirrors/gecko-dev
# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D36052 --HG-- extra : source : b5be5b4f4b47c256e28a29f665dc754f6407ee7f
62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
*/
|
|
/* Android-only TelemetryEnvironment xpcshell test that ensures that the device data is stored in the Environment.
|
|
*/
|
|
|
|
ChromeUtils.import("resource://gre/modules/TelemetryEnvironment.jsm", this);
|
|
|
|
/**
|
|
* Check that a value is a string and not empty.
|
|
*
|
|
* @param aValue The variable to check.
|
|
* @return True if |aValue| has type "string" and is not empty, False otherwise.
|
|
*/
|
|
function checkString(aValue) {
|
|
return typeof aValue == "string" && aValue != "";
|
|
}
|
|
|
|
/**
|
|
* If value is non-null, check if it's a valid string.
|
|
*
|
|
* @param aValue The variable to check.
|
|
* @return True if it's null or a valid string, false if it's non-null and an invalid
|
|
* string.
|
|
*/
|
|
function checkNullOrString(aValue) {
|
|
if (aValue) {
|
|
return checkString(aValue);
|
|
} else if (aValue === null) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* If value is non-null, check if it's a boolean.
|
|
*
|
|
* @param aValue The variable to check.
|
|
* @return True if it's null or a valid boolean, false if it's non-null and an invalid
|
|
* boolean.
|
|
*/
|
|
function checkNullOrBool(aValue) {
|
|
return aValue === null || typeof aValue == "boolean";
|
|
}
|
|
|
|
function checkSystemSection(data) {
|
|
Assert.ok("system" in data, "There must be a system section in Environment.");
|
|
// Device data is only available on Android.
|
|
if (gIsAndroid) {
|
|
let deviceData = data.system.device;
|
|
Assert.ok(checkNullOrString(deviceData.model));
|
|
Assert.ok(checkNullOrString(deviceData.manufacturer));
|
|
Assert.ok(checkNullOrString(deviceData.hardware));
|
|
Assert.ok(checkNullOrBool(deviceData.isTablet));
|
|
}
|
|
}
|
|
|
|
add_task(async function test_systemEnvironment() {
|
|
let environmentData = TelemetryEnvironment.currentEnvironment;
|
|
checkSystemSection(environmentData);
|
|
});
|