2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 function test_Contact_Presence() {
17 TestEngine.testPresence("Checking contact presence", deviceapis.pim.contact);
20 function test_Create_Contact_001() {
21 function AddressBooksCB001(addressbooks)
23 TestEngine.test("getAddressBooks success - fail expected", false);
24 // if(addressbooks.length > 0)
26 // var addressbook = addressbooks[0];
28 // var contact = addressbook.createContact(
34 // TestEngine.test("check firstName", contact.firstName =="Brad");
35 // TestEngine.test("check lastName", contact.lastName =="Pitt");
39 // TestEngine.logErr("createContact,error.code="+error.code);
44 function failCallback() {
45 TestEngine.test("getAddressBooks failed - as expected", true);
47 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB001,failCallback);
48 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
51 function test_Create_Contact_002() {
52 function AddressBooksCB002(addressbooks)
54 if(addressbooks.length > 0)
56 var addressbook = addressbooks[0];
58 var contact = addressbook.createContact(
60 addresses:[{types:['WORK'],country:"China",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Lushanlu, 1", postalCode:"210012", additionalInformation:"addinfo1"},
61 {types:['HOME'],country:"China",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Sanshanjie, 99", postalCode:"210009", additionalInformation:"addinfo2"}]
63 TestEngine.test("check addresses length", contact.addresses.length == 2);
67 TestEngine.logErr("createContact, error="+error);
72 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB002,getAddressBooksErrorCallback);
73 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
76 function test_Create_Contact_003() {
77 function AddressBooksCB003(addressbooks)
79 if(addressbooks.length > 0)
81 var addressbook = addressbooks[0];
83 var contact = addressbook.createContact(
85 phoneNumbers:[{number:'111111',types:['WORK']},
86 {number:'222222',types:['HOME']},
87 {number:'333333',types:['CAR']},
88 {number:'444444',types:['CELL']},
89 {number:'555555',types:['FAX']},
90 {number:'666666',types:['PAGER']},
91 {number:'7777777',types:['PREF']}]
93 TestEngine.test("check phoneNumbers length", contact.phoneNumbers.length == 7);
97 TestEngine.logErr("createContact,error.code="+error.code);
101 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB003,getAddressBooksErrorCallback);
102 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
105 function test_Create_Contact_004() {
106 function AddressBooksCB004(addressbooks)
108 if(addressbooks.length > 0)
110 var addressbook = addressbooks[0];
112 var contact = addressbook.createContact(
114 emails:[{email:"work@domain.com",types:['WORK']},
115 {email:"home@domain.com",types:['HOME']},
116 {email:"pref@domain.com",types:['PREF']}]
118 TestEngine.test("check emails length", contact.emails.length == 3);
122 TestEngine.logErr("createContact,error.code="+error.code);
127 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB004,getAddressBooksErrorCallback);
128 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
131 function test_Create_Contact_005() {
132 function AddressBooksCB005(addressbooks)
134 if(addressbooks.length > 0)
136 var addressbook = addressbooks[0];
138 var contact = addressbook.createContact(
140 nicknames:['nickname1','nickname2','nickname3','nickname4']
142 TestEngine.test("check nicknames length", contact.nicknames.length == 4);
146 TestEngine.logErr("createContact,error.code="+error.code);
151 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB005,getAddressBooksErrorCallback);
152 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
155 function test_Create_Contact_006() {
156 function AddressBooksCB006(addressbooks)
158 if(addressbooks.length > 0)
160 var addressbook = addressbooks[0];
162 var contact = addressbook.createContact(
164 photoURI:'/opt/apps/widget/tests/attachments/attach1.jpg'
166 TestEngine.test("check photoURI", contact.photoURI == "/opt/apps/widget/tests/attachments/attach1.jpg");
170 TestEngine.logErr("createContact,error.code="+error.code);
175 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB006,getAddressBooksErrorCallback);
176 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
179 function test_Create_Contact_007() {
180 function AddressBooksCB007(addressbooks)
182 if(addressbooks.length > 0)
184 var addressbook = addressbooks[0];
186 var contact = addressbook.createContact(
190 addresses:[{types:['WORK'],country:"China",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Lushanlu, 1", postalCode:"210012", additionalInformation:"addinfo1"},
191 {types:['HOME'],country:"China",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Sanshanjie, 99", postalCode:"210009", additionalInformation:"addinfo2"}],
192 phoneNumbers:[{number:'111111',types:['WORK']},
193 {number:'222222',types:['HOME']},
194 {number:'333333',types:['CAR']},
195 {number:'444444',types:['CELL']},
196 {number:'555555',types:['FAX']},
197 {number:'666666',types:['PAGER']},
198 {number:'7777777',types:['PREF']}],
199 emails:[{email:"work@domain.com",types:['WORK']},
200 {email:"home@domain.com",types:['HOME']},
201 {email:"pref@domain.com",types:['PREF']}],
202 nicknames:['nickname1','nickname2','nickname3','nickname4']
204 TestEngine.test("check firstName", contact.firstName =="Brad");
205 TestEngine.test("check lastName", contact.lastName =="Pitt");
206 TestEngine.test("check addresses length", contact.addresses.length == 2);
207 TestEngine.test("check phoneNumbers length", contact.phoneNumbers.length == 7);
208 TestEngine.test("check emails length", contact.emails.length == 3);
209 TestEngine.test("check nicknames length", contact.nicknames.length == 4);
213 TestEngine.logErr("createContact,error.code="+error.code);
218 var callback=TestEngine.registerCallback("getAddressBooks",AddressBooksCB007,getAddressBooksErrorCallback);
219 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
222 function test_Get_AddressBooks_001() {
223 function getAddressBooksCB(addressbooks)
225 TestEngine.logOK("getAddressBooksCB");
226 TestEngine.log("addressbooks length = " + addressbooks.length);
228 for(var i=0;i<addressbooks.length;i++)
230 TestEngine.log(addressbooks[i].name);
231 TestEngine.log(addressbooks[i].type);
235 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
236 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
239 function test_Add_Contact_006() {
240 function AddressBooksCB013(addressbooks)
243 TestEngine.log("AddressBooksCB");
245 if(addressbooks.length > 0)
247 var addressbook = addressbooks[0];
248 TestEngine.log("The addressbook type is " + addressbook.type + " and name " + addressbook.name);
251 var contact = addressbook.createContact(
255 addresses:[{types:['PREF'],country:"Finland",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Sanshanjie, 99", postalCode:"210009", additionalInformation:"Other"},
256 {types:['HOME'],country:"China",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Sanshanjie, 99", postalCode:"210009", additionalInformation:"Home"},
257 {types:['WORK'],country:"China",region:"Jiangsu",city:"Nanjing",county:"None",streetAddress:"Lushanlu, 1", postalCode:"210012", additionalInformation:"Work"}],
258 phoneNumbers:[{number:'111111',types:['WORK']},
259 {number:'222222',types:['HOME']},
260 {number:'333333',types:['CAR']},
261 {number:'444444',types:['CELL']},
262 {number:'555555',types:['FAX']},
263 {number:'666666',types:['PAGER']},
264 {number:'7777777',types:['PREF']}],
265 emails:[{email:"work@domain.com",types:['WORK']},
266 {email:"home@domain.com",types:['HOME']},
267 {email:"pref@domain.com",types:['PREF']}],
268 nicknames:['nickname1','nickname2','nickname3','nickname4'],
269 photoURI:'/opt/apps/widget/tests/attachments/attach1.jpg'
271 var callback=TestEngine.registerCallback("addContact",contactAddedCB,addContactErrorCallback);
272 addressbook.addContact(callback.successCallback, callback.errorCallback, contact);
276 TestEngine.logErr("createContact,error.code="+error.code);
280 deviceapis.pim.contact.getAddressBooks(AddressBooksCB013, getAddressBooksErrorCallback);
284 function test_findContacts_001() {
285 function getAddressBooksCB(addressbooks)
287 TestEngine.log("getAddressBooksCB");
288 //var addressbook = addressbooks[0];
291 var callback2=TestEngine.registerCallback("findContacts",contactSearchSuccessCallback,findContactErrorCallback);
292 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback);
296 TestEngine.logErr("createContact,error.code="+error.code);
300 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
301 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
304 function test_findContacts_002() {
305 function getAddressBooksCB(addressbooks)
307 TestEngine.log("getAddressBooksCB");
308 //var addressbook = addressbooks[0];
311 var callback2=TestEngine.registerCallback("findContacts",contactSearchSuccessCallback,findContactErrorCallback);
312 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback,{firstName:'%ra%'});
316 TestEngine.logErr("createContact,error.code="+error.code);
320 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
321 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
324 function test_findContacts_003() {
325 function getAddressBooksCB(addressbooks)
327 TestEngine.log("getAddressBooksCB");
328 //var addressbook = addressbooks[0];
331 var callback2=TestEngine.registerCallback("findContacts",contactSearchSuccessCallback,findContactErrorCallback);
332 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback,{lastName:'%itt%'});
336 TestEngine.logErr("createContact,error.code="+error.code);
340 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
341 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
344 function test_findContacts_004() {
345 function getAddressBooksCB(addressbooks)
347 TestEngine.log("getAddressBooksCB");
348 //var addressbook = addressbooks[0];
351 var callback2=TestEngine.registerCallback("findContacts",contactSearchSuccessCallback,findContactErrorCallback);
352 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback,{phoneNumbers:[{number:'111111',types:['WORK']}]});
356 TestEngine.logErr("createContact,error.code="+error.code);
360 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
361 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
364 function test_findContacts_005() {
365 function getAddressBooksCB(addressbooks)
367 TestEngine.log("getAddressBooksCB");
368 //var addressbook = addressbooks[0];
371 var callback2=TestEngine.registerCallback("findContacts",contactSearchSuccessCallback,findContactErrorCallback);
372 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback,{addresses:[{types:['WORK'],country:"China"}]});
376 TestEngine.logErr("createContact,error.code="+error.code);
380 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
381 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
384 function test_findContacts_006() {
385 function getAddressBooksCB(addressbooks)
387 TestEngine.log("getAddressBooksCB");
388 //var addressbook = addressbooks[0];
391 var callback2=TestEngine.registerCallback("findContacts",contactSearchSuccessCallback,findContactErrorCallback);
392 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback,{emails:[{email:"work@domain.com%",types:['WORK']}]});
396 TestEngine.logErr("createContact,error.code="+error.code);
399 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
400 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
403 function test_deleteContacts_001() {
404 function getAddressBooksCB(addressbooks)
406 TestEngine.log("getAddressBooksCB");
407 //var addressbook = addressbooks[0];
409 function findContactSuccessCallback(contacts)
411 TestEngine.log("findContactSuccessCallback");
412 TestEngine.test("Contact list not empty", contacts.length > 0);
413 function contactDeleteSuccessCallback()
415 TestEngine.logOK("contactDeleteSuccessCallback Callback");
418 var callback3=TestEngine.registerCallback("deleteContacts",contactDeleteSuccessCallback,deleteContactErrorCallback);
419 addressbooks[0].deleteContact(callback3.successCallback, callback3.errorCallback, contacts[0].id);
423 var callback2=TestEngine.registerCallback("findContacts",findContactSuccessCallback,findContactErrorCallback);
424 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback);
428 TestEngine.logErr("createContact,error.code="+error.code);
432 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
433 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
436 function test_updateContacts_001() {
437 function getAddressBooksCB(addressbooks)
439 TestEngine.log("getAddressBooksCB");
440 //var addressbook = addressbooks[0];
442 function findContactSuccessCallback(contacts)
444 TestEngine.log("findContactSuccessCallback");
445 function contactUpdateSuccessCallback()
447 TestEngine.logOK("contactUpdateSuccessCallback Callback");
449 TestEngine.test("Contact list not empty", contacts.length > 0);
450 TestEngine.log("contacts[0] id ="+contacts[0].id );
451 contacts[0].firstName = "Asuka3";
452 contacts[0].lastName = "Langley3";
453 contacts[0].photoURI= "/opt/apps/widget/tests/attachments/attach1.jpg";
454 var phoneNumber ={number:'999999',types:['WORK']};
455 var address = {types:['HOME'],country:"Test",region:"Test",city:"Test",county:"Test",streetAddress:"Test", postalCode:"Test", additionalInformation:"Test"};
456 var email={email:"test@domain.com",types:['WORK']};
458 TestEngine.log("photoURI =" + contacts[0].photoURI);
459 if(contacts[0].phoneNumbers.length>0)
461 contacts[0].phoneNumbers[0]=phoneNumber;
464 if(contacts[0].addresses.length>0)
466 contacts[0].addresses[0]=address;
469 if(contacts[0].emails.length>0)
471 contacts[0].emails[0]=email;
474 var callback3=TestEngine.registerCallback("updateContact",contactUpdateSuccessCallback,updateContactErrorCallback);
475 addressbooks[0].updateContact(callback3.successCallback, callback3.errorCallback, contacts[0]);
479 var callback2=TestEngine.registerCallback("findContacts",findContactSuccessCallback,findContactErrorCallback);
480 addressbooks[0].findContacts(callback2.successCallback, callback2.errorCallback);
484 TestEngine.logErr("createContact,error.code="+error.code);
488 var callback=TestEngine.registerCallback("getAddressBooks",getAddressBooksCB,getAddressBooksErrorCallback);
489 deviceapis.pim.contact.getAddressBooks(callback.successCallback, callback.errorCallback);
492 function contactAddedCB(contact)
494 TestEngine.log("typeof(contact) =" + typeof(contact));
495 TestEngine.testPresence("Checking contact presence", contact);
496 TestEngine.test("check firstName", contact.firstName =="Brad");
497 TestEngine.test("check lastName", contact.lastName =="Pitt");
498 TestEngine.test("check addresses length", contact.addresses.length == 3);
499 TestEngine.test("check phoneNumbers length", contact.phoneNumbers.length == 7);
500 TestEngine.test("check emails length", contact.emails.length == 3);
501 //TestEngine.test("check nicknames length", contact.nicknames.length == 4);
502 TestEngine.test("check photoURI", contact.photoURI == "/opt/apps/widget/tests/attachments/attach1.jpg");
503 TestEngine.logOK("contactAddedCB Callback");
506 function contactSearchSuccessCallback(contacts)
508 TestEngine.log(""+contacts.length + " results found.");
509 for(var i=0;i<contacts.length;i++)
511 TestEngine.log("contacts["+i+"] id=" + contacts[i].id);
512 TestEngine.log("contacts["+i+"] firstName=" + contacts[i].firstName);
513 TestEngine.log("contacts["+i+"] lastName=" + contacts[i].lastName);
514 TestEngine.log("contacts["+i+"] addresses length=" + contacts[i].addresses.length);
515 TestEngine.log("contacts["+i+"] phoneNumbers length=" + contacts[i].phoneNumbers.length);
516 TestEngine.log("contacts["+i+"] emails length =" + contacts[i].emails.length );
517 TestEngine.log("contacts["+i+"] nicknames length=" + contacts[i].nicknames.length);
519 TestEngine.logOK("contactAddedCB Callback");
523 function getAddressBooksErrorCallback(response)
525 TestEngine.logErr("getAddressBooks Error Callback");
528 function addContactErrorCallback(response)
530 TestEngine.logErr("contactAddedCB Callback");
533 function findContactErrorCallback(response)
535 TestEngine.logErr("find contact error Callback");
538 function deleteContactErrorCallback(response)
540 TestEngine.logErr("Delete contact error Callback");
543 function updateContactErrorCallback(response)
545 TestEngine.logErr("Update contact error Callback");
548 TestEngine.setTestSuiteName('[WAC2.0][Contact]',60*1000);
549 //TestEngine.addTest(true,test_Contact_Presence,"[WAC2.0][Contact]test_Contact");
550 TestEngine.addTest(true,test_Create_Contact_001,"[WAC2.0][Contact]test_Create_Contact_001");
551 //TestEngine.addTest(true,test_Create_Contact_002,"[WAC2.0][Contact]test_Create_Contact_002");
552 //TestEngine.addTest(true,test_Create_Contact_003,"[WAC2.0][Contact]test_Create_Contact_003");
553 //TestEngine.addTest(true,test_Create_Contact_004,"[WAC2.0][Contact]test_Create_Contact_004");
554 //TestEngine.addTest(true,test_Create_Contact_005,"[WAC2.0][Contact]test_Create_Contact_005");
555 //TestEngine.addTest(true,test_Create_Contact_006,"[WAC2.0][Contact]test_Create_Contact_006");
556 //TestEngine.addTest(true,test_Create_Contact_007,"[WAC2.0][Contact]test_Create_Contact_007");
558 //TestEngine.addTest(true,test_Add_Contact_006,"[WAC2.0][Contact]test_Add_Contact_006");
559 //TestEngine.addTest(true,test_Get_AddressBooks_001,"[WAC2.0][Contact]test_Get_AddressBooks_001");
560 //TestEngine.addTest(true,test_findContacts_001,"[WAC2.0][Contact]test_Find_findContacts_001");
561 //TestEngine.addTest(true,test_findContacts_002,"[WAC2.0][Contact]test_Find_findContacts_002");
562 //TestEngine.addTest(true,test_findContacts_003,"[WAC2.0][Contact]test_Find_findContacts_003");
563 //TestEngine.addTest(true,test_findContacts_004,"[WAC2.0][Contact]test_Find_findContacts_004");
564 //TestEngine.addTest(true,test_findContacts_005,"[WAC2.0][Contact]test_Find_findContacts_005");
565 //TestEngine.addTest(true,test_findContacts_006,"[WAC2.0][Contact]test_Find_findContacts_006");
566 //TestEngine.addTest(true,test_updateContacts_001,"[WAC2.0][Contact]test_Find_updateContacts_001");
567 //TestEngine.addTest(true,test_deleteContacts_001,"[WAC2.0][Contact]test_Find_deleteContacts_001");