diff -r 73a1feb507fb -r bc78a40cd63c mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaContactAvailability.cpp --- a/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaContactAvailability.cpp Tue Aug 31 15:12:07 2010 +0300 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaContactAvailability.cpp Wed Sep 01 12:31:01 2010 +0100 @@ -30,8 +30,13 @@ // EXTERNAL INCLUDES #include +#include +#include +#include #include #include +#include +#include #include #include @@ -47,6 +52,7 @@ _LIT(KLastName,"Meikalainen"); _LIT(KFirstLastName,"Matti Meikalainen"); _LIT(KLastFirstName,"Meikalainen Matti"); +_LIT( KTelNumber, "12345" ); // CONSTRUCTION UT_CMusAvaContactAvailability* UT_CMusAvaContactAvailability::NewL() @@ -174,11 +180,73 @@ void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteL1_L() { + CContactIdArray* contactIdArray = NULL; + CPbkContactItem* contactItem = NULL; + CPbkContactItem* contactItemTmp = NULL; + + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + // dummy initialization, other ways CPbkContactEngine leaks memory + CPbkContactItem* pbkItem = NULL; + TRAP_IGNORE( pbkItem = contactEngine->ReadContactL( 1 ) ); + delete pbkItem; + + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + //contact + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + TRAPD( error, iContactAvailability->DoExecuteL() ); + if ( error == KErrNoMemory ) User::Leave( error ); + TInt count; + EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); + if ( count > 0 && error != KErrNone ) + { + User::Leave( KErrNoMemory ); + } + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); } void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteL2_L() { + CContactIdArray* contactIdArray = NULL; + CPbkContactItem* contactItem = NULL; + CPbkContactItem* contactItemTmp = NULL; + + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + // dummy initialization, other ways CPbkContactEngine leaks memory + CPbkContactItem* pbkItem = NULL; + TRAP_IGNORE( pbkItem = contactEngine->ReadContactL( 1 ) ); + delete pbkItem; + + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + CContactTextField* urlAtSignField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdSIPID ); + if ( urlAtSignField ) + { + urlAtSignField->SetTextL( _L("sip:test@10.21.30.50") ); + } + else + { + EUNIT_ASSERT( !urlAtSignField ); + } + EUNIT_ENABLE_ALLOC_DECORATOR; iConcreteSettings->SetTelNumberL( KPlusNumber ); @@ -201,35 +269,20 @@ { User::Leave( KErrNoMemory ); } + + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); } - -void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteL3_L() +void UT_CMusAvaContactAvailability::UT_CMusAvaController_CallConnectedLL() { - iConcreteSettings->SetTelNumberL( KPlusNumber ); - - TRAPD( error, iContactAvailability->DoExecuteL() ); - EUNIT_ASSERT( error == KErrNoMemory || error == KErrNone ); - if ( error == KErrNoMemory ) User::Leave( error ); - TInt count; - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && error != KErrNone ) - { - User::Leave( KErrNoMemory ); - } - - iConcreteSettings->SetTelNumberL( KPlusNumber ); - - TRAP( error, iContactAvailability->DoExecuteL() ); - if ( error == KErrNoMemory ) User::Leave( error ); - EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count ); - if ( count > 0 && error != KErrNone ) - { - User::Leave( KErrNoMemory ); - } - + TRAPD( error, iContactAvailability->CallConnectedL( KTelNumber ) ); + if ( error == KErrNone ) + { + EUNIT_ASSERT_EQUALS( iContactAvailability->State(), + MMusAvaObserver::EMusAvaStatusAvailable ); + EUNIT_ASSERT_EQUALS( iConcreteSettings->TelNumber(), KTelNumber ); + } } - - void UT_CMusAvaContactAvailability::UT_CMusAvaController_NameL() { EUNIT_ASSERT( iContactAvailability->Name() == MMusAvaObserver::EMusAvaNameContactStatus ); @@ -296,52 +349,1138 @@ void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactLL() { + CContactIdArray* contactIdArray = NULL; + CPbkContactItem* contactItem = NULL; + + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + EUNIT_ENABLE_ALLOC_DECORATOR; + CleanupStack::PushL( contactEngine ); + + // Non cont or phone number added to contact DB + TBool ret; + TRAPD( error, ret = iContactAvailability->ContactL( contactIdArray, *contactEngine ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( !ret ); + EUNIT_ASSERT( contactIdArray == NULL ); + + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + //contact + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber ); + + TRAP( error, ret = iContactAvailability->ContactL( contactIdArray, *contactEngine ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( ret ); + EUNIT_ASSERT( contactIdArray != NULL ); + + delete contactIdArray; + contactIdArray = NULL; + + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + } - void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactArrayLL() { + CContactIdArray* array = NULL; + + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* pbkContactEngine = CPbkContactEngine::NewL(); + EUNIT_ENABLE_ALLOC_DECORATOR; + CleanupStack::PushL( pbkContactEngine ); + + //No number found + TInt ret = NULL; + TRAPD( error, ret = iContactAvailability->ContactArrayL( array, + *pbkContactEngine ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( ret == KErrNotFound ); + EUNIT_ASSERT( array == NULL ); + //Number length 0 + iConcreteSettings->SetTelNumberL( _L("") ); + TRAP( error, ret = iContactAvailability->ContactArrayL( array, + *pbkContactEngine ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( ret == KErrNotFound ); + EUNIT_ASSERT( array == NULL ); + //Number found + iConcreteSettings->SetTelNumberL( KNumber ); + TRAP( error, ret = iContactAvailability->ContactArrayL( array, + *pbkContactEngine ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( ret == KErrNone ); + EUNIT_ASSERT( array != NULL ); + EUNIT_ASSERT( array->Count() > 0 ); + + CleanupStack::PopAndDestroy( pbkContactEngine ); + + delete array; + array = NULL; } - void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactItemL() { + CPbkContactItem* tmpItem = NULL; + CContactIdArray* tmpContactIdArray = NULL; + + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + CPbkContactItem* contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + // CContactIdArray == 0 + //tmpContactIdArray = CContactIdArray::NewLC(); + //EUNIT_ASSERT_EQUALS( KErrNotFound, iContactAvailability->ContactItem( + //*tmpContactIdArray, tmpItem ) ); + //CleanupStack::PopAndDestroy( ); + + + // CContactIdArray > 0 + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + contactEngine->AddNewContactL( *contactItem ); + + CContactDatabase* contactDatabase = CContactDatabase::OpenL(); + CleanupStack::PushL( contactDatabase ); + CCntFilter* newFilter = CCntFilter::NewL(); + CleanupStack::PushL( newFilter ); + newFilter->Reset(); + newFilter->SetContactFilterTypeALL( ETrue ); + contactDatabase->FilterDatabaseL( *newFilter ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + //CContactIdArray* tmpaArray = newFilter->iIds; + //Item found + + TInt err = iContactAvailability->ContactItem( *( newFilter->iIds ), tmpItem, *contactEngine ); + // NOTE: Multiple contact id's could be in database and KErrNotSupported is + // returned if more than one. Maybe first run could get result KErrNone and + // then KErrNotSupported + EUNIT_ASSERT( ( KErrNotSupported == err ) || ( KErrNone == err ) ); + + //EUNIT_ASSERT( tmpItem != NULL ); + //delete tmpaArray; + //contactDatabase->CommitContactL( *tmpItem ); + delete tmpItem; + //tmpItem = NULL; + //End test + + CleanupStack::PopAndDestroy( newFilter ); + + contactDatabase->CloseTables(); + + CleanupStack::PopAndDestroy( contactDatabase ); + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + + + } - void UT_CMusAvaContactAvailability::UT_CMusAvaController_PhoneResulutionLL() { + CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 ); + CleanupStack::PushL( array ); + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + CPbkContactItem* contactItem = contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + // dummy initialization, other ways CPbkContactEngine leaks memory + CPbkContactItem* pbkItem = NULL; + TRAP_IGNORE( pbkItem = contactEngine->ReadContactL( 1 ) ); + delete pbkItem; + + //No prefix + contactItem->RemoveDefaultPhoneNumberField(); + EUNIT_ENABLE_ALLOC_DECORATOR; + iConcreteSettings->SetTelNumberL( KNumber ); + TBool ret; + TRAPD( error, ret = iContactAvailability->PhoneResolutionL( *contactItem, array ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( !ret ); + + EUNIT_ASSERT( array->MdcaCount() == 0); + + //Prefix + iConcreteSettings->SetTelNumberL( KPlusNumber ); + + TRAP( error, ret = iContactAvailability->PhoneResolutionL( *contactItem, array ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( ret ); + EUNIT_ASSERT( array->MdcaCount() > 0 ); + //remove object from the array + array->Reset(); + + ///Number plan is in national mode + EUNIT_DISABLE_ALLOC_DECORATOR; + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KNumber() ); + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->ReleseTelNumberL(); + TRAP( error, ret = iContactAvailability->PhoneResolutionL( *contactItem, array ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( !ret ); + EUNIT_ASSERT( array->MdcaCount() == 0 ); + + + //Number plan is in internatiolan mode + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem->RemoveDefaultPhoneNumberField(); + fieldMobile = contactItem->FindField( EPbkFieldIdPhoneNumberMobile ); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + iConcreteSettings->ReleseTelNumberL(); + TRAP( error, ret = iContactAvailability->PhoneResolutionL( *contactItem, array ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( ret ); + EUNIT_ASSERT( array->MdcaCount() > 0 ); + + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + CleanupStack::PopAndDestroy( array ); } + + + + void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactIdL() { + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + CPbkContactItem* contactItem = NULL; + + // dummy initialization, other ways CPbkContactEngine leaks memory + TRAP_IGNORE( contactItem = contactEngine->ReadContactL( 1 ) ); + delete contactItem; + + contactItem = contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + //Contact field not created + EUNIT_ASSERT( !iContactAvailability->ContactId( *contactItem, EPbkFieldIdSIPID ) ); + + //Contact URi not defined + CContactTextField* urlFieldNotDefined = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdShareView ); + if ( urlFieldNotDefined ) + { + urlFieldNotDefined->SetTextL( _L("sip:10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlFieldNotDefined ); + } + + EUNIT_ASSERT( !iContactAvailability->ContactId( *contactItem, EPbkFieldIdShareView ) ); + + //Contact field not found + CContactTextField* urlField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdShareView ); + if ( urlField ) + { + urlField->SetTextL( _L("test@10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlField ); + } + + EUNIT_ASSERT( !iContactAvailability->ContactId( *contactItem, EPbkFieldIdSIPID ) ); + + //Contact field found + EUNIT_ASSERT( iContactAvailability->ContactId( *contactItem, EPbkFieldIdShareView ) ); + + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); } void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactIdSearchL() { + CPbkContactItem* contactItem = NULL; + CContactIdArray* contactIdArray = NULL; + CContactTextField* phoneNumberMobiled = NULL; + CContactTextField* country = NULL; + CContactTextField* urlFieldNotDefined = NULL; + CPbkContactEngine* contactEngine = NULL; + + + //No contact ////////////////////////////////////////////////////////////// + //General info + EUNIT_DISABLE_ALLOC_DECORATOR; + contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + //Clear contacts + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + CleanupStack::PushL( contactIdArray ); + contactEngine->DeleteContactsL( *contactIdArray ); + + CleanupStack::PopAndDestroy( contactIdArray ); + + + // dummy initialization, other ways CPbkContactEngine leaks memory + TRAP_IGNORE( contactItem = contactEngine->ReadContactL( 1 ) ); + delete contactItem; + + AddToMyContact( *contactEngine, + KNumber(), + EPbkFieldIdPhoneNumberMobile, + _L("nokia"), + EPbkFieldIdCompanyName ); + + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + CleanupStack::PushL( contactIdArray ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + EUNIT_ASSERT( + iContactAvailability->ContactIdSearch( *contactIdArray, *contactEngine ) == + EPbkFieldIdNone ); + + contactEngine->DeleteContactsL( *contactIdArray ); + CleanupStack::PopAndDestroy( contactIdArray ); + + // Field Phone number general found ///////////////////////////////////////////////////////// + + //Clear contacts + EUNIT_DISABLE_ALLOC_DECORATOR; + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + CleanupStack::PushL( contactIdArray ); + contactEngine->DeleteContactsL( *contactIdArray ); + + CleanupStack::PopAndDestroy( contactIdArray ); + + AddToMyContact( *contactEngine, + KNumber(), + EPbkFieldIdPhoneNumberMobile, + _L("+35805123456789"), + EPbkFieldIdPhoneNumberGeneral ); + + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + + CleanupStack::PushL( contactIdArray ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + EUNIT_ASSERT( + iContactAvailability->ContactIdSearch( *contactIdArray, *contactEngine ) == + EPbkFieldIdNone ); + //EUNIT_ASSERT( ret == EPbkFieldIdPhoneNumberGeneral ); + contactEngine->DeleteContactsL( *contactIdArray ); + CleanupStack::PopAndDestroy( contactIdArray ); + + // Field SIP id found ///////////////////////////////////////////////////////// + + //Clear contacts + EUNIT_DISABLE_ALLOC_DECORATOR; + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + CleanupStack::PushL( contactIdArray ); + contactEngine->DeleteContactsL( *contactIdArray ); + + CleanupStack::PopAndDestroy( contactIdArray ); + + AddToMyContact( *contactEngine, + KNumber(), + EPbkFieldIdPhoneNumberMobile, + _L("test@10.21.32.51"), + EPbkFieldIdSIPID ); + + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + + CleanupStack::PushL( contactIdArray ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + TPbkFieldId ret = iContactAvailability->ContactIdSearch( *contactIdArray, *contactEngine ); + if ( ret == EPbkFieldIdNone ) + { + User::Leave( KErrNoMemory ); + } + EUNIT_ASSERT( ret == EPbkFieldIdSIPID ); + contactEngine->DeleteContactsL( *contactIdArray ); + CleanupStack::PopAndDestroy( contactIdArray ); + + // Share View found + //Clear contacts + EUNIT_DISABLE_ALLOC_DECORATOR; + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + CleanupStack::PushL( contactIdArray ); + contactEngine->DeleteContactsL( *contactIdArray ); + + CleanupStack::PopAndDestroy( contactIdArray ); + + AddToMyContact( *contactEngine, + KNumber(), + EPbkFieldIdPhoneNumberMobile, + _L("test@10.21.32.51"), + EPbkFieldIdShareView ); + + contactIdArray = contactEngine->MatchPhoneNumberL( + KNumber(), + KNumberMatchingDigitsRequired ); + + CleanupStack::PushL( contactIdArray ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + ret = iContactAvailability->ContactIdSearch( *contactIdArray, *contactEngine ); + if ( ret == EPbkFieldIdNone ) + { + User::Leave( KErrNoMemory ); + } + EUNIT_ASSERT( ret == EPbkFieldIdShareView ); + + contactEngine->DeleteContactsL( *contactIdArray ); + CleanupStack::PopAndDestroy( contactIdArray ); + CleanupStack::PopAndDestroy( contactEngine ); } void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolveAddressesLL() { + CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 ); + CleanupStack::PushL( array ); + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + // dummy initialization, other ways CPbkContactEngine leaks memory + CPbkContactItem* pbkItem = NULL; + TRAP_IGNORE( pbkItem = contactEngine->ReadContactL( 1 ) ); + delete pbkItem; + + CPbkContactItem* contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + //Test cases + //Sip Uri without At sign + CContactTextField* urlSipField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdSIPID ); + + + if ( urlSipField ) + { + urlSipField->SetTextL( _L("sip:10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlSipField ); + } + + TBool ret; + TRAPD( error, ret = iContactAvailability->ResolveAddressesL( *contactItem, + array, + EPbkFieldIdSIPID ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( !ret ); + EUNIT_ASSERT( array->Count() == 0 ); + + + //Undefined Uri + CContactTextField* urlUndefinedField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdPushToTalk ); + if ( urlUndefinedField ) + { + urlUndefinedField->SetTextL( _L("test@10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlUndefinedField ); + } + contactEngine->AddNewContactL( *contactItem ); + TRAP( error, ret = iContactAvailability->ResolveAddressesL( *contactItem, + array, + EPbkFieldIdSIPID ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( !ret ); + + EUNIT_ASSERT( array->Count() == 0 ); + + //Sip Uri + CContactTextField* urlAtSignField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdSIPID ); + if ( urlAtSignField ) + { + urlAtSignField->SetTextL( _L("sip:test@10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlAtSignField ); + } + contactEngine->AddNewContactL( *contactItem ); + TRAP( error, ret = iContactAvailability->ResolveAddressesL( *contactItem, + array, + EPbkFieldIdSIPID ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( ret ); + EUNIT_ASSERT( array->Count() > 0 ); + + //Clear array + array->Reset(); + + //ShareView Uri + CContactTextField* urlShareViewField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdShareView ); + if ( urlShareViewField ) + { + urlShareViewField->SetTextL( _L("test@10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlShareViewField ); + } + + TRAP( error, ret = iContactAvailability->ResolveAddressesL( *contactItem, + array, + EPbkFieldIdShareView ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( ret ); + EUNIT_ASSERT( array != NULL ); + EUNIT_ASSERT( array->Count() > 0 ); + array->Reset(); + + + //End test + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + CleanupStack::PopAndDestroy( array ); + } void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolveAddressesLOpSpecificL() { + CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 ); + CleanupStack::PushL( array ); + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + // dummy initialization, other ways CPbkContactEngine leaks memory + CPbkContactItem* pbkItem = NULL; + TRAP_IGNORE( pbkItem = contactEngine->ReadContactL( 1 ) ); + delete pbkItem; + + CPbkContactItem* contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + //Test cases + //Sip Uri without test string + CContactTextField* urlAtSignField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdSIPID ); + if ( urlAtSignField ) + { + urlAtSignField->SetTextL( _L("sip:test@10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlAtSignField ); + } + contactEngine->AddNewContactL( *contactItem ); + TBool ret; + TRAPD( error, ret = iContactAvailability->ResolveAddressesL( *contactItem, + array, + EPbkFieldIdSIPID ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( !ret ); + EUNIT_ASSERT_EQUALS( array->Count(), 0 ); + + //Clear array + array->Reset(); + + //Sip Uri with test string (*#) + urlAtSignField = + EditableContactFieldL( *contactEngine, *contactItem, EPbkFieldIdSIPID ); + if ( urlAtSignField ) + { + urlAtSignField->SetTextL( _L("sip:test*#@10.21.32.51") ); + } + else + { + EUNIT_ASSERT( !urlAtSignField ); + } + contactEngine->AddNewContactL( *contactItem ); + TRAP( error, ret = iContactAvailability->ResolveAddressesL( *contactItem, + array, + EPbkFieldIdSIPID ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT ( ret ); + EUNIT_ASSERT( array->Count() > 0 ); + + //Clear array + array->Reset(); + + //End test + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + CleanupStack::PopAndDestroy( array ); + } void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolvePhoneContactLL() { + CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 ); + CleanupStack::PushL( array ); + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + CPbkContactItem* contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + ///Number plan is in national mode + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL(_L("0401234567")); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iContactAvailability->ResolvePhoneContactL( *contactItem, array ); + EUNIT_ASSERT( array->MdcaCount() == 0 ); + //Number plan is in internatiolan mode + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem->RemoveDefaultPhoneNumberField(); + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL(_L("+358401234567")); + EUNIT_ENABLE_ALLOC_DECORATOR; + iContactAvailability->ResolvePhoneContactL( *contactItem, array ); + EUNIT_ASSERT( array->MdcaCount() > 0 ); + array->Reset(); + + //tel uri + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem->RemoveDefaultPhoneNumberField(); + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL(_L("tel:+358401234567")); + EUNIT_ENABLE_ALLOC_DECORATOR; + iContactAvailability->ResolvePhoneContactL( *contactItem, array ); + EUNIT_ASSERT( array->Count() == 0 ); + + //End test + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + CleanupStack::PopAndDestroy( array ); } void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolvePhoneContactLOpSpecificL() { + CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 ); + CleanupStack::PushL( array ); + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + CPbkContactItem* contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + ///Number plan is in national mode + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL(_L("0401234567")); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iContactAvailability->ResolvePhoneContactL( *contactItem, array ); + EUNIT_ASSERT( array->MdcaCount() > 0 ); + //Number plan is in internatiolan mode + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem->RemoveDefaultPhoneNumberField(); + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL(_L("+358401234567")); + EUNIT_ENABLE_ALLOC_DECORATOR; + iContactAvailability->ResolvePhoneContactL( *contactItem, array ); + EUNIT_ASSERT( array->MdcaCount() > 0 ); + array->Reset(); + + //tel uri + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem->RemoveDefaultPhoneNumberField(); + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL(_L("tel:+358401234567")); + EUNIT_ENABLE_ALLOC_DECORATOR; + iContactAvailability->ResolvePhoneContactL( *contactItem, array ); + EUNIT_ASSERT( array->Count() > 0 ); + + //End test + CleanupStack::PopAndDestroy( contactItem ); + CleanupStack::PopAndDestroy( contactEngine ); + CleanupStack::PopAndDestroy( array ); + } + +CContactTextField* UT_CMusAvaContactAvailability::EditableContactFieldL( + CPbkContactEngine& aContactEngine, + CPbkContactItem& aContact, + TPbkFieldId aFieldId ) + { + /* CContactDatabase* contactDatabase = NULL; + contactDatabase = CContactDatabase::OpenL(); + CleanupStack::PushL( contactDatabase ); + CCntFilter* newFilter = CCntFilter::NewLC(); + newFilter->Reset(); + newFilter->SetContactFilterTypeALL( ETrue ); + contactDatabase->FilterDatabaseL( *newFilter ); + + CContactIdArray* contactsId = newFilter->iIds; + if ( contactsId->Count() ) + { + aContactEngine.DeleteContactsL( *contactsId ); + } + //contactDatabase->CommitContactL(): + + CleanupStack::PopAndDestroy( 2 ); + CleanupStack::PopAndDestroy( contactDatabase );*/ + + EUNIT_DISABLE_ALLOC_DECORATOR; + const CPbkFieldsInfo& fieldsInfo = aContactEngine.FieldsInfo(); + // Try to get the SIP URI storage field for this contact + TPbkContactItemField* itemField = aContact.FindField( aFieldId ); + + if ( !itemField ) + { + CPbkFieldInfo* fieldInfo = fieldsInfo.Find( aFieldId ); + // Add field to this contact + if ( fieldInfo ) + { + CleanupStack::PushL( fieldInfo ); + // Contact takes ownership of the field. + aContact.AddFieldL( *fieldInfo ); + CleanupStack::Pop( fieldInfo ); + itemField = aContact.FindField( aFieldId ); + if ( itemField ) + { + return itemField->TextStorage(); + } + else + { + EUNIT_ASSERT( !itemField ); + } + } + else + { + EUNIT_ASSERT( !fieldInfo ); + } + } + else + { + return itemField->TextStorage(); + } + EUNIT_ENABLE_ALLOC_DECORATOR; + return NULL; // Should never reach here, just to avoid warnings. } +void UT_CMusAvaContactAvailability::AddFields( CPbkContactEngine& aContactEngine, + CPbkContactItem& contact, + const TDesC& aText, + TPbkFieldId aFieldId ) + { + const CPbkFieldsInfo& fieldsInfo = aContactEngine.FieldsInfo(); + // Try to get the storage field for this contact + TPbkContactItemField* itemField = contact.FindField( aFieldId ); + + if ( itemField == NULL ) + { + CPbkFieldInfo* fieldInfo = fieldsInfo.Find( aFieldId ); + // Add field to this contact + if ( fieldInfo ) + { + CleanupStack::PushL( fieldInfo ); + // Contact takes ownership of the field. + contact.AddFieldL( *fieldInfo ); + CleanupStack::Pop( fieldInfo ); + itemField = contact.FindField( aFieldId ); + if ( itemField ) + { + itemField->TextStorage()->SetTextL( aText ); + } + else + { + EUNIT_ASSERT( !itemField ); + } + } + else + { + EUNIT_ASSERT( !fieldInfo ); + } + } + else + { + // Set some default fields + itemField->TextStorage()->SetTextL(aText ); + } + } + +void UT_CMusAvaContactAvailability::AddToMyContact( CPbkContactEngine& aContactEngine, + const TDesC& aText, + TPbkFieldId aFieldId, + const TDesC& aText2, + TPbkFieldId aFieldId2 ) + { + // Create a contact with few default fields + // All the default fields are empty and won't be displayed + // until some information is stored in them + /*CPbkContactItem* contact = aContactEngine.CreateEmptyContactL(); + CleanupStack::PushL( contact ); + + // Set some default fields + contact->FindField( aFieldId )->TextStorage()->SetTextL(aText ); + // Set some default fields + contact->FindField( aFieldId2 )->TextStorage()->SetTextL(aText2 ); + + // Store the contact to the phonebook + aContactEngine.AddNewContactL( *contact ); + CleanupStack::PopAndDestroy( contact );*/ + + /*CPbkContactItem* contact = aContactEngine.CreateEmptyContactL(); + CleanupStack::PushL( contact ); + + const CPbkFieldsInfo& fieldsInfo = aContactEngine.FieldsInfo(); + // Try to get the storage field for this contact + TPbkContactItemField* itemField = contact->FindField( aFieldId ); + + if ( itemField == NULL ) + { + CPbkFieldInfo* fieldInfo = fieldsInfo.Find( aFieldId ); + // Add field to this contact + if ( fieldInfo ) + { + CleanupStack::PushL( fieldInfo ); + // Contact takes ownership of the field. + contact->AddFieldL( *fieldInfo ); + CleanupStack::Pop( fieldInfo ); + itemField = contact->FindField( aFieldId ); + if ( itemField ) + { + itemField->TextStorage()->SetTextL( aText ); + } + else + { + EUNIT_ASSERT( !itemField ); + } + } + else + { + EUNIT_ASSERT( !fieldInfo ); + } + } + else + { + // Set some default fields + itemField->TextStorage()->SetTextL(aText ); + } + // Store the contact to the phonebook + aContactEngine.AddNewContactL( *contact ); + CleanupStack::PopAndDestroy( contact );*/ + + CPbkContactItem* contact = aContactEngine.CreateEmptyContactL(); + CleanupStack::PushL( contact ); + + AddFields( aContactEngine, *contact, aText, aFieldId ); + AddFields( aContactEngine, *contact, aText2, aFieldId2 ); + // Store the contact to the phonebook + aContactEngine.AddNewContactL( *contact ); + CleanupStack::PopAndDestroy( contact ); + + } + void UT_CMusAvaContactAvailability::UT_CMusAvaController_IsExistAlreadyL() { + _LIT( KTestUri1, "sip:1@test.net"); + _LIT( KTestUri2, "sip:2@test.net"); + _LIT( KTestUri3, "sip:3@test.net"); + _LIT( KTestUri5, "sip:5@test.net"); + + TBufC16<16> str1(KTestUri1); + HBufC16* ptr1; + ptr1 = str1.AllocLC(); + + TBufC16<16> str2(KTestUri2); + HBufC16* ptr2; + ptr2 = str2.AllocLC(); + + TBufC16<16> str3(KTestUri3); + HBufC16* ptr3; + ptr3 = str3.AllocLC(); + + CDesCArrayFlat* array = new( ELeave ) CDesCArrayFlat(1); + CleanupStack::PushL(array); + array->AppendL(*ptr1); + array->AppendL(*ptr2); + array->AppendL(*ptr3); + + TBool exist = EFalse; + + // Test 1 : + exist = iContactAvailability->IsExistAlready(*array,KTestUri1); + EUNIT_ASSERT(exist); + // Test 2 : + exist = iContactAvailability->IsExistAlready(*array,KTestUri5); + EUNIT_ASSERT(!exist); + + array->Reset(); + CleanupStack::PopAndDestroy(array); + CleanupStack::PopAndDestroy(ptr3); + CleanupStack::PopAndDestroy(ptr2); + CleanupStack::PopAndDestroy(ptr1); } void UT_CMusAvaContactAvailability::UT_CMusAvaController_UpdateContactNameLL() { + CPbkContactItem* contactItem = NULL; + + EUNIT_DISABLE_ALLOC_DECORATOR; + CPbkContactEngine* contactEngine = CPbkContactEngine::NewL(); + CleanupStack::PushL( contactEngine ); + + // dummy initialization, other ways CPbkContactEngine leaks memory + CPbkContactItem* pbkItem = NULL; + TRAP_IGNORE( pbkItem = contactEngine->ReadContactL( 1 ) ); + delete pbkItem; + + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + //contact firstname && iBeginWithFirstName = ETrue + TPbkContactItemField* fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + TPbkContactItemField* fieldMobile1 = contactItem->FindField(EPbkFieldIdFirstName); + fieldMobile1->TextStorage()->SetTextL( KFirstName() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = ETrue; + TRAPD( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KFirstName ) == NULL ); + + CleanupStack::PopAndDestroy( contactItem ); + CContactIdArray* array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + + //contact firstname && iBeginWithFirstName = EFalse + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + fieldMobile1 = contactItem->FindField(EPbkFieldIdFirstName); + fieldMobile1->TextStorage()->SetTextL( KFirstName() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = EFalse; + TRAP( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KFirstName ) == NULL ); + + CleanupStack::PopAndDestroy( contactItem ); + array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + + //contact lastname && iBeginWithFirstName = ETrue + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + fieldMobile1 = contactItem->FindField(EPbkFieldIdLastName); + fieldMobile1->TextStorage()->SetTextL( KLastName() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = ETrue; + TRAP( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KLastName ) == NULL ); + + CleanupStack::PopAndDestroy( contactItem ); + array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + + //contact lastname && iBeginWithFirstName = EFalse + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + fieldMobile1 = contactItem->FindField(EPbkFieldIdLastName); + fieldMobile1->TextStorage()->SetTextL( KLastName() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = EFalse; + TRAP( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KLastName ) == NULL ); + + CleanupStack::PopAndDestroy( contactItem ); + array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + + //contact firstname && lastname && iBeginWithFirstName = ETrue + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + fieldMobile1 = contactItem->FindField(EPbkFieldIdFirstName); + fieldMobile1->TextStorage()->SetTextL( KFirstName() ); + + TPbkContactItemField* fieldMobile2 = contactItem->FindField(EPbkFieldIdLastName); + fieldMobile2->TextStorage()->SetTextL( KLastName() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = ETrue; + TRAP( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KFirstLastName ) == NULL ); +// + CleanupStack::PopAndDestroy( contactItem ); + array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + + //contact firstname && lastname && iBeginWithFirstName = EFalse + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + fieldMobile1 = contactItem->FindField(EPbkFieldIdFirstName); + fieldMobile1->TextStorage()->SetTextL( KFirstName() ); + + fieldMobile2 = contactItem->FindField(EPbkFieldIdLastName); + fieldMobile2->TextStorage()->SetTextL( KLastName() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = EFalse; + TRAP( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KLastFirstName ) == NULL ); + + CleanupStack::PopAndDestroy( contactItem ); + array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + + // contact name only contain 1 character + _LIT(KNameWithOneChar,"M"); + for (int i = 0; i < 1; ++i ) + { + EUNIT_DISABLE_ALLOC_DECORATOR; + contactItem= contactEngine->CreateEmptyContactL(); + CleanupStack::PushL( contactItem ); + + fieldMobile = contactItem->FindField(EPbkFieldIdPhoneNumberMobile); + fieldMobile->TextStorage()->SetTextL( KPlusNumber() ); + + fieldMobile1 = contactItem->FindField(EPbkFieldIdFirstName); + fieldMobile1->TextStorage()->SetTextL( KNameWithOneChar() ); + + contactEngine->AddNewContactL( *contactItem ); + EUNIT_ENABLE_ALLOC_DECORATOR; + + iConcreteSettings->SetTelNumberL( KPlusNumber() ); + + iContactAvailability->iBeginWithFirstName = i; + TRAP( error, + iContactAvailability->UpdateContactNameL( contactItem->ContactItem() ) ); + if ( error == KErrNoMemory ) User::Leave( error ); + EUNIT_ASSERT( error == KErrNone ); + EUNIT_ASSERT( iContactAvailability->iContactName->Compare( KNameWithOneChar ) == 0 ); + + CleanupStack::PopAndDestroy( contactItem ); + array = NULL; + iContactAvailability->ContactArrayL( array, *contactEngine ); + CleanupStack::PushL( array ); + contactEngine->DeleteContactsL( *array, ETrue ); + CleanupStack::PopAndDestroy( array ); + } + + CleanupStack::PopAndDestroy( contactEngine ); } - // TEST TABLE EUNIT_BEGIN_TEST_TABLE( @@ -376,13 +1515,6 @@ "DoExecuteL_2", "FUNCTIONALITY", SetupL, UT_CMusAvaController_DoExecuteL2_L, Teardown) - -EUNIT_TEST( - "DoExecuteL_3 - test ", - "CMusAvaContactAvailability", - "DoExecuteL_3", - "FUNCTIONALITY", - SetupL, UT_CMusAvaController_DoExecuteL3_L, Teardown) EUNIT_TEST( "Name - test ", @@ -503,6 +1635,12 @@ "FUNCTIONALITY", SetupL, UT_CMusAvaController_UpdateContactNameLL, Teardown) +EUNIT_TEST( + "UpdateContactNameL - test ", + "CMusAvaContactAvailability", + "UpdateContactNameL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaController_CallConnectedLL, Teardown) EUNIT_END_TEST_TABLE // END OF FILE