[Messaging] tct fixes for sms part 2
authorMaciek Blim <m.blim@samsung.com>
Thu, 15 Jan 2015 10:32:34 +0000 (11:32 +0100)
committerMaciek Blim <m.blim@samsung.com>
Thu, 15 Jan 2015 10:33:22 +0000 (11:33 +0100)
tct:
    pass: 161
    fail: 9
    timeout: 12

pass rate: ~88.5%

Change-Id: Ica02a90f1762d4dfe6a9455b910e1b261fe31b19
Signed-off-by: Maciek Blim <m.blim@samsung.com>
src/messaging/email_manager.cc
src/messaging/message_service_short_msg.cc
src/messaging/messaging_api.js
src/messaging/messaging_util.cc
src/messaging/messaging_util.h
src/messaging/short_message_manager.cc

index 0356651121a619a4f685ccf76435f71040ffd9e0..1f616a3ac4f4437d21cd12e8d6fc249b19d05cc4 100644 (file)
@@ -374,7 +374,10 @@ static gboolean sendEmailCompleteCB(void* data)
             auto bccVect = callback->getMessage()->getBCC();
             std::for_each(bccVect.begin(), bccVect.end(), addToRecipients);
 
-            obj[JSON_DATA] = picojson::value(recipients);
+            picojson::object data;
+            data[JSON_DATA_RECIPIENTS] = picojson::value(recipients);
+            data[JSON_DATA_MESSAGE] = MessagingUtil::messageToJson(callback->getMessage());
+            obj[JSON_DATA] = picojson::value(data);
 
             MessagingInstance::getInstance().PostMessage(json->serialize().c_str());
             callback->getMessage()->setMessageStatus(MessageStatus::STATUS_SENT);
index ba4663c13a36ffb3ef406aba1d9c3a1a58428d83..961e9c8626bf19bc50812ab20ae48df47553a360 100644 (file)
@@ -125,7 +125,6 @@ static gboolean loadMessageBodyTask(void* data)
 
     try {
         std::shared_ptr<MessageBody> body = callback->getMessage()->getBody();
-        body->setLoaded(true);
         auto json = callback->getJson();
         picojson::object& obj = json->get<picojson::object>();
         obj[JSON_ACTION] = picojson::value(JSON_CALLBACK_SUCCCESS);
index 57e2076406773c2a57b3436cadfd6797c058a5f0..9e566d13d6e46af6145fee460ae1b87bf860fded 100644 (file)
@@ -180,7 +180,7 @@ function Message(type, data) {
         folderId: folderId || null,
         type: type,
         timestamp: timestamp || null,
-        from: from || null,
+        from: from || '',
         to: to || [],
         cc: cc || [],
         bcc: bcc || [],
@@ -189,7 +189,7 @@ function Message(type, data) {
         hasAttachment: hasAttachment || false,
         isHighPriority: data.isHighPriority || false,
         subject: data.subject || '',
-        inResponseTo: inResponseTo || '',
+        inResponseTo: inResponseTo || null,
         attachments: attachments
     };
     // id
@@ -246,9 +246,12 @@ function Message(type, data) {
         this,
         'timestamp',
         {
-            get: function () {return new Date(_internal.timestamp);},
+            get: function () {
+                return _internal.timestamp ? new Date(_internal.timestamp) : _internal.timestamp;
+            },
             set: function (value) {
-                if (value instanceof InternalValues_) _internal.timestamp = value.timestamp;
+                if (value instanceof InternalValues_) value = value.timestamp;
+                _internal.timestamp = value;
             },
             enumerable: true
         }
@@ -330,8 +333,8 @@ function Message(type, data) {
         {
             get: function () {return _internal.isRead;},
             set: function (value) {
-                if (value instanceof InternalValues_) value = value.isRead;
-                _internal.isRead = value;
+                if (value instanceof InternalValues_) {value = value.isRead;}
+                _internal.isRead = !!value;
             },
             enumerable: true
         }
@@ -678,8 +681,18 @@ MessageService.prototype.sendMessage = function () {
         }
     }).then({
         success: function (data) {
+            var message = data.message;
+            if (message) {
+                var body = message.body;
+                if (body) {
+                    updateInternal_(args.message.body, body)
+                    delete message.body;
+                }
+                updateInternal_(args.message, message);
+            }
+
             if (args.successCallback) {
-                args.successCallback.call(null, data);
+                args.successCallback.call(null, data.recipients);
             }
         },
         error: function (e) {
@@ -993,7 +1006,23 @@ MessageStorage.prototype.updateMessages = function () {
             serviceId: self.service.id
         }
     }).then({
-        success: function () {
+        success: function (data) {
+            var originals = {};
+            args.messages.forEach(function (m) {
+                if (m.id) {
+                    originals[m.id] = m;
+                }
+            });
+            data.forEach(function (message) {
+                if (!originals[message.id]) {return;}
+                var body = message.body;
+                if (body) {
+                    updateInternal_(originals[message.id].body, body)
+                    delete message.body;
+                }
+                updateInternal_(originals[message.id], message);
+            });
+
             if (args.successCallback) {
                 args.successCallback.call(null);
             }
index 8c70b3d2aaee472512fb9e3cc620418b6fbd06ee..1fcdb630a9131ea58696608ba6db0fe02bfb9098 100644 (file)
@@ -33,6 +33,7 @@ const char* JSON_DATA = "args";
 const char* JSON_DATA_MESSAGE = "message";
 const char* JSON_DATA_MESSAGE_BODY = "messageBody";
 const char* JSON_DATA_MESSAGE_ATTACHMENT = "messageAttachment";
+const char* JSON_DATA_RECIPIENTS = "recipients";
 const char* JSON_ERROR_MESSAGE = "message";
 const char* JSON_ERROR_NAME = "name";
 
index bc927187132fc10e2507a3f150d655d04686a147..885b18a7d5c0f0720071432f73a9db5b57413902 100644 (file)
@@ -32,6 +32,7 @@ extern const char* JSON_DATA;
 extern const char* JSON_DATA_MESSAGE;
 extern const char* JSON_DATA_MESSAGE_BODY;
 extern const char* JSON_DATA_MESSAGE_ATTACHMENT;
+extern const char* JSON_DATA_RECIPIENTS;
 extern const char* JSON_ERROR_MESSAGE;
 extern const char* JSON_ERROR_NAME;
 
index b0829120e11da76307726489976dd57cca865677..734ede73aab99a8f30bab888c60ec23f7d4786d5 100644 (file)
@@ -65,13 +65,10 @@ static gboolean sendMessageCompleteCB(void* data)
             auto toVect = callback->getMessage()->getTO();
             std::for_each(toVect.begin(), toVect.end(), addToRecipients);
 
-            auto ccVect = callback->getMessage()->getCC();
-            std::for_each(ccVect.begin(), ccVect.end(), addToRecipients);
-
-            auto bccVect = callback->getMessage()->getBCC();
-            std::for_each(bccVect.begin(), bccVect.end(), addToRecipients);
-
-            obj[JSON_DATA] = picojson::value(recipients);
+            picojson::object data;
+            data[JSON_DATA_RECIPIENTS] = picojson::value(recipients);
+            data[JSON_DATA_MESSAGE] = MessagingUtil::messageToJson(message);
+            obj[JSON_DATA] = picojson::value(data);
 
             MessagingInstance::getInstance().PostMessage(json->serialize().c_str());
             callback->getMessage()->setMessageStatus(MessageStatus::STATUS_SENT);
@@ -849,6 +846,17 @@ void ShortMsgManager::updateMessages(MessagesCallbackUserData* callback)
 
             auto json = callback->getJson();
             picojson::object& obj = json->get<picojson::object>();
+
+            auto messages = callback->getMessages();
+            picojson::array array;
+            auto each = [&array] (std::shared_ptr<Message> m)->void {
+                array.push_back(MessagingUtil::messageToJson(m));
+            };
+
+            for_each(messages.begin(), messages.end(), each);
+
+            obj[JSON_DATA] = picojson::value(array);
+
             obj[JSON_ACTION] = picojson::value(JSON_CALLBACK_SUCCCESS);
             MessagingInstance::getInstance().PostMessage(json->serialize().c_str());
         }