Bug 1012403 - Reenable SettingsService tests; a=TEST-ONLY

This commit is contained in:
Kyle Machulis 2015-06-10 16:16:40 -07:00
parent 148d029425
commit 1a59ea3266
5 changed files with 97 additions and 91 deletions

View File

@ -22,4 +22,4 @@
# changes to stick? As of bug 928195, this shouldn't be necessary! Please # changes to stick? As of bug 928195, this shouldn't be necessary! Please
# don't change CLOBBER for WebIDL changes any more. # don't change CLOBBER for WebIDL changes any more.
Bug 1165422 - Updated the Android SDK versions Bug 1012403 - Update SettingsService tests (requires clobber due to package manifest change)

View File

@ -535,6 +535,8 @@
@RESPATH@/components/messageWakeupService.manifest @RESPATH@/components/messageWakeupService.manifest
@RESPATH@/components/SettingsManager.js @RESPATH@/components/SettingsManager.js
@RESPATH@/components/SettingsManager.manifest @RESPATH@/components/SettingsManager.manifest
@BINPATH@/components/SettingsService.js
@BINPATH@/components/SettingsService.manifest
@RESPATH@/components/Webapps.js @RESPATH@/components/Webapps.js
@RESPATH@/components/Webapps.manifest @RESPATH@/components/Webapps.manifest
@RESPATH@/components/AppsService.js @RESPATH@/components/AppsService.js

View File

@ -9,7 +9,7 @@ EXTRA_COMPONENTS += [
'SettingsManager.manifest', 'SettingsManager.manifest',
] ]
if CONFIG['MOZ_B2G']: if CONFIG['MOZ_B2G'] or CONFIG['ENABLE_TESTS']:
EXTRA_COMPONENTS += [ EXTRA_COMPONENTS += [
'SettingsService.js', 'SettingsService.js',
'SettingsService.manifest', 'SettingsService.manifest',

View File

@ -1,5 +1,4 @@
[DEFAULT] [DEFAULT]
skip-if = (toolkit == 'gonk' && debug) #debug-only failure, bug 932878
support-files = support-files =
file_loadserver.js file_loadserver.js
file_bug1110872.js file_bug1110872.js

View File

@ -18,99 +18,104 @@ XPCOMUtils.defineLazyServiceGetter(this, "SettingsService",
"nsISettingsService"); "nsISettingsService");
let tests = [ let tests = [
/* Callback tests */ /* Callback tests */
function() { function() {
let callbackCount = 10; let callbackCount = 10;
let callback = { let callback = {
handle: function(name, result) { handle: function(name, result) {
switch (callbackCount) { switch (callbackCount) {
case 10: case 10:
case 9: case 9:
is(result, true, "result is true"); is(result, true, "result is true");
break; break;
case 8: case 8:
case 7: case 7:
is(result, false, "result is false"); is(result, false, "result is false");
break; break;
case 6: case 6:
case 5: case 5:
is(result, 9, "result is 9"); is(result, 9, "result is 9");
break; break;
case 4: case 4:
case 3: case 3:
is(result, 9.4, "result is 9.4"); is(result, 9.4, "result is 9.4");
break; break;
case 2: case 2:
is(result, false, "result is false"); is(result, false, "result is false");
break; break;
case 1: case 1:
is(result, null, "result is null"); is(result, null, "result is null");
break; break;
default: default:
ok(false, "Unexpected call: " + callbackCount); ok(false, "Unexpected call: " + callbackCount);
} }
--callbackCount; --callbackCount;
if (callbackCount === 0) { if (callbackCount === 0) {
next(); next();
} }
},
handleError: function(name) {
ok(false, "error: " + name);
}
};
let lock = SettingsService.createLock();
let lock1 = SettingsService.createLock();
lock.set("asdf", true, callback, null);
lock1.get("asdf", callback);
lock.get("asdf", callback);
lock.set("asdf", false, callback, null);
lock.get("asdf", callback);
lock.set("int", 9, callback, null);
lock.get("int", callback);
lock.set("doub", 9.4, callback, null);
lock.get("doub", callback);
lock1.get("asdfxxx", callback);
}, },
handleError: function(name) { /* Observer tests */
ok(false, "error: " + name); function() {
const MOZSETTINGS_CHANGED = "mozsettings-changed";
const TEST_OBSERVER_KEY = "test.observer.key";
const TEST_OBSERVER_VALUE = true;
const TEST_OBSERVER_MESSAGE = "test.observer.message";
var obs = {
observe: function (subject, topic, data) {
if (topic !== MOZSETTINGS_CHANGED) {
ok(false, "Event is not mozsettings-changed.");
return;
}
// Data is now stored in subject
if ("wrappedJSObject" in subject) {
ok(true, "JS object wrapped into subject");
subject = subject.wrappedJSObject;
}
function checkProp(name, type, value) {
ok(name in subject, "subject." + name + " is present");
is(typeof subject[name], type, "subject." + name + " is " + type);
is(subject[name], value, "subject." + name + " is " + value);
}
checkProp("key", "string", TEST_OBSERVER_KEY);
checkProp("value", "boolean", TEST_OBSERVER_VALUE);
checkProp("isInternalChange", "boolean", true);
Services.obs.removeObserver(this, MOZSETTINGS_CHANGED);
next();
}
};
Services.obs.addObserver(obs, MOZSETTINGS_CHANGED, false);
let lock = SettingsService.createLock();
lock.set(TEST_OBSERVER_KEY, TEST_OBSERVER_VALUE, null);
} }
};
let lock = SettingsService.createLock();
let lock1 = SettingsService.createLock();
lock.set("asdf", true, callback, null);
lock1.get("asdf", callback);
lock.get("asdf", callback);
lock.set("asdf", false, callback, null);
lock.get("asdf", callback);
lock.set("int", 9, callback, null);
lock.get("int", callback);
lock.set("doub", 9.4, callback, null);
lock.get("doub", callback);
lock1.get("asdfxxx", callback);
},
/* Observer tests */
function() {
const MOZSETTINGS_CHANGED = "mozsettings-changed";
const TEST_OBSERVER_KEY = "test.observer.key";
const TEST_OBSERVER_VALUE = true;
const TEST_OBSERVER_MESSAGE = "test.observer.message";
function observer(subject, topic, data) {
if (topic !== MOZSETTINGS_CHANGED) {
ok(false, "Event is not mozsettings-changed.");
return;
}
data = JSON.parse(data);
function checkProp(name, type, value) {
ok(name in data, "data." + name + " is present");
is(typeof data[name], type, "data." + name + " is " + type);
is(data[name], value, "data." + name + " is " + value);
}
checkProp("key", "string", TEST_OBSERVER_KEY);
checkProp("value", "boolean", TEST_OBSERVER_VALUE);
checkProp("isInternalChange", "boolean", true);
Services.obs.removeObserver(this, MOZSETTINGS_CHANGED);
next();
}
Services.obs.addObserver(observer, MOZSETTINGS_CHANGED, false);
let lock = SettingsService.createLock();
lock.set(TEST_OBSERVER_KEY, TEST_OBSERVER_VALUE, null);
}
]; ];
function next() { function next() {