Bug 900551 - Make marionette webapi tests use transaction events for settings; r=edgar r=hchang r=dlee

This commit is contained in:
Kyle Machulis 2014-08-27 21:01:30 -07:00
parent 1a050f739f
commit c6b52f9039
3 changed files with 35 additions and 18 deletions

View File

@ -93,13 +93,20 @@ function getSettings(aKey, aAllowError) {
function setSettings(aKey, aValue, aAllowError) {
let settings = {};
settings[aKey] = aValue;
let request = window.navigator.mozSettings.createLock().set(settings);
return wrapDomRequestAsPromise(request)
.then(function resolve() {
let lock = window.navigator.mozSettings.createLock();
let request = lock.set(settings);
let deferred = Promise.defer();
lock.onsettingstransactionsuccess = function () {
log("setSettings(" + JSON.stringify(settings) + ") - success");
}, function reject() {
deferred.resolve();
};
lock.onsettingstransactionfailure = function () {
ok(aAllowError, "setSettings(" + JSON.stringify(settings) + ") - error");
});
// We resolve even though we've thrown an error, since the ok()
// will do that.
deferred.resolve();
};
return deferred.promise;
}
/**

View File

@ -155,15 +155,19 @@ let gTestSuite = (function() {
* @return A deferred promise.
*/
function setSettings(aSettings) {
let request = navigator.mozSettings.createLock().set(aSettings);
return wrapDomRequestAsPromise(request)
.then(function resolve() {
let lock = window.navigator.mozSettings.createLock();
let request = lock.set(aSettings);
let deferred = Promise.defer();
lock.onsettingstransactionsuccess = function () {
ok(true, "setSettings(" + JSON.stringify(aSettings) + ")");
}, function reject(aEvent) {
deferred.resolve();
};
lock.onsettingstransactionfailure = function (aEvent) {
ok(false, "setSettings(" + JSON.stringify(aSettings) + ")");
deferred.reject();
throw aEvent.target.error;
});
};
return deferred.promise;
}
/**

View File

@ -584,14 +584,20 @@ let gTestSuite = (function() {
*
* @return A deferred promise.
*/
function setSettings(aSettings, aAllowError) {
let request = window.navigator.mozSettings.createLock().set(aSettings);
return wrapDomRequestAsPromise(request)
.then(function resolve() {
function setSettings(aSettings) {
let lock = window.navigator.mozSettings.createLock();
let request = lock.set(aSettings);
let deferred = Promise.defer();
lock.onsettingstransactionsuccess = function () {
ok(true, "setSettings(" + JSON.stringify(aSettings) + ")");
}, function reject() {
ok(aAllowError, "setSettings(" + JSON.stringify(aSettings) + ")");
});
deferred.resolve();
};
lock.onsettingstransactionfailure = function (aEvent) {
ok(false, "setSettings(" + JSON.stringify(aSettings) + ")");
deferred.reject();
throw aEvent.target.error;
};
return deferred.promise;
}
/**