7190362b8da8034e8874593db08ee1b5060855a3
[test/tct/web/api.git] /
1 <!DOCTYPE html>
2 <!--
3 Copyright (c) 2013 Samsung Electronics Co., Ltd.
4
5 Licensed under the Apache License, Version 2.0 (the License);
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9     http://www.apache.org/licenses/LICENSE-2.0
10
11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and
15 limitations under the License.
16
17
18 Authors:
19         Lukasz Bardeli <l.bardeli@samsung.com>
20
21 -->
22 <html>
23 <head>
24 <title>MessageStorage_mms_findMessages_from_with_errorCallback</title>
25 <meta charset="utf-8"/>
26 <script type="text/javascript" src="../resources/unitcommon.js"></script>
27 <script type="text/javascript" src="support/messaging_common.js"></script>
28 </head>
29
30 <body>
31 <div id="log"></div>
32 <script>
33 //==== TEST: MessageStorage_mms_findMessages_from_with_errorCallback
34 //==== LABEL Check with optional arguments findMessages(valid_filter, valid_successCallback, valid_errorCallback) from for mms
35 //==== SPEC Tizen Web API:Communication:Messaging:MessageStorage:findMessages M
36 //==== SPEC_URL https://developer.tizen.org/help/topic/org.tizen.web.device.apireference/tizen/messaging.html
37 //==== ONLOAD_DELAY 90
38 //==== TEST_CRITERIA MOA MR
39 setup({timeout: 90000});
40
41 var t = async_test("MessageStorage_mms_findMessages_from_with_errorCallback", {timeout: 90000}),
42     getMessageServicesErrorCB, getMessageServicesSuccessCB, messageService, messageStorage,
43     message, messageReceived, findSuccessCB, findErrorCB, i, onMessagesAdded,
44     datetime, filterSuccess = 0, watchId = null, callbackListener,
45     sendSuccess, sendError, returnedValue = null, fromFound, plainBodyFilter, fromAndPlainBodyFilter;
46
47 t.step(function () {
48     add_result_callback(function (res) {
49         try {
50             if (watchId !== null) {
51                 messageStorage.removeChangeListener(watchId);
52             }
53         } catch (err) {
54             // do nothing in case removeChangeListener throw an exception
55         }
56     });
57
58     findSuccessCB = t.step_func(function (msg) {
59         assert_greater_than(msg.length, 0, "No messages found");
60         for (i = 0; i < msg.length; i++) {
61             assert_not_equals(msg[i].from, null, "from is null");
62             fromFound = msg[i].from.indexOf(TEST_SMS_RECIPIENT);
63             assert_greater_than_equal(fromFound, 0, "Recipient not found");
64
65             if (msg[i].id === messageReceived.id) {
66                 filterSuccess++;
67             }
68         }
69
70         assert_equals(filterSuccess, 1, "Incorrect number of found message");
71
72         assert_equals(returnedValue, undefined, "Incorrect returned value");
73         t.done();
74     });
75
76     findErrorCB = t.step_func(function (error) {
77         assert_unreached("findMessage() error callback: name:" + error.name + ", msg:" + error.message);
78     });
79
80     onMessagesAdded = t.step_func(function (messages) {
81         assert_equals(messages.length, 1, "Incorrect number of messages.");
82         messageReceived = messages[0];
83         assert_equals(messageReceived.body.plainBody, datetime, "Incorrect plainBody found");
84         assert_not_equals(messageReceived.id, message.id, "Incorrect id found - id of sent message");
85
86         messageStorage.removeChangeListener(watchId);
87         watchId = null;
88
89         returnedValue = messageStorage.findMessages(fromFilter, findSuccessCB, findErrorCB);
90     });
91
92     callbackListener = {
93         messagesupdated: t.step_func(function (messages) {
94             assert_unreached("Should not enter messagesupdated: " + messages.length);
95         }),
96         messagesadded: onMessagesAdded,
97         messagesremoved: t.step_func(function (messages) {
98             assert_unreached("Should not enter messagesremoved: " + messages.length);
99         })
100     };
101
102     sendSuccess = t.step_func(function () {
103         //just ignore this
104     });
105
106     sendError = t.step_func(function (error) {
107         assert_unreached("sendMessage() error callback: name:" + error.name + ", msg:" + error.message);
108     });
109
110     getMessageServicesSuccessCB = t.step_func(function (services) {
111         assert_greater_than(services.length, 0, "Received empty services array");
112
113         datetime = tizen.time.getCurrentDateTime().toString();
114         message = new tizen.Message("messaging.mms", {
115             plainBody: datetime,
116             to: [ TEST_SMS_RECIPIENT ]
117         });
118
119         messageService = services[0];
120         messageStorage = messageService.messageStorage;
121         plainBodyFilter = new tizen.AttributeFilter("body.plainBody", "EXACTLY", datetime);
122         fromAndPlainBodyFilter = new tizen.CompositeFilter("INTERSECTION", [fromFilter, plainBodyFilter]);
123         watchId = messageStorage.addMessagesChangeListener(callbackListener, fromAndPlainBodyFilter);
124         messageService.sendMessage(message, sendSuccess, sendError);
125     });
126
127     getMessageServicesErrorCB = t.step_func(function (error) {
128         assert_unreached("getMessageServices() error callback: name:" + error.name + ", msg:" + error.message);
129     });
130
131     tizen.messaging.getMessageServices("messaging.mms", getMessageServicesSuccessCB, getMessageServicesErrorCB);
132 });
133
134 </script>
135 </body>
136 </html>