825516b35357a3cb74bbadfb11e6ea669bd420f8
[test/tct/web/api.git] /
1 <!DOCTYPE html>\r
2 <!--\r
3 Copyright (c) 2013 Samsung Electronics Co., Ltd.\r
4 \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
8 \r
9     http://www.apache.org/licenses/LICENSE-2.0\r
10 \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
16 \r
17 \r
18 Authors:\r
19         Andrzej Krolikowski <a.krolikowsk@samsung.com>\r
20 \r
21 -->\r
22 <html>\r
23 <head>\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
28 </head>\r
29 \r
30 <body>\r
31 <div id="log"></div>\r
32 <script>\r
33 //==== TEST: MessageStorage_email_updateMessages_without_errorCallback\r
34 //==== LABEL Check if MessageStorage.updateMessages method works properly without errorCallback argument (email)\r
35 //==== PRIORITY P1\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
39 //==== TIMEOUT 300\r
40 //==== TEST_CRITERIA MR MOA MAST\r
41 setup({timeout: 90000});\r
42 \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
58 \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
71                 }\r
72             }\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
84                 }\r
85             }\r
86             assert_equals(foundAttachmenentCounter, 1, type + " incorrect number of found attachement = " + foundAttachmenentCounter);\r
87         } else {\r
88             assert_unreached("FIX your test - unknown type = " + type);\r
89         }\r
90 \r
91         testAttachmentCounter++;\r
92         if (testAttachmentCounter === mutableMessage.attachments.length + constMessage.attachments.length) {\r
93             t.done();\r
94         }\r
95     });\r
96 \r
97     loadMutableAttachmentSuccess = t.step_func(function (attachment) {\r
98         testAttachment(attachment, mutable);\r
99     });\r
100 \r
101     loadMutableAttachmentError = t.step_func(function (error) {\r
102         assert_unreached("loadMessageAttachment() error callback: name:" + error.name + ", msg:" + error.message);\r
103     });\r
104 \r
105     loadConstAttachmentSuccess = t.step_func(function (attachment) {\r
106         testAttachment(attachment, consts);\r
107     });\r
108 \r
109     loadConstAttachmentError = t.step_func(function (error) {\r
110         assert_unreached("loadMessageAttachment() error callback: name:" + error.name + ", msg:" + error.message);\r
111     });\r
112 \r
113     testMessage = t.step_func(function (messageToTest, originalMessage, type) {\r
114         var i;\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
118 \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
123 \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
129 \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
143         }\r
144 \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
153         } else {\r
154             assert_equals(messageToTest.timestamp, originalMessage.timestamp, type + " timestamp attribute.");\r
155         }\r
156         assert_equals(messageToTest.conversationId, originalMessage.conversationId, type + "  conversationId attribute.");\r
157 \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
164             } else {\r
165                 assert_unreached("FIX your test - unknown type = " + type);\r
166             }\r
167         }\r
168     });\r
169 \r
170     loadMutableSuccess = t.step_func(function (loadedMutableMessage) {\r
171         testMessage(loadedMutableMessage, mutableMessage, mutable);\r
172     });\r
173 \r
174     loadMutableError = t.step_func(function (error) {\r
175         assert_unreached("loadMessageBody() error callback: name:" + error.name + ", msg:" + error.message);\r
176     });\r
177 \r
178     loadConstSuccess = t.step_func(function (loadedConstMessage) {\r
179         testMessage(loadedConstMessage, constMessage, consts);\r
180     });\r
181 \r
182     loadConstError = t.step_func(function (error) {\r
183         assert_unreached("loadMessageBody() error callback: name:" + error.name + ", msg:" + error.message);\r
184     });\r
185 \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
191         } else {\r
192             service.loadMessageBody(foundMutableMessage, loadMutableSuccess, loadMutableError);\r
193         }\r
194     });\r
195 \r
196     findMutableMessagesError = t.step_func(function (error) {\r
197         assert_unreached("findMessages() error callback: name:" + error.name + ", msg:" + error.message);\r
198     });\r
199 \r
200     findConstMessagesSuccess = t.step_func(function (constMessages) {\r
201         assert_draft_message_equals(t, constMessages, constMessage);\r
202 \r
203         foundConstMessage = constMessages[0];\r
204         if (foundConstMessage.body.loaded) {\r
205             testMessage(foundConstMessage, constMessage, consts);\r
206         } else {\r
207             service.loadMessageBody(foundConstMessage, loadConstSuccess, loadConstError);\r
208         }\r
209     });\r
210 \r
211     findConstMessagesError = t.step_func(function (error) {\r
212         assert_unreached("findMessages() error callback: name:" + error.name + ", msg:" + error.message);\r
213     });\r
214 \r
215 \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
220 \r
221         constMessagefilter = new tizen.AttributeFilter("id", "EXACTLY", constMessage.id);\r
222         service.messageStorage.findMessages(constMessagefilter, findConstMessagesSuccess, findConstMessagesError);\r
223     });\r
224 \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
232         }\r
233     });\r
234 \r
235     addDraftError = t.step_func(function (error) {\r
236         assert_unreached("addDraftMessage() error callback: name:" + error.name + ", msg:" + error.message);\r
237     });\r
238 \r
239     serviceSuccess = t.step_func(function (emailService) {\r
240         service = emailService;\r
241 \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
248         });\r
249 \r
250         service.messageStorage.addDraftMessage(mutableMessage, addDraftSuccess, addDraftError);\r
251 \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
258         });\r
259 \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
263         ];\r
264 \r
265         service.messageStorage.addDraftMessage(constMessage, addDraftSuccess, addDraftError);\r
266     });\r
267 \r
268     serviceError = t.step_func(function (error) {\r
269         assert_unreached("getEmailService() error callback: name:" + error.name + ", msg:" + error.message);\r
270     });\r
271 \r
272     getEmailService(t, serviceSuccess, serviceError);\r
273 });\r
274 \r
275 </script>\r
276 </body>\r
277 </html>\r