Skip to content
This repository has been archived by the owner on Nov 3, 2021. It is now read-only.

Commit

Permalink
Merge pull request #13052 from denehs/bug928821
Browse files Browse the repository at this point in the history
Bug 928821 - B2G MMS: put deliveryStatus[] into a more generic structure...
  • Loading branch information
rvandermeulen committed Oct 31, 2013
2 parents f3923c9 + 063a89a commit ac8ad66
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 26 deletions.
6 changes: 3 additions & 3 deletions apps/sms/js/activity_handler.js
Expand Up @@ -429,9 +429,9 @@ var ActivityHandler = {
if (message.type === 'sms') {
dispatchNotification();
} else {
// Here we can only have one sender, so deliveryStatus[0] => message
// status from sender.
var status = message.deliveryStatus[0];
// Here we can only have one sender, so deliveryInfo[0].deliveryStatus =>
// message status from sender.
var status = message.deliveryInfo[0].deliveryStatus;
if (status === 'pending') {
return;
}
Expand Down
8 changes: 4 additions & 4 deletions apps/sms/js/desktop-only/mobilemessage.js
Expand Up @@ -385,7 +385,7 @@
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['pending'],
deliveryInfo: [{receiver: null, deliveryStatus: 'pending'}],
subject: 'Pending download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() + ONE_DAY_TIME)
Expand All @@ -395,7 +395,7 @@
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['error'],
deliveryInfo: [{receiver: null, deliveryStatus: 'error'}],
subject: 'Error download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() + ONE_DAY_TIME * 2)
Expand All @@ -405,7 +405,7 @@
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['error'],
deliveryInfo: [{receiver: null, deliveryStatus: 'error'}],
subject: 'Error download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() - ONE_DAY_TIME)
Expand All @@ -415,7 +415,7 @@
sender: '123456',
type: 'mms',
delivery: 'received',
deliveryStatus: ['success'],
deliveryInfo: [{receiver: null, deliveryStatus: 'success'}],
subject: 'No attachment error',
smil: '<smil><body><par><text src="text1"/></par></body></smil>',
attachments: null,
Expand Down
6 changes: 3 additions & 3 deletions apps/sms/js/message_manager.js
Expand Up @@ -84,11 +84,11 @@ var MessageManager = {
return;
}

// Here we can only have one sender, so deliveryStatus[0] => message
// status from sender. Ignore 'pending' messages that are received
// Here we can only have one sender, so deliveryInfo[0].deliveryStatus =>
// message status from sender. Ignore 'pending' messages that are received
// this means we are in automatic download mode
if (message.delivery === 'not-downloaded' &&
message.deliveryStatus[0] === 'pending') {
message.deliveryInfo[0].deliveryStatus === 'pending') {
return;
}

Expand Down
13 changes: 6 additions & 7 deletions apps/sms/js/thread_ui.js
Expand Up @@ -1203,8 +1203,8 @@ var ThreadUI = global.ThreadUI = {
var messageL10nId = 'not-downloaded-mms';
var downloadL10nId = 'download';

// assuming that incoming message only has one deliveryStatus
var status = message.deliveryStatus[0];
// assuming that incoming message only has one deliveryInfo
var status = message.deliveryInfo[0].deliveryStatus;

var expireFormatted = Utils.date.format.localeFormat(
message.expiryDate, navigator.mozL10n.get('dateTimeFormat_%x')
Expand Down Expand Up @@ -1239,13 +1239,12 @@ var ThreadUI = global.ThreadUI = {
// In multiple recipient case, we return true only when all the recipients
// deliveryStatus set to success.
isDeliveryStatusSuccess: function thui_isDeliveryStatusSuccess(message) {
var statusSet = message.deliveryStatus;
if (Array.isArray(statusSet)) {
return statusSet.every(function(status) {
return status === 'success';
if (message.type === 'mms') {
return message.deliveryInfo.every(function(info) {
return info.deliveryStatus === 'success';
});
} else {
return statusSet === 'success';
return message.deliveryStatus === 'success';
}
},

Expand Down
2 changes: 2 additions & 0 deletions apps/sms/test/unit/mock_messages.js
Expand Up @@ -12,6 +12,7 @@ var MockMessages = {
receiver: 'receiver',
body: 'body',
delivery: 'received',
deliveryStatus: 'success',
type: 'sms',
messageClass: 'normal',
timestamp: new Date(),
Expand Down Expand Up @@ -39,6 +40,7 @@ var MockMessages = {
sender: 'sender',
receivers: ['receiver'],
delivery: 'received',
deliveryInfo: [{receiver: 'receiver', deliveryStatus: 'success'}],
type: 'mms',
timestamp: now,
read: true,
Expand Down
29 changes: 20 additions & 9 deletions apps/sms/test/unit/thread_ui_test.js
Expand Up @@ -1210,25 +1210,36 @@ suite('thread_ui.js >', function() {

suite('onDeliverySuccess >', function() {
teardown(function() {
this.fakeMessage.type = null;
this.fakeMessage.deliveryStatus = null;
this.fakeMessage.deliveryInfo = null;
});
test('sms delivery success', function() {
this.fakeMessage.type = 'sms';
this.fakeMessage.deliveryStatus = 'success';
ThreadUI.onDeliverySuccess(this.fakeMessage);
assert.isTrue(this.container.classList.contains('delivered'));
});
test('mms delivery success', function() {
this.fakeMessage.deliveryStatus = ['success'];
this.fakeMessage.type = 'mms';
this.fakeMessage.deliveryInfo = [{
receiver: null, deliveryStatus: 'success'}];
ThreadUI.onDeliverySuccess(this.fakeMessage);
assert.isTrue(this.container.classList.contains('delivered'));
});
test('multiple recipients mms delivery success', function() {
this.fakeMessage.deliveryStatus = ['success', 'success'];
this.fakeMessage.type = 'mms';
this.fakeMessage.deliveryInfo = [
{receiver: null, deliveryStatus: 'success'},
{receiver: null, deliveryStatus: 'success'}];
ThreadUI.onDeliverySuccess(this.fakeMessage);
assert.isTrue(this.container.classList.contains('delivered'));
});
test('not all recipients return mms delivery success', function() {
this.fakeMessage.deliveryStatus = ['success', 'pending'];
this.fakeMessage.type = 'mms';
this.fakeMessage.deliveryInfo = [
{receiver: null, deliveryStatus: 'success'},
{receiver: null, deliveryStatus: 'pending'}];
ThreadUI.onDeliverySuccess(this.fakeMessage);
assert.isFalse(this.container.classList.contains('delivered'));
});
Expand Down Expand Up @@ -1564,7 +1575,7 @@ suite('thread_ui.js >', function() {
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['pending'],
deliveryInfo: [{receiver: null, deliveryStatus: 'pending'}],
subject: 'Pending download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() + ONE_DAY_TIME)
Expand All @@ -1575,7 +1586,7 @@ suite('thread_ui.js >', function() {
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['manual'],
deliveryInfo: [{receiver: null, deliveryStatus: 'manual'}],
subject: 'manual download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() + ONE_DAY_TIME * 2)
Expand All @@ -1586,7 +1597,7 @@ suite('thread_ui.js >', function() {
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['error'],
deliveryInfo: [{receiver: null, deliveryStatus: 'error'}],
subject: 'error download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() + ONE_DAY_TIME * 2)
Expand All @@ -1597,7 +1608,7 @@ suite('thread_ui.js >', function() {
sender: '123456',
type: 'mms',
delivery: 'not-downloaded',
deliveryStatus: ['error'],
deliveryInfo: [{receiver: null, deliveryStatus: 'error'}],
subject: 'Error download',
timestamp: new Date(Date.now() - 150000),
expiryDate: new Date(Date.now() - ONE_DAY_TIME)
Expand Down Expand Up @@ -1913,7 +1924,7 @@ suite('thread_ui.js >', function() {
sender: '123456',
type: 'mms',
delivery: 'received',
deliveryStatus: ['success'],
deliveryInfo: [{receiver: null, deliveryStatus: 'success'}],
subject: 'No attachment testing',
smil: '<smil><body><par><text src="cid:1"/>' +
'</par></body></smil>',
Expand All @@ -1927,7 +1938,7 @@ suite('thread_ui.js >', function() {
sender: '123456',
type: 'mms',
delivery: 'received',
deliveryStatus: ['success'],
deliveryInfo: [{receiver: null, deliveryStatus: 'success'}],
subject: 'Empty attachment testing',
smil: '<smil><body><par><text src="cid:1"/>' +
'</par></body></smil>',
Expand Down

0 comments on commit ac8ad66

Please sign in to comment.