Files
NativeScript/apps/automated/app/application-settings/application-settings-tests.ts
Nathan Walker 1e6fccf272 chore: cleanup
2020-07-23 14:03:37 -07:00

179 lines
5.8 KiB
TypeScript

var appSettings = require('@nativescript/core/application-settings');
import * as TKUnit from '../tk-unit';
var stringKey: string = 'stringKey';
var boolKey: string = 'boolKey';
var numberKey: string = 'numberKey';
var noStringKey: string = 'noStringKey';
var noBoolKey: string = 'noBoolKey';
var noNumberKey: string = 'noNumberKey';
export var testBoolean = function () {
appSettings.setBoolean(boolKey, false);
var boolValueBefore = appSettings.getBoolean(boolKey);
TKUnit.assert(false === boolValueBefore, 'Cannot set boolean to false, currently it is: ' + appSettings.getBoolean(boolKey));
appSettings.setBoolean('boolKey', true);
var boolValue = appSettings.getBoolean('boolKey', false);
TKUnit.assert(true === boolValue, 'Cannot set boolean to true');
TKUnit.assert(true === appSettings.getBoolean(boolKey), 'Cannot set boolean to true (no default)');
};
export var testString = function () {
appSettings.setString('stringKey', 'String value');
var stringValue = appSettings.getString('stringKey');
TKUnit.assert('String value' === stringValue, 'Cannot set string value');
};
export var testNumber = function () {
appSettings.setNumber('numberKey', 54.321);
var value = parseFloat(appSettings.getNumber('numberKey').toFixed(3));
TKUnit.assert(54.321 === value, 'Cannot set number value 54.321 != ' + value);
};
export var testDefaults = function () {
var defaultValue = appSettings.getString('noStringKey', 'No string value');
// will return "No string value" if there is no value for "noStringKey"
TKUnit.assert('No string value' === defaultValue, 'Bad default string value');
TKUnit.assert(true === appSettings.getBoolean(noBoolKey, true), 'Bad default boolean value');
TKUnit.assert(123.45 === appSettings.getNumber(noNumberKey, 123.45), 'Bad default number value');
};
export var testDefaultsWithNoDefaultValueProvided = function () {
var defaultValue = appSettings.getString('noStringKey');
// will return undefined if there is no value for "noStringKey"
TKUnit.assertEqual(defaultValue, undefined, 'Default string value is not undefined');
TKUnit.assertEqual(appSettings.getBoolean(noBoolKey), undefined, 'Default boolean value is not undefined');
TKUnit.assertEqual(appSettings.getNumber(noNumberKey), undefined, 'Default number value is not undefined');
};
export var testHasKey = function () {
var hasKey = appSettings.hasKey('noBoolKey');
// will return false if there is no value for "noBoolKey"
TKUnit.assert(!hasKey, 'There is a key: ' + noBoolKey);
TKUnit.assert(!appSettings.hasKey(noStringKey), 'There is a key: ' + noStringKey);
TKUnit.assert(!appSettings.hasKey(noNumberKey), 'There is a key: ' + noNumberKey);
TKUnit.assert(appSettings.hasKey(boolKey), 'There is no key: ' + boolKey);
TKUnit.assert(appSettings.hasKey(stringKey), 'There is no key: ' + stringKey);
TKUnit.assert(appSettings.hasKey(numberKey), 'There is no key: ' + numberKey);
};
export var testRemove = function () {
appSettings.remove('boolKey');
TKUnit.assert(!appSettings.hasKey(boolKey), 'Failed to remove key: ' + boolKey);
appSettings.remove(stringKey);
TKUnit.assert(!appSettings.hasKey(stringKey), 'Failed to remove key: ' + stringKey);
appSettings.remove(numberKey);
TKUnit.assert(!appSettings.hasKey(numberKey), 'Failed to remove key: ' + numberKey);
};
export var testClear = function () {
appSettings.clear();
TKUnit.assert(!appSettings.hasKey(boolKey), 'Failed to remove key: ' + boolKey);
TKUnit.assert(!appSettings.hasKey(stringKey), 'Failed to remove key: ' + stringKey);
TKUnit.assert(!appSettings.hasKey(numberKey), 'Failed to remove key: ' + numberKey);
};
export var testFlush = function () {
appSettings.setString(stringKey, 'String value');
var flushed = appSettings.flush();
// will return boolean indicating whether flush to disk was successful
TKUnit.assert(flushed, 'Flush failed: ' + flushed);
TKUnit.assert(appSettings.hasKey(stringKey), 'There is no key: ' + stringKey);
};
export var testAllKeys = function () {
appSettings.setString(stringKey, 'String value');
appSettings.setBoolean(boolKey, true);
appSettings.setNumber(numberKey, 22);
var allKeys = appSettings.getAllKeys();
TKUnit.assert(allKeys.indexOf(stringKey) !== -1, `${stringKey} is missing from .allKeys()`);
TKUnit.assert(allKeys.indexOf(boolKey) !== -1, `${boolKey} is missing from .allKeys()`);
TKUnit.assert(allKeys.indexOf(numberKey) !== -1, `${numberKey} is missing from .allKeys()`);
};
export var testInvalidKey = function () {
try {
appSettings.hasKey(undefined);
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.hasKey(null);
TKUnit.assert(false, 'There is a key null');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.hasKey(123);
TKUnit.assert(false, 'There is a key number');
} catch (e) {
// we should receive an exception here
}
appSettings.hasKey('string');
};
export var testInvalidValue = function () {
try {
appSettings.setBoolean(boolKey, 'str');
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.setBoolean(boolKey, 123);
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.setString(boolKey, true);
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.setString(boolKey, 123);
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.setNumber(boolKey, true);
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
try {
appSettings.setNumber(boolKey, '123');
TKUnit.assert(false, 'There is a key undefined');
} catch (e) {
// we should receive an exception here
}
};