tizen 2.3 release
[framework/web/wearable/wrt-security.git] / tests / smack_security / smackSecurityTest1 / js / WAC2.0 / TestTask.js
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 /**
17  * This file contains the implementation of test task class.
18  *
19  * @author      Shi Hezhang (hezhang.shi@samsung.com)
20  * @author      Pan Rui (r.pan@samsung.com)
21  * @version     0.1
22  */
23
24 var TestTask = {
25     TYPE_MISMATCH_ERR: 17,
26     INVALID_VALUES_ERR: 22,
27     task: null,
28     Itask:null,
29     old_task:null,
30     num_tasks:null,
31     found_tasks:null,
32     all_tasks:null,
33     expectedErrorCode: null,
34
35         createTestEvent: function (response)
36     {
37         TestTask.task.createTask({description:'Test Task 1',
38                 summary:'Task created to test Itask creation',
39                 dueDate: new Date(2009, 3, 30, 10, 0),
40                 status:0,
41                 priority:0});
42     },
43
44     onSuccessNonExpected: function(response)
45     {
46         TestEngine.test("non expected successCallback invoked", false);
47     },
48
49     onErrorExpected: function(response)
50     {
51         TestEngine.test("expected errorCallback invoked", true);
52         TestEngine.testPresence("error code", response.code);
53         TestEngine.test("Error number, was: " + response.code + ', expected: ' + TestTask.expectedErrorCode, response.code == TestTask.expectedErrorCode);
54     },
55
56     onSuccess: function(response)
57     {
58         TestEngine.test("Callback success", true);
59     },
60
61     onErrorCb: function(response)
62     {
63         TestEngine.logErr("errorCallback invoked [" + response.code + ']');
64     },
65
66     //Cal001
67     test_modulePresence: function()
68     {
69         TestEngine.test("Calendar manager presence", deviceapis.pim.task);
70     },
71
72     //Cal002
73     test_taskProperties: function()
74     {
75         TestEngine.test("test property HIGH_PRIORITY", deviceapis.pim.task.taskproperties.HIGH_PRIORITY === 0);
76         TestEngine.test("test property MEDIUM_PRIORITY", deviceapis.pim.task.taskproperties.MEDIUM_PRIORITY  === 1);
77         TestEngine.test("test property LOW_PRIORITY", deviceapis.pim.task.taskproperties.LOW_PRIORITY === 2);
78         TestEngine.test("test property STATUS_COMPLETED", deviceapis.pim.task.taskproperties.STATUS_COMPLETED === 0);
79         TestEngine.test("test property STATUS_NEEDS_ACTION", deviceapis.pim.task.taskproperties.STATUS_NEEDS_ACTION === 1);
80         TestEngine.test("test property STATUS_IN_PROCESS", deviceapis.pim.task.taskproperties.STATUS_IN_PROCESS === 2);
81         TestEngine.test("test property STATUS_CANCELLED", deviceapis.pim.task.taskproperties.STATUS_CANCELLED === 3);
82     },
83
84     onSuccessGetTask: function (response)
85     {
86         TestEngine.test("Found tasks", response.length > 0);
87         TestTask.task=response[0];
88     },
89
90     //Cal003
91     test_getTask: function()
92     {
93         var cbObj = TestEngine.registerCallback("getTaskLists",
94             TestTask.onSuccessGetTask,
95             TestTask.onErrorCb);
96         deviceapis.pim.task.getTaskLists(cbObj.successCallback, cbObj.errorCallback);
97     },
98
99     //Cal004
100     test_getTaskNoCallbacks: function()
101     {
102         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists");
103         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists", 1);
104         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists", "test1");
105     },
106
107     //Cal005
108     test_getTaskInvalidCallbacks: function()
109     {
110         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists", 1, TestTask.onErrorCb);
111         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists", TestTask.onErrorCb, 2);
112         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists", 1, 2);
113         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, deviceapis.pim.task, "getTaskLists", "test1", "test2");
114     },
115
116     //Cal006
117     test_taskMethodsPresence: function()
118     {
119         TestEngine.testPresence("task.createTask presence", TestTask.task.createTask);
120         TestEngine.testPresence("task.addTask presence", TestTask.task.addTask);
121         TestEngine.testPresence("task.updateTask presence", TestTask.task.updateTask);
122         TestEngine.testPresence("task.deleteTask presence", TestTask.task.deleteTask);
123         TestEngine.testPresence("task.findTasks presence", TestTask.task.findTasks);
124     },
125
126     //Cal007
127     test_getTaskName: function()
128     {
129         var cName = TestTask.task.name;
130         TestEngine.test("test getName", isString(cName) && cName.length > 0);
131         TestEngine.log("task name: " + cName);
132     },
133
134     //Cal008
135     test_getTaskType: function ()
136     {
137         var cType = TestTask.task.type;
138         TestEngine.test("test getType", cType === 0 || cType === 1);
139         TestEngine.log("task type: " + cType);
140
141     },
142
143     //Cal009
144     test_taskStaticProperties: function()
145     {
146         TestEngine.test("test property SIM_TASK", TestTask.task.SIM_TASK === 0);
147         TestEngine.test("test property DEVICE_TASK", TestTask.task.DEVICE_TASK === 1);
148     },
149
150     //Cal010
151     test_createEmptyTask: function()
152     {
153         TestTask.Itask = null;
154         TestTask.Itask = TestTask.task.createTask();
155         TestEngine.test("Itask created", TestTask.Itask != null);
156     },
157
158     //Cal011
159     test_taskAttributes: function()
160     {
161         var Itask = TestTask.task.createTask();
162         TestEngine.test("test attribute id - type: " + typeof Itask.id,
163             isString(Itask.id));
164         var oldId = Itask.id;
165         Itask.id = "test" + oldId;
166         TestEngine.test("attribute id is read only", Itask.id === oldId);
167         TestEngine.test("test attribute description - type: " + typeof Itask.description,
168             isString(Itask.description));
169         TestEngine.test("test attribute summary - type: " + typeof Itask.summary,
170             isString(Itask.summary));
171         //TestEngine.test("test attribute categories - type: " + typeof Itask.categories,
172          //   typeof Itask.categories == 'object' && Itask.categories.length == 0);
173         TestEngine.test("test attribute status - type: " + typeof Itask.status + ", value: " + Itask.status,
174             isNumber(Itask.status));
175          TestEngine.test("test attribute priority - type: " + typeof Itask.priority + ", value: " + Itask.priority,
176             isNumber(Itask.priority));
177     },
178
179     //Cal012
180     test_createTask: function()
181     {
182         var date = new Date(2009, 3, 30, 10, 0);
183         var newEvent = TestTask.task.createTask({
184                priority:1,
185                description:'Test Task 1',
186                summary:'Task created to test Itask creation',
187                dueDate: new Date(2009, 3, 30, 10, 0),
188                status:1
189           });
190                 TestEngine.test("correct duration", newEvent.priority === 1);
191                 TestEngine.test("correct duration", newEvent.status === 1);
192                 TestEngine.test("Itask with param created ", newEvent);
193                 TestEngine.test("correct description", newEvent.description === 'Test Task 1');
194                 TestEngine.test("correct summary", newEvent.summary === 'Task created to test Itask creation');
195                 TestEngine.test("correct dueDate", newEvent.dueDate.toString() === date.toString());
196     },
197
198     onSuccessAddTaskCountBefore: function(response)
199     {
200         TestEngine.log("onSuccessAddTaskCountBefore entered");
201         //save current number of tasks
202         TestTask.num_tasks = response.length;
203         //add new Itask
204         var objCb = TestEngine.registerCallback("onSuccessAddTaskCountBefore",
205             TestTask.onSuccessAddTaskAdd,
206             TestTask.onErrorCb);
207         TestTask.task.addTask(objCb.successCallback,
208             objCb.errorCallback,
209             TestTask.Itask);
210     },
211
212     onSuccessAddTaskAdd: function(response)
213     {
214         TestEngine.log("onSuccessAddTaskAdd entered");
215         //count the number of tasks
216         var objCb = TestEngine.registerCallback("onSuccessAddTaskAdd",
217             TestTask.onSuccessAddTaskCountAfter,
218             TestTask.onErrorCb);
219         TestTask.task.findTasks(objCb.successCallback,
220             objCb.errorCallback);
221     },
222
223     onSuccessAddTaskCountAfter: function(response)
224     {
225         TestEngine.log("onSuccessAddTaskCountAfter entered");
226         TestEngine.test("Number of tasks increased", TestTask.num_tasks+1 == response.length);
227         //validate Itask
228         var eventValidated = false;
229         TestEngine.log("added Itask's id " + TestTask.Itask.id);
230         for (var i in response) {
231             if (TestTask.Itask.id != response[i].id) {
232                 continue;
233             }
234             TestEngine.test("description the same", response[i].description === TestTask.Itask.description);
235             TestEngine.test("summary the same", response[i].summary === TestTask.Itask.summary);
236             TestEngine.test("dueDate the same", response[i].dueDate.toString() === TestTask.Itask.dueDate.toString());
237             TestEngine.test("status the same", response[i].status === TestTask.Itask.status);
238             TestEngine.test("priority the same", response[i].priority === TestTask.Itask.priority);
239             eventValidated = true;
240         }
241         TestEngine.test("Task has been validated", eventValidated)
242         TestTask.found_tasks=null;
243         TestTask.num_tasks=null;
244     },
245
246     //Cal013
247     test_addTask1: function()
248     {
249         TestTask.Itask = TestTask.task.createTask({
250                     description:'Task created to test Itask creation',
251                 summary:'Test Task 1',
252                 dueDate: new Date(2012, 11, 30, 10, 0),
253                 status: deviceapis.pim.task.taskproperties.STATUS_COMPLETED,
254                 priority: deviceapis.pim.task.taskproperties.HIGH_PRIORITY});
255         //save current number of tasks
256         var objCb = TestEngine.registerCallback("findTasks",
257             TestTask.onSuccessAddTaskCountBefore,
258             TestTask.onErrorCb);
259         TestTask.task.findTasks(objCb.successCallback, objCb.errorCallback);
260         //rest of test in callbacks...
261     },
262
263     //Cal014
264     test_addTask2: function()
265     {
266         TestTask.Itask = TestTask.task.createTask({
267                 summary:'Test Task 2',
268                 description:'Task created to test Itask creation',
269                 dueDate: new Date(2012, 11, 30, 10, 0),
270                 status: deviceapis.pim.task.taskproperties.STATUS_COMPLETED,
271                 priority: deviceapis.pim.task.taskproperties.HIGH_PRIORITY});
272         TestTask.Itask.dueDate = new Date(2012, 10, 30, 10, 0);
273         //save current number of tasks
274         var objCb = TestEngine.registerCallback("findTasks",
275             TestTask.onSuccessAddTaskCountBefore,
276             TestTask.onErrorCb);
277         TestTask.task.findTasks(objCb.successCallback, objCb.errorCallback);
278         //rest of test in callbacks...
279     },
280
281     //Cal015
282     test_addTask3: function()
283     {
284         TestTask.Itask = TestTask.task.createTask({
285                 summary:'Test Task 3',
286                 description:'Task created to test Itask creation',
287                 dueDate: new Date(2012, 11, 30, 10, 0),
288                 status: 2,
289                 priority: 0});
290         //save current number of tasks
291         var objCb = TestEngine.registerCallback("findTasks",
292             TestTask.onSuccessAddTaskCountBefore,
293             TestTask.onErrorCb);
294         TestTask.task.findTasks(objCb.successCallback, objCb.errorCallback);
295         //rest of test in callbacks...
296     },
297
298     //Cal016
299     test_addTask4: function()
300     {
301         TestTask.Itask = TestTask.task.createTask({
302                 summary:'Test Task 4',
303                 description:'Task created to test Itask creation',
304                 dueDate: new Date(2012, 11, 30, 10, 0),
305                 status: 0,
306                 priority: 0});
307
308         //save current number of tasks
309         var objCb = TestEngine.registerCallback("findTasks",
310             TestTask.onSuccessAddTaskCountBefore,
311             TestTask.onErrorCb);
312         TestTask.task.findTasks(objCb.successCallback, objCb.errorCallback);
313         //rest of test in callbacks...
314     },
315
316     //Cal017
317     test_addTask5: function()
318     {
319         TestTask.Itask = TestTask.task.createTask({
320                 summary:'Test Task 5',
321                 description:'Task created to test Itask creation',
322                 dueDate: new Date(2012, 11, 30, 10, 0),
323                 status: 0,
324                 priority: 0});
325         //save current number of tasks
326         var objCb = TestEngine.registerCallback("findTasks",
327             TestTask.onSuccessAddTaskCountBefore,
328             TestTask.onErrorCb);
329         TestTask.task.findTasks(objCb.successCallback, objCb.errorCallback);
330         //rest of test in callbacks...
331     },
332
333     //Cal018
334     test_addTaskNoParams: function()
335     {
336         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask");
337     },
338
339     //Cal019
340     test_addTaskNullCallbacksParams: function()
341     {
342         var Itask = TestTask.createTestEvent();
343         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", 1, TestTask.onErrorCb);
344         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", "test", TestTask.onErrorCb);
345         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", "test", TestTask.onErrorCb, Itask);
346         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, 1);
347         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, "test");
348         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, "test", Itask);
349         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", 1, 1, Itask);
350         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", "test", "test", Itask);
351     },
352
353     //Cal020
354     test_addTaskWrongEventParam: function()
355     {
356         TestTask.expectedErrorCode = TestTask.INVALID_VALUES_ERR;
357
358         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, 22);
359         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, "test");
360         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb);
361         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "addTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, new Date());
362         var objCb1 = TestEngine.registerCallback("Add Itask with null Itask param",
363             TestTask.onSuccessNonExpected,
364             TestTask.onErrorExpected);
365         TestTask.task.addTask(objCb1.successCallback,
366             objCb1.errorCallback,
367             null);
368
369         var objCb2 = TestEngine.registerCallback("Add Itask with undefined Itask param",
370             TestTask.onSuccessNonExpected,
371             TestTask.onErrorExpected);
372         TestTask.task.addTask(objCb2.successCallback,
373             objCb2.errorCallback,
374             undefined);
375
376     },
377
378     onSuccessFindAllTasks: function(response)
379     {
380         TestEngine.test("FindAllTasks", response.length > 0);
381         TestTask.all_tasks=response;
382     },
383
384     //Cal021
385     test_findAllTasks: function()
386     {
387         var objCb = TestEngine.registerCallback("findTasks",
388             TestTask.onSuccessFindAllTasks,
389             TestTask.onErrorCb);
390         TestTask.task.findTasks(objCb.successCallback,
391             objCb.errorCallback);
392     },
393
394     onSuccessFindTaskWithFilterNoResults: function(response)
395     {
396         TestEngine.test("FindTasks with filter not found results", response.length == 0);
397         TestTask.num_tasks=null;
398     },
399
400     test_FindTasksWithFilterNoResults: function(filter)
401     {
402         if(filter) {
403             for(var i in filter) {
404                 TestEngine.log("---Filter---: " + i + " : " + filter[i]);
405             }
406         }
407         var objCb = TestEngine.registerCallback("findTasks",
408             TestTask.onSuccessFindTaskWithFilterNoResults,
409             TestTask.onErrorCb);
410         TestTask.task.findTasks(objCb.successCallback,
411             objCb.errorCallback,
412             filter);
413     },
414
415     onSuccessFindTaskWithFilterSomeResults: function(response)
416     {
417         TestEngine.test("FindTasks with filter found results", response.length > 0);
418         TestTask.num_tasks=null;
419     },
420
421     test_FindTasksWithFilterSomeResults: function(filter)
422     {
423         if(filter) {
424             for(var i in filter) {
425                 TestEngine.log("---Filter---: " + i + " : " + filter[i]);
426             }
427         }
428         var objCb = TestEngine.registerCallback("findTasks",
429             TestTask.onSuccessFindTaskWithFilterSomeResults,
430             TestTask.onErrorCb);
431         TestTask.task.findTasks(objCb.successCallback,
432             objCb.errorCallback,
433             filter);
434     },
435
436     //Cal022
437     test_findTasksId: function()
438     {
439         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
440         TestTask.test_FindTasksWithFilterSomeResults(
441             {id: TestTask.all_tasks[0].id});
442     },
443
444     //Cal023
445     test_findTasksSummary: function()
446     {
447         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
448         TestTask.test_FindTasksWithFilterSomeResults(
449             {summary:'Test Task 1'});
450     },
451
452     //Cal024
453     test_findTasksDescription: function()
454     {
455         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
456         TestTask.test_FindTasksWithFilterSomeResults(
457             {description:'Task created to test Itask creation'});
458     },
459
460     //Cal028~~~~~~~~~~~~
461     test_findTasksStatus: function()
462     {
463             var status1 = deviceapis.pim.task.taskproperties.STATUS_COMPLETED;
464             var status2 = deviceapis.pim.task.taskproperties.STATUS_IN_PROCESS;
465             var statusArray =new Array();
466                 statusArray.push(status1);
467                 statusArray.push(status2);
468         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
469         TestTask.test_FindTasksWithFilterSomeResults(
470             {status: statusArray});
471     },
472
473     //Cal028~~~~~~~~~~~~
474     test_findTasksPriority: function()
475     {
476             var priority1 = deviceapis.pim.task.taskproperties.HIGH_PRIORITY;
477             var priority2 = deviceapis.pim.task.taskproperties.MEDIUM_PRIORITY;
478             var priorityArray =new Array();
479                 priorityArray.push(priority1);
480                 priorityArray.push(priority2);
481         TestEngine.test("Some priority to be found", TestTask.all_tasks.length > 0);
482         TestTask.test_FindTasksWithFilterSomeResults(
483             {priority: priorityArray});
484     },
485
486
487     //Cal029
488     test_findTasksFullDueDate: function()
489     {
490         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
491         TestTask.test_FindTasksWithFilterSomeResults(
492             {initialDueDate: new Date(2010, 11, 30, 1, 0),
493              endDueDate: new Date(2012, 11, 30, 23, 0)});
494     },
495
496     //Cal030
497     test_findTasksInitialDueDate: function()
498     {
499         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
500         TestTask.test_FindTasksWithFilterSomeResults(
501             {initialDueDate: new Date(2010, 11, 30, 1, 0),
502               endDueDate: null});
503     },
504
505     //Cal031
506     test_findTasksEndDueDate: function()
507     {
508         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
509         TestTask.test_FindTasksWithFilterSomeResults(
510             {initialDueDate: null,
511               endDueDate: new Date(2012, 11, 30, 23, 0)});
512     },
513
514     //Cal032
515     test_findTasksEmptyFilter: function()
516     {
517         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
518         TestTask.test_FindTasksWithFilterSomeResults({});
519     },
520
521     //Cal033
522     test_findTasksFullDueDateNoResults: function()
523     {
524         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
525         TestTask.test_FindTasksWithFilterNoResults(
526             {initialDueDate: new Date(1980, 11, 30, 1, 0),
527              endDueDate: new Date(1980, 11, 30, 23, 0)});
528     },
529
530     //Cal035
531     test_findTasksSummaryNoResults: function()
532     {
533         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
534         TestTask.test_FindTasksWithFilterNoResults(
535             {summary:'non existing summary'});
536     },
537
538     //Cal036
539     test_findTasksDescriptionNoResults: function()
540     {
541         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
542         TestTask.test_FindTasksWithFilterNoResults(
543             {description:'non existing description'});
544     },
545
546     //Cal037
547     test_findTasksIdNoResults: function()
548     {
549         TestEngine.test("Some tasks to be found", TestTask.all_tasks.length > 0);
550         TestTask.test_FindTasksWithFilterNoResults(
551             {id:"2000000"});
552     },
553
554     //Cal039
555     test_findTasksNoParams: function()
556     {
557         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks");
558     },
559
560     //Cal040
561     test_findTasksNullCallbacksParams: function()
562     {
563         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks", TestTask.onSuccessNonExpected, 1);
564         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks", TestTask.onSuccessNonExpected, "test");
565         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks", 1, TestTask.onErrorCb);
566         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks", "test", TestTask.onErrorCb);
567         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks", 1, 1);
568         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "findTasks", "test", "test");
569     },
570
571     //Cal041
572     test_findTasksWrongFilterParam: function()
573     {
574         TestTask.expectedErrorCode = TestTask.TYPE_MISMATCH_ERR;
575         var objCb1 = TestEngine.registerCallback("Find tasks with null filter param",
576             TestTask.onSuccess,
577             TestTask.onErrorCb);
578         TestTask.task.findTasks(objCb1.successCallback,
579             objCb1.errorCallback,
580             null);
581
582         var objCb2 = TestEngine.registerCallback("Find tasks with undefined filter param",
583             TestTask.onSuccess,
584             TestTask.onErrorCb);
585         TestTask.task.findTasks(objCb2.successCallback,
586             objCb2.errorCallback,
587             undefined);
588
589         var objCb3 = TestEngine.registerCallback("Find tasks with null filter param",
590             TestTask.onSuccess,
591             TestTask.onErrorCb);
592         TestTask.task.findTasks(objCb3.successCallback,
593             objCb3.errorCallback,
594             22);
595
596         var objCb4 = TestEngine.registerCallback("Find tasks with undefined filter param",
597             TestTask.onSuccess,
598             TestTask.onErrorCb);
599         TestTask.task.findTasks(objCb4.successCallback,
600             objCb4.errorCallback,
601             "test");
602     },
603
604     //Cal042
605     test_updateTask: function()
606     {
607         if(TestTask.all_tasks.length > 0)
608         {
609             var all=TestTask.all_tasks;
610             TestTask.old_task=all[0];
611
612             //all_tasks.length is added to be sure that it is not
613             //result of previous update
614
615             all[0].description = "Updated"+all.length;
616             all[0].summary = "Updated";
617             TestTask.Itask = all[0];
618
619             var objCb = TestEngine.registerCallback("updateTask",
620                 TestTask.onSuccessUpdateTask1,
621                 TestTask.onErrorCb);
622             TestTask.task.updateTask(objCb.successCallback,
623                 objCb.errorCallback,
624                 TestTask.Itask);
625         }
626     },
627
628     onSuccessUpdateTask1: function(response)
629     {
630         TestEngine.log("onSuccessUpdateTask1 entered");
631         //find this Itask
632         var objCb = TestEngine.registerCallback("findTasks",
633             TestTask.onSuccessUpdateTask2,
634             TestTask.onErrorCb);
635
636         TestTask.task.findTasks(objCb.successCallback,
637             objCb.errorCallback,
638             {description: TestTask.Itask.description,
639                 summary: TestTask.Itask.summary});
640     },
641
642     onSuccessUpdateTask2: function(response)
643     {
644         TestEngine.log("onSuccessUpdateTask2 entered");
645         TestTask.found_tasks=response;
646         TestTask.num_tasks = response.length;
647         if(TestTask.found_tasks.length>0)
648         {
649             var f_flag=0;
650             for(var i in TestTask.found_tasks)
651             {
652                 if( TestTask.found_tasks[i].description == TestTask.Itask.description &&
653                     TestTask.found_tasks[i].summary == TestTask.Itask.summary)
654                 {
655                     TestEngine.test("Update Itask", true);
656                     f_flag=1;
657                 }
658             }
659
660             if(f_flag==0)
661             {
662                 TestEngine.test("Update Itask", false);
663             }
664         }
665         else
666         {
667             TestEngine.test("Updated tasks found", false);
668         }
669
670         var objCb = TestEngine.registerCallback("updateTask",
671             TestTask.onSuccessUpdateTask3,
672             TestTask.onErrorCb);
673         TestTask.task.updateTask(objCb.successCallback,
674             objCb.errorCallback,
675             TestTask.old_task);
676
677     },
678
679     onSuccessUpdateTask3: function(response)
680     {
681         TestEngine.log("onSuccessUpdateTask3 entered");
682         TestEngine.test("Task restored from update", true);
683     },
684
685     //Cal043
686     test_updateTaskNoParams: function()
687     {
688         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask");
689     },
690
691     //Cal044
692     test_updateTaskNullCallbacksParams: function()
693     {
694         var Itask = TestTask.createTestEvent();
695         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", 1, TestTask.onErrorCb);
696         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", "test", TestTask.onErrorCb);
697         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", "test", TestTask.onErrorCb, Itask);
698         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, 1);
699         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, "test");
700         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, "test", Itask);
701         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", 1, 1, Itask);
702         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", "test", "test", Itask);
703     },
704
705     //Cal045
706     test_updateTaskWrongTaskParam: function()
707     {
708         TestTask.expectedErrorCode = TestTask.INVALID_VALUES_ERR;
709
710         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, 22);
711         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, "test");
712         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb);
713         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "updateTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, new Date());
714
715         var objCb1 = TestEngine.registerCallback("Update Itask with null Itask param",
716             TestTask.onSuccessNonExpected,
717             TestTask.onErrorExpected);
718         TestTask.task.updateTask(objCb1.successCallback,
719             objCb1.errorCallback,
720             null);
721
722         var objCb2 = TestEngine.registerCallback("Update Itask with undefined Itask param",
723             TestTask.onSuccessNonExpected,
724             TestTask.onErrorExpected);
725         TestTask.task.updateTask(objCb2.successCallback,
726             objCb2.errorCallback,
727             undefined);
728     },
729     //Cal046
730     test_deleteTask: function()
731     {
732         //find all tasks
733         var objCb = TestEngine.registerCallback("findTasks",
734             TestTask.onSuccessDeleteTask1,
735             TestTask.onErrorCb);
736         TestTask.task.findTasks(objCb.successCallback,
737             objCb.errorCallback);
738     },
739
740     onSuccessDeleteTask1: function(response)
741     {
742         TestEngine.log("onSuccessDeleteTask1 entered");
743         TestEngine.test("FindAllTasks", response.length > 0);
744         TestTask.all_tasks=response;
745
746         if(TestTask.all_tasks.length > 0)
747         {
748             TestTask.old_task=TestTask.all_tasks.length;
749             TestTask.Itask = TestTask.all_tasks[0];
750
751             var objCb = TestEngine.registerCallback("deleteTask",
752                 TestTask.onSuccessDeleteTask2,
753                 TestTask.onErrorCb);
754             TestTask.task.deleteTask(objCb.successCallback,
755                 objCb.errorCallback,
756                 TestTask.Itask.id);
757         }
758         else
759         {
760             TestEngine.test("Events for delete found", false);
761         }
762     },
763
764     onSuccessDeleteTask2: function(response)
765     {
766         TestEngine.log("onSuccessDeleteTask2 entered");
767         //check number of tasks now
768         var objCb = TestEngine.registerCallback("findTasks",
769             TestTask.onSuccessDeleteTask3,
770             TestTask.onErrorCb);
771         TestTask.task.findTasks(objCb.successCallback,
772             objCb.errorCallback);
773     },
774
775     onSuccessDeleteTask3: function(response)
776     {
777         TestEngine.log("onSuccessDeleteTask3 entered");
778         TestTask.all_tasks=response;
779         var num_after=response.length;
780         TestEngine.test("deleteTask", num_after + 1 == TestTask.old_task );
781     },
782
783
784     //Cal047
785     test_deleteTaskNoParams: function()
786     {
787         TestEngine.catchErrorType("code", 17, TestTask.task, "deleteTask");
788     },
789
790     //Cal048
791     test_deleteTaskNullCallbacksParams: function()
792     {
793         var Itask = TestTask.createTestEvent();
794         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", "test", TestTask.onErrorCb);
795         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", 1, TestTask.onErrorCb);
796         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", "test", TestTask.onErrorCb, 1);
797         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", TestTask.onSuccessNonExpected, "test");
798         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", TestTask.onSuccessNonExpected, "test");
799         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", TestTask.onSuccessNonExpected, "test", 1);
800     },
801
802     //Cal049
803     test_deleteTaskWrongTaskParam: function()
804     {
805         TestTask.expectedErrorCode = TestTask.INVALID_VALUES_ERR;
806
807         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb);
808         TestEngine.catchErrorType("code", TestTask.TYPE_MISMATCH_ERR, TestTask.task, "deleteTask", TestTask.onSuccessNonExpected, TestTask.onErrorCb, new Date());
809
810         var objCb1 = TestEngine.registerCallback("Delete Itask with null Itask param",
811             TestTask.onSuccessNonExpected,
812             TestTask.onErrorExpected);
813         TestTask.task.deleteTask(objCb1.successCallback,
814             objCb1.errorCallback,
815             null);
816
817         var objCb2 = TestEngine.registerCallback("Delete Itask with undefined Itask param",
818             TestTask.onSuccessNonExpected,
819             TestTask.onErrorExpected);
820         TestTask.task.deleteTask(objCb2.successCallback,
821             objCb2.errorCallback,
822             undefined);
823     }
824 };
825
826 TestEngine.setTestSuiteName("[WAC2.0][Task]");
827
828 //Cal001
829 //TestEngine.addTest(true,TestTask.test_modulePresence, "[WAC2.0][Task] Test Task");
830 //
831 ////Cal002
832 //TestEngine.addTest(true,TestTask.test_taskProperties, "[WAC2.0][Task] Test Itask properties");
833 ////Cal003
834 TestEngine.addTest(true,TestTask.test_getTask, "[WAC2.0][Task] Get task");
835 //
836 ////Cal004
837 //TestEngine.addTest(true,TestTask.test_getTaskNoCallbacks, "[WAC2.0][Task] Get task with no callbacks");
838 ////Cal005
839 //TestEngine.addTest(true,TestTask.test_getTaskInvalidCallbacks, "[WAC2.0][Task] Get task with invalid callbacks");
840 ////Cal006
841 //TestEngine.addTest(true,TestTask.test_taskMethodsPresence, "[WAC2.0][Task] Task methods presence");
842 ////Cal007
843 //TestEngine.addTest(true,TestTask.test_getTaskName, "[WAC2.0][Task] Get task name");
844 ////Cal008
845 //TestEngine.addTest(true,TestTask.test_getTaskType, "[WAC2.0][Task] Get task type");
846 ////Cal009
847 //TestEngine.addTest(true,TestTask.test_taskStaticProperties, "[WAC2.0][Task] Task static properties");
848 //
849 ////Cal010
850 //TestEngine.addTest(true,TestTask.test_createEmptyTask, "[WAC2.0][Task] Create empty Itask");
851 ////Cal011
852 //TestEngine.addTest(true,TestTask.test_taskAttributes, "[WAC2.0][Task] Itask attributes");
853 ////Cal012
854 //TestEngine.addTest(true,TestTask.test_createTask, "[WAC2.0][Task] Create Itask");
855 //
856 ////Cal013
857 //TestEngine.addTest(true,TestTask.test_addTask1, "[WAC2.0][Task] Add event1");
858 ////Cal014
859 //TestEngine.addTest(true,TestTask.test_addTask2, "[WAC2.0][Task] Add event2");
860 ////Cal015
861 //TestEngine.addTest(true,TestTask.test_addTask3, "[WAC2.0][Task] Add event3");
862 ////Cal016
863 //TestEngine.addTest(true,TestTask.test_addTask4, "[WAC2.0][Task] Add event4");
864 ////Cal017
865 //TestEngine.addTest(true,TestTask.test_addTask5, "[WAC2.0][Task] Add event5");
866 //
867 ////Cal018
868 //TestEngine.addTest(true,TestTask.test_addTaskNoParams, "[WAC2.0][Task] Add Itask with no params");
869 ////Cal019
870 //TestEngine.addTest(true,TestTask.test_addTaskNullCallbacksParams, "[WAC2.0][Task] Add Itask with wrong callbacks");
871 ////Cal020
872 //TestEngine.addTest(true,TestTask.test_addTaskWrongEventParam, "[WAC2.0][Task] Add Itask with wrong Itask param");
873 //
874 ////Cal021
875 //TestEngine.addTest(true,TestTask.test_findAllTasks, "[WAC2.0][Task] Find all tasks");
876 ////Cal022
877 //TestEngine.addTest(true,TestTask.test_findTasksId, "[WAC2.0][Task] Find tasks, filter: id");
878 ////Cal023
879 //TestEngine.addTest(true,TestTask.test_findTasksSummary, "[WAC2.0][Task] Find tasks, filter: summary");
880 ////Cal024
881 //TestEngine.addTest(true,TestTask.test_findTasksDescription, "[WAC2.0][Task] Find tasks, filter: description");
882 ////Cal025
883 //TestEngine.addTest(true,TestTask.test_findTasksStatus, "[WAC2.0][Task] Find tasks, filter: status");
884 //
885 //TestEngine.addTest(true,TestTask.test_findTasksPriority, "[WAC2.0][Task] Find tasks, filter: priority");
886 ////Cal030
887 //TestEngine.addTest(true,TestTask.test_findTasksInitialDueDate, "[WAC2.0][Task] Find tasks, filter: initialDueDate");
888 ////Cal031
889 //TestEngine.addTest(true,TestTask.test_findTasksEndDueDate, "[WAC2.0][Task] Find tasks, filter: endDueDate");
890 ////Cal032
891 //TestEngine.addTest(true,TestTask.test_findTasksEmptyFilter, "[WAC2.0][Task] Find tasks, filter: empty filter");
892 //
893 ////Cal035
894 //TestEngine.addTest(true,TestTask.test_findTasksSummaryNoResults, "[WAC2.0][Task] Find tasks, no results, filter: summary");
895 ////Cal036
896 //TestEngine.addTest(true,TestTask.test_findTasksDescriptionNoResults, "[WAC2.0][Task] Find tasks, no results, filter: description");
897 ////Cal039
898 //TestEngine.addTest(true,TestTask.test_findTasksNoParams, "[WAC2.0][Task] Find tasks with no params");
899 ////Cal040
900 //TestEngine.addTest(true,TestTask.test_findTasksNullCallbacksParams, "[WAC2.0][Task] Find tasks with wrong callbacks");
901 ////Cal041
902 //TestEngine.addTest(true,TestTask.test_findTasksWrongFilterParam, "[WAC2.0][Task] Find tasks with wrong filter param");
903 //
904 //TestEngine.addTest(true,TestTask.test_updateTask, "[WAC2.0][Task] Update Itask");
905 ////Cal043
906 //TestEngine.addTest(true,TestTask.test_updateTaskNoParams, "[WAC2.0][Task] Update Itask with no params");
907 ////Cal044
908 //TestEngine.addTest(true,TestTask.test_updateTaskNullCallbacksParams, "[WAC2.0][Task] Update Itask with wrong callbacks");
909 ////Cal045
910 //TestEngine.addTest(true,TestTask.test_updateTaskWrongTaskParam, "[WAC2.0][Task] Update Itask with wrong Itask param");
911 //
912 ////Cal046
913 //TestEngine.addTest(true,TestTask.test_deleteTask, "[WAC2.0][Task] Delete Itask");
914 ////Cal047
915 //TestEngine.addTest(true,TestTask.test_deleteTaskNoParams, "[WAC2.0][Task] Delete Itask with no params");
916 ////Cal048
917 //TestEngine.addTest(true,TestTask.test_deleteTaskNullCallbacksParams, "[WAC2.0][Task] Delete Itask with wrong callbacks");
918 ////Cal049
919 //TestEngine.addTest(true,TestTask.test_deleteTaskWrongTaskParam, "[WAC2.0][Task] Delete Itask with wrong Itask param");