tizen 2.3.1 release
[framework/web/mobile/wrt-plugins-tizen.git] / src / Messaging / TestScripts / addFoldersChangeListener_01.js
1 //
2 // Tizen Web Device API
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 // Please send two emails with subject containing "Alaska"
19 //  1. subject "Alaska Good" and body containing "hack"
20 //  2. subject "Alaska Bad" and body NOT containing "hack"
21 //
22 // Only 1. should printed in JS console.
23
24 /**
25  * @file        addFoldersChangeListener_01.js
26  */
27
28 /**
29  *
30  *  Attribute      | Attribute filter| Attribute range filter
31  *                 | supported       | supported
32  * ----------------+-----------------+------------------------
33  *  id             | No              | No
34  *  parentId       | No              | No
35  *  serviceId      | Yes             | No
36  *  contentType    | No              | No
37  *  name           | No              | No
38  *  path           | No              | No
39  *  type           | No              | No
40  *  synchronizable | No              | No
41  */
42
43 var prefferedEmailService = "a.jacak.testmail";
44
45 function containCaseInsensitive(string, searchString) {
46     var lcString = string.toLowerCase();
47     var lcSearchString = searchString.toLowerCase();
48     return lcString.indexOf(lcSearchString)>=0;
49 }
50
51 var currentService = null;
52
53 function listFolders(prefix, folders) {
54     for (var i=0; i<folders.length; i++) {
55         var folder = folders[i];
56         console.log(prefix + " FOLDER[" + i + "] id: "
57                 + folder.id
58                 + " name:" + folder.name
59                 + " serviceid: " + folder.serviceId);
60     }
61 }
62
63 var folderChangeCB = {
64     foldersupdated: function(folders) {
65         console.log(folders.length + " folder(s) updated");
66         listFolders("foldersupdated",folders);
67     },
68     foldersadded: function(folders) {
69         console.log(folders.length + " folder(s) added");
70         listFolders("foldersadded",folders);
71     },
72     foldersremoved: function(folders) {
73         console.log(folders.length + " folder(s) removed");
74         listFolders("foldersremoved",folders);
75     }
76  };
77
78 function serviceSyncSuccessCB() {
79     console.log("Synced!");
80 }
81
82 function serviceSyncFailCB() {
83     console.log("Sync failed!");
84 }
85
86 function servicesListSuccessCB(services) {
87     console.log("servicesListSuccessCB: received:" + services.length + " services");
88
89     if(services.length > 0) {
90         var chosenServiceIndex = 0;
91         for(var i = 0; i < services.length; i++) {
92             if(containCaseInsensitive(services[i].name, prefferedEmailService)) {
93                 chosenServiceIndex = i;
94                 console.log("servicesListSuccessCB: " +
95                         "found service which name contains: " +
96                         prefferedEmailService);
97                 break;
98             }
99         }
100         currentService = services[chosenServiceIndex];
101         console.log("servicesListSuccessCB: testing service:" + currentService.name);
102
103         var filter = new tizen.AttributeFilter("serviceId", "EXACTLY", currentService.id);
104
105         currentService.messageStorage.addFoldersChangeListener(folderChangeCB, filter);
106         currentService.sync(serviceSyncSuccessCB, serviceSyncFailCB, 30);
107     } else {
108         console.log("servicesListSuccessCB: ERROR: could not find any email service!");
109     }
110 }
111
112 tizen.messaging.getMessageServices("messaging.email", servicesListSuccessCB);