3 Copyright (c) 2013 Samsung Electronics Co., Ltd.
\r
5 Licensed under the Apache License, Version 2.0 (the License);
\r
6 you may not use this file except in compliance with the License.
\r
7 You may obtain a copy of the License at
\r
9 http://www.apache.org/licenses/LICENSE-2.0
\r
11 Unless required by applicable law or agreed to in writing, software
\r
12 distributed under the License is distributed on an "AS IS" BASIS,
\r
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
14 See the License for the specific language governing permissions and
\r
15 limitations under the License.
\r
19 Andrzej Krolikowski <a.krolikowsk@samsung.com>
\r
24 <title>MessageStorage_email_updateMessages_without_errorCallback</title>
\r
25 <meta charset="utf-8"/>
\r
26 <script type="text/javascript" src="support/unitcommon.js"></script>
\r
27 <script type="text/javascript" src="support/messaging_common.js"></script>
\r
31 <div id="log"></div>
\r
33 //==== TEST: MessageStorage_email_updateMessages_without_errorCallback
\r
34 //==== LABEL Check if MessageStorage.updateMessages method works properly without errorCallback argument (email)
\r
36 //==== SPEC Tizen Web API:Communication:Messaging:MessageStorage:updateMessages M
\r
37 //==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/messaging.html
\r
38 //==== ONLOAD_DELAY 300
\r
40 //==== TEST_CRITERIA MR MOA MAST
\r
41 setup({timeout: 90000});
\r
43 var t = async_test(document.title, {timeout: 90000});
\r
44 t.step(function () {
\r
45 var serviceSuccess, serviceError, service,
\r
46 mutableMessage, constMessage,
\r
47 plainBodyToSetForMutableMessage = MESSAGE_BODY_PLAIN + "_mutable",
\r
48 plainBodyToSetForConstMessage = MESSAGE_BODY_PLAIN + "_const",
\r
49 addDraftSuccess, addDraftError, addDraftSuccessCounter = 0, returnedValue = null,
\r
50 updateSuccess, mutableMessagefilter, constMessagefilter,
\r
51 findMutableMessagesSuccess, findMutableMessagesError, foundMutableMessage, mutable = "MUTABLE",
\r
52 findConstMessagesSuccess, findConstMessagesError, foundConstMessage, consts = "CONST",
\r
53 loadMutableSuccess, loadMutableError,
\r
54 loadConstSuccess, loadConstError,
\r
55 loadMutableAttachmentSuccess, loadMutableAttachmentError,
\r
56 loadConstAttachmentSuccess, loadConstAttachmentError,
\r
57 testMessage, testAttachment, testAttachmentCounter = 0;
\r
59 testAttachment = t.step_func(function (attachment, type) {
\r
60 var j, foundAttachmenentCounter = 0;
\r
61 if (type === mutable) {
\r
62 for (j = 0; j < mutableMessage.attachments.length; j++) {
\r
63 if (attachment.id === mutableMessage.attachments[j].id) {
\r
64 assert_equals(attachment.id, mutableMessage.attachments[j].id, type + " attachment.id");
\r
65 assert_equals(attachment.messageId, mutableMessage.attachments[j].messageId, type + " attachment.messageId");
\r
66 assert_equals(attachment.messageId, mutableMessage.id, type + " attachment.messageId (with message.id)");
\r
67 assert_equals(attachment.mimeType, mutableMessage.attachments[j].mimeType, type + " attachment.mimeType");
\r
68 assert_type(attachment.filePath, "string", type + " attachment.filePath is not a string");
\r
69 assert_not_equals(attachment.filePath, "", type + " attachment.filePath is empty");
\r
70 foundAttachmenentCounter++;
\r
73 assert_equals(foundAttachmenentCounter, 1, type + " incorrect number of found attachement = " + foundAttachmenentCounter);
\r
74 } else if (type === consts) {
\r
75 for (j = 0; j < constMessage.attachments.length; j++) {
\r
76 if (attachment.id === constMessage.attachments[j].id) {
\r
77 assert_equals(attachment.id, constMessage.attachments[j].id, type + " attachment.id");
\r
78 assert_equals(attachment.messageId, constMessage.attachments[j].messageId, type + " attachment.messageId");
\r
79 assert_equals(attachment.messageId, constMessage.id, type + " attachment.messageId - (with message.id)");
\r
80 assert_equals(attachment.mimeType, constMessage.attachments[j].mimeType, type + " attachment.mimeType");
\r
81 assert_type(attachment.filePath, "string", type + " attachment.filePath is not a string");
\r
82 assert_not_equals(attachment.filePath, "", type + " attachment.filePath is empty");
\r
83 foundAttachmenentCounter++;
\r
86 assert_equals(foundAttachmenentCounter, 1, type + " incorrect number of found attachement = " + foundAttachmenentCounter);
\r
88 assert_unreached("FIX your test - unknown type = " + type);
\r
91 testAttachmentCounter++;
\r
92 if (testAttachmentCounter === mutableMessage.attachments.length + constMessage.attachments.length) {
\r
97 loadMutableAttachmentSuccess = t.step_func(function (attachment) {
\r
98 testAttachment(attachment, mutable);
\r
101 loadMutableAttachmentError = t.step_func(function (error) {
\r
102 assert_unreached("loadMessageAttachment() error callback: name:" + error.name + ", msg:" + error.message);
\r
105 loadConstAttachmentSuccess = t.step_func(function (attachment) {
\r
106 testAttachment(attachment, consts);
\r
109 loadConstAttachmentError = t.step_func(function (error) {
\r
110 assert_unreached("loadMessageAttachment() error callback: name:" + error.name + ", msg:" + error.message);
\r
113 testMessage = t.step_func(function (messageToTest, originalMessage, type) {
\r
115 assert_equals(messageToTest.id, originalMessage.id, type + " id attribute.");
\r
116 assert_equals(messageToTest.folderId, originalMessage.folderId, type + " folderId attribute.");
\r
117 assert_equals(messageToTest.type, originalMessage.type, type + " type attribute.");
\r
119 assert_equals(messageToTest.from, originalMessage.from, type + " from attribute.");
\r
120 assert_array_equals(messageToTest.to, originalMessage.to, type + " to attribute.");
\r
121 assert_array_equals(messageToTest.cc, originalMessage.cc, type + " cc attribute.");
\r
122 assert_array_equals(messageToTest.bcc, originalMessage.bcc, type + " bcc attribute.");
\r
124 assert_equals(messageToTest.body.messageId, originalMessage.body.messageId, type + " body.messageId attribute.");
\r
125 assert_equals(messageToTest.body.messageId, originalMessage.id, type + " body.messageId attribute (with message.id).");
\r
126 assert_equals(messageToTest.body.loaded, originalMessage.body.loaded, type + " body.loaded attribute.");
\r
127 assert_equals(messageToTest.body.plainBody, originalMessage.body.plainBody, type + " body.plainBody attribute.");
\r
128 assert_equals(messageToTest.body.htmlBody, originalMessage.body.htmlBody, type + " body.htmlBody attribute.");
\r
130 assert_equals(messageToTest.body.inlineAttachments.length, originalMessage.body.inlineAttachments.length,
\r
131 type + " incorrect length of inlineAttachments");
\r
132 for (i = 0; i < originalMessage.body.inlineAttachments.length; i++) {
\r
133 assert_equals(messageToTest.body.inlineAttachments[i].id, originalMessage.body.inlineAttachments[i].id,
\r
134 type + " message.body.inlineAttachments[" + i + "].id");
\r
135 assert_equals(messageToTest.body.inlineAttachments[i].messageId, originalMessage.body.inlineAttachments[i].messageId,
\r
136 type + " message.body.inlineAttachments[" + i + "].messageId");
\r
137 assert_equals(messageToTest.body.inlineAttachments[i].messageId, originalMessage.id,
\r
138 type + " message.body.inlineAttachments[" + i + "].messageId - (with message.id)");
\r
139 assert_equals(messageToTest.body.inlineAttachments[i].mimeType, originalMessage.body.inlineAttachments[i].mimeType,
\r
140 type + " message.body.inlineAttachments[" + i + "].mimeType");
\r
141 assert_type(messageToTest.body.inlineAttachments[i].filePath, "string", type + " attachment.filePath is not a string");
\r
142 assert_not_equals(messageToTest.body.inlineAttachments[i].filePath, "", type + " attachment.filePath is empty");
\r
145 assert_equals(messageToTest.isRead, originalMessage.isRead, type + " isRead attribute.");
\r
146 assert_equals(messageToTest.hasAttachment, originalMessage.hasAttachment, type + " hasAttachment attribute.");
\r
147 assert_equals(messageToTest.isHighPriority, originalMessage.isHighPriority, type + " isHighPriority attribute.");
\r
148 assert_equals(messageToTest.subject, originalMessage.subject, type + " subject attribute.");
\r
149 assert_equals(messageToTest.messageStatus, originalMessage.messageStatus, type + " messageStatus attribute.");
\r
150 assert_equals(messageToTest.inResponseTo, originalMessage.inResponseTo, type + " inResponseTo attribute.");
\r
151 if (messageToTest.timestamp !== null && originalMessage.timestamp !== null) {
\r
152 assert_equals(messageToTest.timestamp.getTime(), originalMessage.timestamp.getTime(), type + " timestamp attribute.");
\r
154 assert_equals(messageToTest.timestamp, originalMessage.timestamp, type + " timestamp attribute.");
\r
156 assert_equals(messageToTest.conversationId, originalMessage.conversationId, type + " conversationId attribute.");
\r
158 assert_equals(messageToTest.attachments.length, originalMessage.attachments.length, type + " incorrect length of attachments");
\r
159 for (i = 0; i < messageToTest.attachments.length; i++) {
\r
160 if (type === mutable) {
\r
161 service.loadMessageAttachment(messageToTest.attachments[i], loadMutableAttachmentSuccess, loadMutableAttachmentError);
\r
162 } else if (type === consts) {
\r
163 service.loadMessageAttachment(messageToTest.attachments[i], loadConstAttachmentSuccess, loadConstAttachmentError);
\r
165 assert_unreached("FIX your test - unknown type = " + type);
\r
170 loadMutableSuccess = t.step_func(function (loadedMutableMessage) {
\r
171 testMessage(loadedMutableMessage, mutableMessage, mutable);
\r
174 loadMutableError = t.step_func(function (error) {
\r
175 assert_unreached("loadMessageBody() error callback: name:" + error.name + ", msg:" + error.message);
\r
178 loadConstSuccess = t.step_func(function (loadedConstMessage) {
\r
179 testMessage(loadedConstMessage, constMessage, consts);
\r
182 loadConstError = t.step_func(function (error) {
\r
183 assert_unreached("loadMessageBody() error callback: name:" + error.name + ", msg:" + error.message);
\r
186 findMutableMessagesSuccess = t.step_func(function (mutableMessages) {
\r
187 assert_draft_message_equals(t, mutableMessages, mutableMessage);
\r
188 foundMutableMessage = mutableMessages[0];
\r
189 if (foundMutableMessage.body.loaded) {
\r
190 testMessage(foundMutableMessage, mutableMessage, mutable);
\r
192 service.loadMessageBody(foundMutableMessage, loadMutableSuccess, loadMutableError);
\r
196 findMutableMessagesError = t.step_func(function (error) {
\r
197 assert_unreached("findMessages() error callback: name:" + error.name + ", msg:" + error.message);
\r
200 findConstMessagesSuccess = t.step_func(function (constMessages) {
\r
201 assert_draft_message_equals(t, constMessages, constMessage);
\r
203 foundConstMessage = constMessages[0];
\r
204 if (foundConstMessage.body.loaded) {
\r
205 testMessage(foundConstMessage, constMessage, consts);
\r
207 service.loadMessageBody(foundConstMessage, loadConstSuccess, loadConstError);
\r
211 findConstMessagesError = t.step_func(function (error) {
\r
212 assert_unreached("findMessages() error callback: name:" + error.name + ", msg:" + error.message);
\r
216 updateSuccess = t.step_func(function () {
\r
217 assert_equals(returnedValue, undefined, "Incorrect returned value from updateMessages");
\r
218 mutableMessagefilter = new tizen.AttributeFilter("id", "EXACTLY", mutableMessage.id);
\r
219 service.messageStorage.findMessages(mutableMessagefilter, findMutableMessagesSuccess, findMutableMessagesError);
\r
221 constMessagefilter = new tizen.AttributeFilter("id", "EXACTLY", constMessage.id);
\r
222 service.messageStorage.findMessages(constMessagefilter, findConstMessagesSuccess, findConstMessagesError);
\r
225 addDraftSuccess = t.step_func(function () {
\r
226 addDraftSuccessCounter++;
\r
227 if (addDraftSuccessCounter === 2) {
\r
228 mutableMessage.isRead = true;
\r
229 mutableMessage.isHighPriority = true;
\r
230 mutableMessage.subject = "new mutableMessage.subject";
\r
231 returnedValue = service.messageStorage.updateMessages([mutableMessage, constMessage], updateSuccess);
\r
235 addDraftError = t.step_func(function (error) {
\r
236 assert_unreached("addDraftMessage() error callback: name:" + error.name + ", msg:" + error.message);
\r
239 serviceSuccess = t.step_func(function (emailService) {
\r
240 service = emailService;
\r
242 mutableMessage = new tizen.Message("messaging.email", {
\r
243 subject: generateSubject(),
\r
244 to: [TEST_EMAIL_RECIPIENT_2],
\r
245 plainBody: plainBodyToSetForMutableMessage,
\r
246 htmlBody: MESSAGE_BODY_HTML,
\r
247 isHighPriority: false
\r
250 service.messageStorage.addDraftMessage(mutableMessage, addDraftSuccess, addDraftError);
\r
252 constMessage = new tizen.Message("messaging.email", {
\r
253 subject: generateSubject(),
\r
254 to: [TEST_EMAIL_RECIPIENT_2],
\r
255 plainBody: plainBodyToSetForConstMessage,
\r
256 htmlBody: MESSAGE_BODY_HTML,
\r
257 isHighPriority: false
\r
260 constMessage.attachments = [
\r
261 new tizen.MessageAttachment(TEST_DIR + "webapi-tizen-messaging-test_noise.mp3", MESSAGE_ATTACHMENT_SOUND_MIME_TYPE),
\r
262 new tizen.MessageAttachment(TEST_DIR + "webapi-tizen-messaging-test_image.jpg", MESSAGE_ATTACHMENT_IMAGE_MIME_TYPE)
\r
265 service.messageStorage.addDraftMessage(constMessage, addDraftSuccess, addDraftError);
\r
268 serviceError = t.step_func(function (error) {
\r
269 assert_unreached("getEmailService() error callback: name:" + error.name + ", msg:" + error.message);
\r
272 getEmailService(t, serviceSuccess, serviceError);
\r