TContactItemId CTestResources::CreateTestContactL (const TDesC& aFamilyName, TBool aWithPhoneNumber) { // Create a contact card CContactCard* card = CContactCard::NewLC(); // Create a name field CContactItemField* field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); field->TextStorage()->SetTextL(aFamilyName); card->AddFieldL(*field); CleanupStack::Pop(field); // Create a phone number field if (aWithPhoneNumber) { // Create a phone number field CContactItemField* field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldPhoneNumber); field->TextStorage()->SetTextL(_L("555")); card->AddFieldL(*field); CleanupStack::Pop(field); } // Add the contact to the DB const TContactItemId contactId = iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); // Eat away contact db events TContactDbObserverEvent event; while (iDbEventQueue->ListenForEvent(10,event) && (event.iType != EContactDbObserverEventContactAdded || event.iContactId != contactId)) { } iTestContactId = contactId; return contactId; }
TContactItemId CPbTester::AddEntryL() { _LIT(KForename,"John"); _LIT(KSurname,"Smith"); _LIT(KPhoneNumber,"+441617779700"); // Create a contact card to contain the data CContactCard* newCard = CContactCard::NewLC(); // Create the firstName field and add the data to it CContactItemField* firstName = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); firstName->TextStorage()->SetTextL(KForename); newCard->AddFieldL(*firstName); CleanupStack::Pop(firstName); // Create the lastName field and add the data to it CContactItemField* lastName= CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); lastName ->TextStorage()->SetTextL(KSurname); newCard->AddFieldL(*lastName); CleanupStack::Pop(lastName); // Create the phoneNo field and add the data to it CContactItemField* phoneNumber = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldPhoneNumber); phoneNumber->SetMapping(KUidContactFieldVCardMapTEL); phoneNumber ->TextStorage()->SetTextL(KPhoneNumber); newCard->AddFieldL(*phoneNumber); CleanupStack::Pop(phoneNumber); // Add newCard to the database const TContactItemId contactId = ipbDb->AddNewContactL(*newCard); CleanupStack::PopAndDestroy(newCard); return contactId; }
void CContactsRamTest::AddContactsL(const TInt aNumber) /** Add number of contacts to db, using the system template. @return None @param aNumber number of contacts to be added @pre None @post database now contains aNumber of empty contacts */ { //viewdef that loads all fields CContactItemViewDef *viewAll = CContactItemViewDef::NewLC(CContactItemViewDef::EIncludeFields,CContactItemViewDef::EIncludeHiddenFields); viewAll->AddL(KUidContactFieldMatchAll); CContactTemplate *ttemplate = static_cast< CContactTemplate* >( iContactsDatabase->ReadContactLC( iContactsDatabase->TemplateId(), *viewAll ) ); CContactCard* contact = CContactCard::NewLC(ttemplate); SetManyFieldsL(KFieldValue, KManyFields, contact->CardFields()); for(TInt k = 0; k<aNumber; k++) { iContactsDatabase->AddNewContactL(*contact); } CleanupStack::PopAndDestroy(contact); CleanupStack::PopAndDestroy(ttemplate); CleanupStack::PopAndDestroy(viewAll); }
/** * Add one contact to the database. */ void CMainThread::TestAddContactL() { // Add a contact _LIT(KForename,"Jo"); _LIT(KSurname,"Stichbury"); // Create a contact card to contain the data CContactCard* newCard = CContactCard::NewLC(); // Create the firstName field and add the data to it CContactItemField* firstName = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); firstName->TextStorage()->SetTextL(KForename); newCard->AddFieldL(*firstName); CleanupStack::Pop(firstName); // Create the lastName field and add the data to it CContactItemField* lastName= CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); lastName ->TextStorage()->SetTextL(KSurname); newCard->AddFieldL(*lastName); CleanupStack::Pop(lastName); // Add newCard to the database iContactId = database->AddNewContactL(*newCard); CleanupStack::PopAndDestroy(newCard); iTest->Printf( _L("Thread1: Added 1 contact to the database.")); }
void DbCreator::PopulateDatabaseL(CContactDatabase& aDb, TInt aNumContacts) { for(TInt i = 0; i < aNumContacts; ++i) { CContactCard* contact = CContactCard::NewLC(); // first name HBufC* fnameBuf = RandomNameL(); CleanupStack::PushL(fnameBuf); CContactItemField* fname = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); TPtr fnamePtr = fnameBuf->Des(); fname->TextStorage()->SetTextL(fnamePtr); contact->AddFieldL(*fname); CleanupStack::Pop(fname); CleanupStack::PopAndDestroy(fnameBuf); // last name HBufC* lnameBuf = RandomNameL(); CleanupStack::PushL(lnameBuf); CContactItemField* lname = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); TPtr lnamePtr = lnameBuf->Des(); lname->TextStorage()->SetTextL(lnamePtr); contact->AddFieldL(*lname); CleanupStack::Pop(lname); CleanupStack::PopAndDestroy(lnameBuf); // company name HBufC* cnameBuf = RandomNameL(); CleanupStack::PushL(cnameBuf); CContactItemField* cname = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldCompanyName); TPtr cnamePtr = cnameBuf->Des(); cname->TextStorage()->SetTextL(cnamePtr); contact->AddFieldL(*cname); CleanupStack::Pop(cname); CleanupStack::PopAndDestroy(cnameBuf); // phone number HBufC* numBuf = RandomPhoneNumL(); CleanupStack::PushL(numBuf); CContactItemField* num = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldPhoneNumber); TPtr numPtr = numBuf->Des(); num->TextStorage()->SetTextL(numPtr); contact->AddFieldL(*num); CleanupStack::Pop(num); CleanupStack::PopAndDestroy(numBuf); aDb.AddNewContactL(*contact); CleanupStack::PopAndDestroy(contact); } }
LOCAL_C void CreateTestContactsL(CTestResources& aRes, TInt aCount) { for (TInt i=1; i <= aCount; ++i) { CContactCard* card = CContactCard::NewLC(); CContactItemField* field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); TBuf<30> name; name.Format(_L("Contact%02d"), i); field->TextStorage()->SetTextL(name); card->AddFieldL(*field); CleanupStack::Pop(field); aRes.iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); } }
/** * Create a test contact with a Euro character name field. * This bug can be reproduced with most of the cyrillic characters also. */ void CTestResources::CreateTestContactsL() { const TInt KContacts = 1; TInt i; for (i=1; i <= KContacts; ++i) { CContactCard* card = CContactCard::NewLC(); CContactItemField* field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); _LIT(KName, "\x20a0"); //Euro character field->TextStorage()->SetTextL(KName); card->AddFieldL(*field); CleanupStack::Pop(field); iAddedContact = iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); } }
void CPbTester::EditEntryL(TContactItemId itemId) { _LIT(KEmailAddress,"*****@*****.**"); CContactItem *item = ipbDb->OpenContactL(itemId); CContactCard* card = NULL; CleanupStack::PushL(item); card = (CContactCard*)item; // Create the emailAddress field and add the data to it CContactItemField* emailAddr = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldEMail); emailAddr->SetMapping(KUidContactFieldVCardMapEMAILINTERNET); emailAddr ->TextStorage()->SetTextL(KEmailAddress); card->AddFieldL(*emailAddr); CleanupStack::Pop(emailAddr); ipbDb->CommitContactL(*item); CleanupStack::PopAndDestroy(item); }
void CTestResources::CreateTestContactsL() { const TInt KContacts = 4; TInt i; iContacts = CContactIdArray::NewL(); // Create contacts for (i=1; i <= KContacts; ++i) { CContactCard* card = CContactCard::NewLC(); CContactItemField* field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldFamilyName); TBuf<30> name; name.Format(_L("Contact%02d"), i); field->TextStorage()->SetTextL(name); card->AddFieldL(*field); CleanupStack::Pop(field); const TContactItemId contactId = iDb->AddNewContactL(*card); iContacts->AddL(contactId); CleanupStack::PopAndDestroy(card); // Eat away contact db events TContactDbObserverEvent event; test(iDbEventQueue->ListenForEvent(10,event)); } // Create a group CContactItem* group = iDb->CreateContactGroupLC(_L("TestGroup")); iGroupId = group->Id(); CleanupStack::PopAndDestroy(group); // Connect half of the contacts to the group for (i=0; i < iContacts->Count(); ++i) { if (i%2 == 0) { iDb->AddContactToGroupL((*iContacts)[i], iGroupId); } } }
TContactItemId CFilteredViewTester::DoAddContactL(TInt aOrdinal) { TBuf<KTestBufSize> name(_L("MyContact")); TBuf<KTestBufSize> num1(_L("123456")); TBuf<KTestBufSize> num2(_L("123457")); name.AppendNum (aOrdinal); num1.AppendNum (aOrdinal); num2.AppendNum (aOrdinal); CContactCard* card = CContactCard::NewLC(); card->AddFieldL(*CreateFieldLC(KUidContactFieldVCardMapUnusedN, KUidContactFieldGivenName, _L("ContactField"))); CleanupStack::Pop(); card->AddFieldL (*CreateFieldLC(KUidContactFieldVCardMapUnusedN, KUidContactFieldFamilyName, name)); CleanupStack::Pop(); card->AddFieldL (*CreateFieldLC(KUidContactFieldVCardMapTEL, KUidContactFieldPhoneNumber, num1)); CleanupStack::Pop(); card->AddFieldL (*CreateFieldLC(KUidContactFieldVCardMapTELFAX, KUidContactFieldPhoneNumber, num2)); CleanupStack::Pop(); TContactItemId id = iContactDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); return id; }
/**Utility function for Adding any number of contact items with name and telephone fields. */ void CAgentTest::AddContactItemsL(TInt aCount) { iIdArray->Reset(); CContactItem* templateCard = NULL; CContactCard* card = NULL; CContactItemFieldSet* fieldSet = NULL; for(TInt loop = 0; loop < aCount; ++loop) { TInt pos = KErrNotFound; TBuf<16> name; name.Format(_L("NAME%d"),loop); TBuf<16> tel; tel.Format(_L("123456%d"),loop); templateCard = iDb->ReadContactLC(iDb->TemplateId()); card = CContactCard::NewLC(templateCard); fieldSet = &card->CardFields(); pos = fieldSet->Find(KUidContactFieldFamilyName); if (pos != KErrNotFound) { (*fieldSet)[pos].TextStorage()->SetTextL(name); } pos = fieldSet->Find(KUidContactFieldPhoneNumber); if (pos != KErrNotFound) { (*fieldSet)[pos].TextStorage()->SetTextL(tel); } TContactItemId contactId = iDb->AddNewContactL(*card); iIdArray->AddL(contactId); CleanupStack::PopAndDestroy(2); } }
void CTestResources::CreateTestContactsL() { // Create a few test contacts in the db // - Creating 'prefix' results for 'an' CContactCard* card; CContactItemField* field; card = CContactCard::NewLC(); field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); field->TextStorage()->SetTextL(_L("Annie")); card->AddFieldL(*field); CleanupStack::Pop(field); iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); card = CContactCard::NewLC(); field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); field->TextStorage()->SetTextL(_L("Anne")); card->AddFieldL(*field); CleanupStack::Pop(field); iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); card = CContactCard::NewLC(); field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); field->TextStorage()->SetTextL(_L("Andrew")); card->AddFieldL(*field); CleanupStack::Pop(field); iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); // - Creating 'fullsearch' results for 'an' card = CContactCard::NewLC(); field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); field->TextStorage()->SetTextL(_L("Christan")); card->AddFieldL(*field); CleanupStack::Pop(field); iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); card = CContactCard::NewLC(); field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName); field->TextStorage()->SetTextL(_L("Adan")); card->AddFieldL(*field); CleanupStack::Pop(field); iDb->AddNewContactL(*card); CleanupStack::PopAndDestroy(card); }
void CTestImpExvCardSuiteStepBase::ExportItemL(TBuf<80> aPath, TBool aAddBDay) { OpenDBL(); TContactItemId itemId; RFs fsSession; RFileWriteStream fileStream; CContactIdArray* idArray = NULL; CContactCard* contactAdded = NULL; TTime now; User::LeaveIfError(fsSession.Connect()); CleanupClosePushL(fsSession); idArray = CContactIdArray::NewL(); CleanupStack::PushL(idArray); // idArray fsSession.MkDirAll(aPath); User::LeaveIfError(fileStream.Replace(fsSession, aPath, EFileWrite)); contactAdded = CContactCard::NewL(); CleanupStack::PushL(contactAdded); // contactAdded contactAdded->IncAccessCount(); // ADD BDAY if (aAddBDay) { CContactItemFieldSet& fieldSet=contactAdded->CardFields(); const TInt pos=fieldSet.Find(KUidContactFieldBirthday); if (pos!=KErrNotFound) { fieldSet[pos].DateTimeStorage()->SetTime(iBDayLocal); } else { CContactItemField* field=CContactItemField::NewLC(KStorageTypeDateTime,KUidContactFieldBirthday); field->SetMapping(KUidContactFieldVCardMapBDAY); field->DateTimeStorage()->SetTime(iBDayLocal); contactAdded->AddFieldL(*field); CleanupStack::Pop(); // field } } SetNameL(*contactAdded, KUidContactFieldGivenName, _L("toby"), ETrue); SetNameL(*contactAdded, KUidContactFieldPhoneNumber, _L("6041233214"), ETrue); User::After(3000000); // There is no need to call SetLastModifed because // That function will be call by ExportSelectedContactsL below now.UniversalTime(); iRecordedTime = now; INFO_PRINTF1(_L("Adding contact to Database.....")); itemId = iDb->AddNewContactL(*contactAdded); INFO_PRINTF1(_L("Contact Added to Database")); CleanupStack::PopAndDestroy(contactAdded); // contactAdded contactAdded = NULL; idArray->InsertL(0, itemId); INFO_PRINTF1(_L("Exporting Contact.....")); iDb->ExportSelectedContactsL(TUid::Uid(KUidVCardConvDefaultImpl), *idArray, fileStream, CContactVCardConverter::EDefault, ETrue); INFO_PRINTF1(_L("Exported Contact")); fileStream.CommitL(); fileStream.Close(); CleanupStack::PopAndDestroy(idArray); // idArray fsSession.Close(); CleanupStack::PopAndDestroy(); // fsSession CloseDB(); }
LOCAL_C void TestRecoverWhenViewReadyL() { test.Next(_L("Recover database when view is ready")); CTestResources* res = CTestResources::NewLC(EFalse); //Creating a contact to test recovery _LIT(KPhoneNumLabel,"Phone Number"); _LIT(KPhoneNum, "+440000000000"); CContactCard* contact = CContactCard::NewLC(); CContactItemField* field = CContactItemField::NewLC(KStorageTypeText,KUidContactFieldPhoneNumber); field->SetLabelL(KPhoneNumLabel()); field->TextStorage()->SetTextL(KPhoneNum()); contact->AddFieldL(*field); TContactItemId aContactId = res->iDb->AddNewContactL(*contact); CleanupStack::Pop(field); // Wait 5 seconds for the view to get ready TContactViewEvent event; test(res->iViewEventQueue->ListenForEvent(5,event)); test(event.iEventType == TContactViewEvent::EReady); // Damage the DB test.Next(_L("Damage the open database")); res->iDb->DamageDatabaseL(0x666); test(res->iDb->IsDamaged()); // Damaging should not send view events test(!res->iViewEventQueue->ListenForEvent(5,event)); //Attempt to read contact from the damaged database - this should fail with KErrNotReady test.Next(_L("Attempting to read from damaged database")); CContactItem* testCard = NULL; TRAPD(ret,testCard = res->iDb->ReadContactLC(aContactId)); test(ret == KErrNotReady); // Recover the DB test.Next(_L("Recover the damaged database")); res->iDb->RecoverL(); // View should be unavailable here test(res->iViewEventQueue->ListenForEvent(5,event)); test(event.iEventType == TContactViewEvent::EUnavailable); //View should now be ready for use again test(res->iViewEventQueue->ListenForEvent(5,event)); test(event.iEventType == TContactViewEvent::EReady); //Line below included to fix ARMV5 minor build warnings. testCard = res->iDb->ReadContactLC(aContactId); test(testCard != NULL); CleanupStack::PopAndDestroy(testCard); CleanupStack::PopAndDestroy(contact); CleanupStack::PopAndDestroy(res); }