Bug 1143628 - Part 1: Remove wrapDomRequestAsPromise defined in MobileMessage marionette test. r=bevis

This commit is contained in:
Edgar Chen 2015-03-17 12:00:20 +08:00
parent 8a7c1130d3
commit 2d62092c4f
5 changed files with 43 additions and 89 deletions

View File

@ -110,33 +110,6 @@ function waitForManagerEvent(aEventName, aMatchFunc) {
return deferred.promise; return deferred.promise;
} }
/**
* Wrap DOMRequest onsuccess/onerror events to Promise resolve/reject.
*
* Fulfill params: A DOMEvent.
* Reject params: A DOMEvent.
*
* @param aRequest
* A DOMRequest instance.
*
* @return A deferred promise.
*/
function wrapDomRequestAsPromise(aRequest) {
let deferred = Promise.defer();
ok(aRequest instanceof DOMRequest,
"aRequest is instanceof " + aRequest.constructor);
aRequest.addEventListener("success", function(aEvent) {
deferred.resolve(aEvent);
});
aRequest.addEventListener("error", function(aEvent) {
deferred.reject(aEvent);
});
return deferred.promise;
}
/** /**
* Send a SMS message to a single receiver. Resolve if it succeeds, reject * Send a SMS message to a single receiver. Resolve if it succeeds, reject
* otherwise. * otherwise.
@ -153,10 +126,7 @@ function wrapDomRequestAsPromise(aRequest) {
* @return A deferred promise. * @return A deferred promise.
*/ */
function sendSmsWithSuccess(aReceiver, aText) { function sendSmsWithSuccess(aReceiver, aText) {
let request = manager.send(aReceiver, aText); return manager.send(aReceiver, aText);
return wrapDomRequestAsPromise(request)
.then((aEvent) => { return aEvent.target.result; },
(aEvent) => { throw aEvent.target.error; });
} }
/** /**
@ -180,11 +150,9 @@ function sendSmsWithFailure(aReceiver, aText) {
let promises = []; let promises = [];
promises.push(waitForManagerEvent("failed") promises.push(waitForManagerEvent("failed")
.then((aEvent) => { return aEvent.message; })); .then((aEvent) => { return aEvent.message; }));
promises.push(manager.send(aReceiver, aText)
let request = manager.send(aReceiver, aText); .then((aResult) => { throw aResult; },
promises.push(wrapDomRequestAsPromise(request) (aError) => { return aError; }));
.then((aEvent) => { throw aEvent; },
(aEvent) => { return aEvent.target.error; }));
return Promise.all(promises) return Promise.all(promises)
.then((aResults) => { return { message: aResults[0], .then((aResults) => { return { message: aResults[0],
@ -213,11 +181,9 @@ function sendMmsWithFailure(aMmsParameters, aSendParameters) {
let promises = []; let promises = [];
promises.push(waitForManagerEvent("failed") promises.push(waitForManagerEvent("failed")
.then((aEvent) => { return aEvent.message; })); .then((aEvent) => { return aEvent.message; }));
promises.push(manager.sendMMS(aMmsParameters, aSendParameters)
let request = manager.sendMMS(aMmsParameters, aSendParameters); .then((aResult) => { throw aResult; },
promises.push(wrapDomRequestAsPromise(request) (aError) => { return aError; }));
.then((aEvent) => { throw aEvent; },
(aEvent) => { return aEvent.target.error; }));
return Promise.all(promises) return Promise.all(promises)
.then((aResults) => { return { message: aResults[0], .then((aResults) => { return { message: aResults[0],
@ -237,9 +203,7 @@ function sendMmsWithFailure(aMmsParameters, aSendParameters) {
* @return A deferred promise. * @return A deferred promise.
*/ */
function getMessage(aId) { function getMessage(aId) {
let request = manager.getMessage(aId); return manager.getMessage(aId);
return wrapDomRequestAsPromise(request)
.then((aEvent) => { return aEvent.target.result; });
} }
/** /**
@ -371,14 +335,12 @@ function deleteMessagesById(aMessageIds) {
let promises = []; let promises = [];
promises.push(waitForManagerEvent("deleted")); promises.push(waitForManagerEvent("deleted"));
promises.push(manager.delete(aMessageIds));
let request = manager.delete(aMessageIds);
promises.push(wrapDomRequestAsPromise(request));
return Promise.all(promises) return Promise.all(promises)
.then((aResults) => { .then((aResults) => {
return { deletedInfo: aResults[0], return { deletedInfo: aResults[0],
deletedFlags: aResults[1].target.result }; deletedFlags: aResults[1] };
}); });
} }

View File

@ -13,10 +13,9 @@ function getNonExistentMsg(aId) {
return getMessage(aId) return getMessage(aId)
.then(function onresolve() { .then(function onresolve() {
ok(false, "request succeeded when tried to get non-existent sms"); ok(false, "request succeeded when tried to get non-existent sms");
}, function onreject(aEvent) { }, function onreject(aError) {
let error = aEvent.target.error; ok(aError, "DOMError");
ok(error, "DOMError"); is(aError.name, "NotFoundError", "error.name");
is(error.name, "NotFoundError", "error.name");
}); });
} }
@ -27,10 +26,9 @@ function getMsgInvalidId(aId) {
.then(function onresolve() { .then(function onresolve() {
ok(false, "request succeeded when tried to get message with " + ok(false, "request succeeded when tried to get message with " +
"invalid id (id: " + aId + ")."); "invalid id (id: " + aId + ").");
}, function onreject(aEvent) { }, function onreject(aError) {
let error = aEvent.target.error; ok(aError, "DOMError");
ok(error, "DOMError"); is(aError.name, "NotFoundError", "error.name");
is(error.name, "NotFoundError", "error.name");
}); });
} }

View File

@ -13,16 +13,14 @@ function test(text, segments, charsPerSegment, charsAvailableInLastSegment) {
let domRequest = manager.getSegmentInfoForText(text); let domRequest = manager.getSegmentInfoForText(text);
ok(domRequest, "DOMRequest object returned."); ok(domRequest, "DOMRequest object returned.");
return wrapDomRequestAsPromise(domRequest) return domRequest.then(function(aResult) {
.then(function(aEvent) { ok(aResult, "result = " + JSON.stringify(aResult));
let result = aEvent.target.result;
ok(result, "aEvent.target.result = " + JSON.stringify(result));
is(result.segments, segments, "result.segments"); is(aResult.segments, segments, "result.segments");
is(result.charsPerSegment, charsPerSegment, "result.charsPerSegment"); is(aResult.charsPerSegment, charsPerSegment, "result.charsPerSegment");
is(result.charsAvailableInLastSegment, charsAvailableInLastSegment, is(aResult.charsAvailableInLastSegment, charsAvailableInLastSegment,
"result.charsAvailableInLastSegment"); "result.charsAvailableInLastSegment");
}); });
} }
startTestCommon(function() { startTestCommon(function() {

View File

@ -103,24 +103,22 @@ function doSingleRequest(aRequest, aReceiver, aBody, aNow) {
sentGot = true; sentGot = true;
})); }));
promises.push(wrapDomRequestAsPromise(aRequest) promises.push(aRequest.then(function(aResult) {
.then(function(aEvent) { log(" onsuccess event for '" + aReceiver + "' received.");
log(" onsuccess event for '" + aReceiver + "' received.");
let message = aEvent.target.result; checkMessage(aResult, "sent", aBody);
checkMessage(message, "sent", aBody); // Should be mostly identical to sendingMessage.
// Should be mostly identical to sendingMessage. is(aResult.id, sendingMessage.id, "message.id");
is(message.id, sendingMessage.id, "message.id"); is(aResult.receiver, sendingMessage.receiver, "message.receiver");
is(message.receiver, sendingMessage.receiver, "message.receiver"); is(aResult.body, sendingMessage.body, "message.body");
is(message.body, sendingMessage.body, "message.body"); is(aResult.timestamp, sendingMessage.timestamp, "message.timestamp");
is(message.timestamp, sendingMessage.timestamp, "message.timestamp");
ok(sendingGot, "sending event should have been triggered"); ok(sendingGot, "sending event should have been triggered");
ok(!sentGot, "sent event should not have been triggered"); ok(!sentGot, "sent event should not have been triggered");
ok(!successGot, "success event should not have been triggered"); ok(!successGot, "success event should not have been triggered");
successGot = true; successGot = true;
})); }));
return Promise.all(promises); return Promise.all(promises);
} }

View File

@ -23,16 +23,14 @@ function test(text, segments, charsPerSegment, charsAvailableInLastSegment) {
let domRequest = manager.getSegmentInfoForText(text); let domRequest = manager.getSegmentInfoForText(text);
ok(domRequest, "DOMRequest object returned."); ok(domRequest, "DOMRequest object returned.");
return wrapDomRequestAsPromise(domRequest) return domRequest.then(function(aResult) {
.then(function(aEvent) { ok(aResult, "result = " + JSON.stringify(aResult));
let result = aEvent.target.result;
ok(result, "aEvent.target.result = " + JSON.stringify(result));
is(result.segments, segments, "result.segments"); is(aResult.segments, segments, "result.segments");
is(result.charsPerSegment, charsPerSegment, "result.charsPerSegment"); is(aResult.charsPerSegment, charsPerSegment, "result.charsPerSegment");
is(result.charsAvailableInLastSegment, charsAvailableInLastSegment, is(aResult.charsAvailableInLastSegment, charsAvailableInLastSegment,
"result.charsAvailableInLastSegment"); "result.charsAvailableInLastSegment");
}); });
} }
startTestCommon(function() { startTestCommon(function() {