diff -r 2c7f27287390 -r 053c6c7c14f3 idlefw/tsrc/devicestatusplugin/ut_devstaplg/UT_DevStaPlg2.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/idlefw/tsrc/devicestatusplugin/ut_devstaplg/UT_DevStaPlg2.cpp Thu Aug 19 10:13:44 2010 +0300 @@ -0,0 +1,877 @@ +/* +* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +// CLASS HEADER +#define private public +#include "aioperatornamepublisher.h" +#undef private +#define protected public +#include "aibtsappublisher.h" +#include "aimulticontentobserver.h" +#include "aicontentobserveroptimizer.h" +#include "aioperatorlogopublisher.h" +#define private public +#include "aiprofilepublisher.h" +#include "aidatepublisher.h" +#undef private +#undef protected +#include "UT_DevStaPlg2.h" +#include +#include "aidevicestatuscontentmodel.h" +#include "caouserafter.h" +#include "logotools.h" +#include "testingtools.h" +#include "contentobserver.h" +#include "ainativeuiplugins.h" +#include +#include "ainwidpriorities.h" + +// EXTERNAL INCLUDES +#include +#include +#include +#include +#include +#include +#include + +#include "aidevicestatusplugin.h" + +// INTERNAL INCLUDES + + +const TInt KCountryCode = 244; +const TInt KNetworkId = 91; + + + + +// CONSTRUCTION +UT_DevStaPlg2* UT_DevStaPlg2::NewL() + { + UT_DevStaPlg2* self = UT_DevStaPlg2::NewLC(); + CleanupStack::Pop(); + + return self; + } + +UT_DevStaPlg2* UT_DevStaPlg2::NewLC() + { + UT_DevStaPlg2* self = new( ELeave ) UT_DevStaPlg2(); + CleanupStack::PushL( self ); + + self->ConstructL(); + + return self; + } + +// Destructor (virtual by CBase) +UT_DevStaPlg2::~UT_DevStaPlg2() + { + } + +// Default constructor +UT_DevStaPlg2::UT_DevStaPlg2() + { + } + +// Second phase construct +void UT_DevStaPlg2::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + } + + +void UT_DevStaPlg2::SetupL( ) + { + // __UHEAP_MARK; + CStubDataHolder::InstanceL(); + iCache = this; + + TUid uid = { AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_DEVSTAPLUGIN }; + + _LIT8( KNameSpace, "1" ); + + THsPublisherInfo pubInfo( uid, KDeviceStatusPluginName, KNameSpace ); + + iPublisher = CHsContentPublisher::NewL( pubInfo ); + + RAiSettingsItemArray settings; + iPublisher->ConfigureL( settings ); + iPublisher->SubscribeL( *iCache ); + iPublisher->Start( CHsContentPublisher::ESystemStartup ); + /* +// __UHEAP_MARK; + CStubDataHolder::InstanceL(); + iCache = this; + + TUid uid = { AI_UID_ECOM_IMPLEMENTATION_CONTENTPUBLISHER_DEVSTAPLUGIN }; + iPublisher = CAiContentPublisher::NewL( uid ); + //User::LeaveIfError( err ); + + TAny* temp = NULL; + MAiPropertyExtension* extension = NULL; + TRAPD( err, temp = iPublisher->Extension( KExtensionUidProperty ) ); + + if( temp /*&& err == KErrNone ) + { + TAiPublisherInfo publisher; + publisher.iUid = KDeviceStatusPluginUid; + publisher.iName.Copy( KDeviceStatusPluginName ); + + extension = static_cast(temp); + extension->SetPropertyL( EAiPublisherInfo, (TAny*)&publisher ); + + const TAiPublisherInfo* result = NULL; + + TRAPD( err2, result = extension->PublisherInfoL() ); + + } + + */ + + /* + else + { + EUNIT_PRINT( _L("Publisher extension not found, cannot set logger") ); + User::Leave( KErrNotFound ); + } +*/ + iPublisher->SubscribeL( *iCache ); + + iLogoPublisher = CAiOperatorLogoPublisher::NewL(); + + iNamePublisher = CAiOperatorNamePublisher::NewL(); + + iMultiObserver = CAiMultiContentObserver::NewL(); + + iBTSAP = CAiBTSAPPublisher::NewL(); + + iDatePublisher = CAiDatePublisher::NewL(); + } + +void UT_DevStaPlg2::SetupEmptyL() + { +// __UHEAP_MARK; + } + + + + +void UT_DevStaPlg2::Teardown( ) + { + delete iDatePublisher; + + delete iMultiObserver; + + delete iBTSAP; + + iInternalCache.ResetAndDestroy(); + + delete iLogoPublisher; + + delete iNamePublisher; + + if( iPublisher ) + { + iPublisher->Stop( CHsContentPublisher::ESystemShutdown ); + delete iPublisher; + iPublisher = NULL; + } + + /*if( iUtils ) + { + delete iUtils; + iUtils =NULL; + }*/ + + if( iCache ) + { + iCache->Reset(); + iCache = NULL; + } + + CStubDataHolder::Release(); + #if _BullseyeCoverage + cov_write(); + #endif + } + +void UT_DevStaPlg2::TestOperatorLogoPublisherL() + { + iLogoPublisher->Subscribe( *this, + *iPublisher, + *this, + *this ); + + RFbsSession::Connect(); + + // StoreOTALogoL( KCountryCode, KNetworkId ); + + //only OTA logo + iPublisher->Resume( CHsContentPublisher::EForeground ); + + TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo(); + nwInfo->iCountryCode.Format( _L("%i"), KCountryCode ); + nwInfo->iNetworkId.Format( _L("%i"), KNetworkId ); + nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork; + + nwInfo->iStatus = ENWStatusCurrent; + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + //wait for publish + CAOUserAfter::AfterLD( 2 * 1000000 ); + + CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity ); + + /* + if( !cache ) + { + User::Leave( KErrNoMemory ); + } + + TPckgBuf logoBuf; + logoBuf.Copy( *cache->iData ); + + EUNIT_ASSERT( logoBuf()->Bitmap() ); + EUNIT_ASSERT( logoBuf()->Mask() ); + */ + + nwInfo->iRegistrationStatus = ENWNotRegisteredNoService; + nwInfo->iStatus = ENWStatusCurrent; + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + //TODO Assert + + nwInfo->iRegistrationStatus = ENWRegistrationUnknown ; + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + //TODO Assert + + RFbsSession::Disconnect(); + } + +void UT_DevStaPlg2::TestOperatorProgNamePublisherL() + { +#if defined(WINSCW) || defined(__WINS__) + _LIT( KOperatorName, "Operator" ); +#else + _LIT( KOperatorName, "ProgName" ); +#endif + + iPublisher->Resume( CHsContentPublisher::EForeground ); + + TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo(); + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull; + nwInfo->iOperatorNameInfo.iName.Copy( KOperatorName ); + nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork; + nwInfo->iServiceProviderNameDisplayReq |= ENWDisplayPLMNRequired; + nwInfo->iServiceProviderNameDisplayReq |= ENWDisplaySPNRequired; + nwInfo->iStatus = ENWStatusCurrent; + + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + /* + CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentNetworkIdentity ); + + if( !cache ) + { + User::Leave( KErrNoMemory ); + } + */ + + // EUNIT_ASSERT( *cache->iText == KOperatorName ); + + CAOUserAfter::AfterLD( 100000 ); + + nwInfo->iNPName.Copy( _L("NpName") ); + + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + CAOUserAfter::AfterLD( 100000 ); + + nwInfo->iNPName.Copy( _L("") ); + nwInfo->iSPName.Copy( _L("OpName") ); + + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + CAOUserAfter::AfterLD( 100000 ); + + nwInfo->iRegistrationStatus = ENWRegisteredRoaming; + + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + CAOUserAfter::AfterLD( 100000 ); + + nwInfo->iServiceProviderNameDisplayReq &= !ENWDisplayPLMNRequired; + nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork; + + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + CAOUserAfter::AfterLD( 100000 ); + + nwInfo->iOperatorNameInfo.iName.Copy( _L("") ); + + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameUpdating ); + CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange ); + + + //wait for publish + CAOUserAfter::AfterLD( 2 * 1000000 ); + + TInt prio; + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameFlexiblePlmn; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzShort; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameProgrammableUcs2; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameHardcodedUcs2; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameHardcodedLatin; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameCountryMcn; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameMccMnc; + EUNIT_ASSERT( iNamePublisher->OperatorNamePriority( prio ) ); + + nwInfo->iOperatorNameInfo.iType = (RMmCustomAPI::TOperatorNameType)0xdeafdead; + EUNIT_ASSERT( !iNamePublisher->OperatorNamePriority( prio ) ); + } + +void UT_DevStaPlg2::TestMultiObserverL() + { + /* + RFs fss; + fss.Connect(); + RFile file; + iMultiObserver->AddObserverL( *this ); + iMultiObserver->AddObserverL( *this ); + iMultiObserver->Publish( *static_cast(iPublisher->Extension( KExtensionUidProperty )), 0, + file, 0 ); + iMultiObserver->Publish( *static_cast(iPublisher->Extension( KExtensionUidProperty )), 0, + _L8("dkorks"), 0 ); + iMultiObserver->Extension( TUid::Uid( 0 ) ); + iMultiObserver->CanPublish( *static_cast(iPublisher->Extension( KExtensionUidProperty )), + 0, 0 ); + fss.Close(); + EUNIT_ASSERT( iBufPublished ) + EUNIT_ASSERT( iFilePublished ) + */ + } + +void UT_DevStaPlg2::TestBTSAPPublisherL() + { + /* + iBTSAP->Subscribe( *this, + *static_cast(iPublisher->Extension( KExtensionUidProperty )), + *this, + *this ); + iBTSAP->RefreshL( 0, ETrue ); + iBTSAP->RefreshL( EAiDeviceStatusContentNetworkIdentity, EFalse ); + iBTSAP->RefreshL( EAiDeviceStatusContentNetworkIdentity, ETrue ); + iBTSAP->RefreshL( 0, EFalse ); + iBTSAP->RefreshL( ETrue ); + iBTSAP->RefreshL( EFalse ); + iBTSAP->RefreshContentWithPriorityL( EAiDeviceStatusContentNetworkIdentity, + EAiBTSAP ); + iBTSAP->RefreshContentWithPriorityL( 0, + EAiBTSAP ); + iBTSAP->RefreshContentWithPriorityL( EAiDeviceStatusContentNetworkIdentity, + 0 ); + */ + } + +/* +void UT_DevStaPlg2::TestProfilePublisherL() + { + + iProfilePublisher = CAiProfilePublisher::NewL(); + + CStubDataHolder::Instance()->SetCurrentProfileL(_L("General"),EProfileGeneralId); + iProfilePublisher->Subscribe( *this, + *static_cast(iPublisher->Extension( KExtensionUidProperty )), + *this, + *this ); + iProfilePublisher->RefreshL( ETrue ); + iProfilePublisher->RefreshL( EFalse ); + + iProfilePublisher->RefreshProfileL( ETrue ); + iProfilePublisher->RefreshProfileL( EFalse ); + + iProfilePublisher->RefreshL( EAiDeviceStatusContentProfileName, ETrue ); + iProfilePublisher->RefreshL( EAiDeviceStatusContentGeneralProfileName, EFalse ); + iProfilePublisher->RefreshL( EAiDeviceStatusContentNetworkIdentity, ETrue ); + + iProfilePublisher->RefreshContentWithPriorityL( EAiDeviceStatusContentNetworkIdentity, + EAiOfflineProfile ); + iProfilePublisher->RefreshContentWithPriorityL( 0, + EAiOfflineProfile ); + iProfilePublisher->RefreshContentWithPriorityL( EAiDeviceStatusContentNetworkIdentity, + 0 ); + delete iProfilePublisher; + + } + */ + +void UT_DevStaPlg2::TestDatePublisherL() + { + /* + iDatePublisher->Subscribe( *this, + *static_cast(iPublisher->Extension( KExtensionUidProperty )), + *this, + *this ); + HBufC* string; + string = iDatePublisher->GetDayNameStringLC( EMonday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + string = iDatePublisher->GetDayNameStringLC( ETuesday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + string = iDatePublisher->GetDayNameStringLC( EWednesday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + string = iDatePublisher->GetDayNameStringLC( EThursday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + string = iDatePublisher->GetDayNameStringLC( EFriday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + string = iDatePublisher->GetDayNameStringLC( ESaturday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + string = iDatePublisher->GetDayNameStringLC( ESunday, *CCoeEnv::Static() ); + EUNIT_ASSERT( string ) + CleanupStack::PopAndDestroy( string ); + */ + } + +void UT_DevStaPlg2::TestPluginL() + { + iLogoPublisher->Subscribe( *this, + *iPublisher, + *this, + *this ); + iDatePublisher->Subscribe( *this, + *iPublisher, + *this, + *this ); + iNamePublisher->Subscribe( *this, + *iPublisher, + *this, + *this ); + + iPublisher->SubscribeL( *this ); + iPublisher->Resume( CHsContentPublisher::EForeground ); + + EUNIT_ASSERT( !iPublisher->Extension( TUid::Uid(0xdeafd0de) ) ); + // EUNIT_ASSERT( iPublisher->Extension( KExtensionUidProperty ) ); + + EUNIT_ASSERT( iPublisher->GetProperty( CHsContentPublisher::EPublisherResources ) ); + + iPublisher->SetProperty( CHsContentPublisher::EPublisherResources, NULL ); + iLogoPublisher->RefreshL( 0xdee, ETrue ); + iLogoPublisher->RefreshL( 0xdee, EFalse ); + iLogoPublisher->RefreshL( EAiDeviceStatusContentNetworkIdentity, EFalse ); + iLogoPublisher->RefreshL( EAiDeviceStatusContentNetworkIdentity, ETrue ); + iLogoPublisher->HandleNotifyInt( 0xd00, 6 ); + iLogoPublisher->HandleNotifyInt( 0, 6 ); + iLogoPublisher->HandleNotifyInt( KSettingsDisplayOperatorLogo, 6 ); + + _LIT( KOperatorName, "ProgName" ); + + TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo(); + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull; + nwInfo->iOperatorNameInfo.iName.Copy( KOperatorName ); + nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork; + nwInfo->iServiceProviderNameDisplayReq |= ENWDisplayPLMNRequired; + nwInfo->iServiceProviderNameDisplayReq |= ENWDisplaySPNRequired; + nwInfo->iStatus = ENWStatusCurrent; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iNPName.Copy(_L("NPN")); + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameFlexiblePlmn; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull; + nwInfo->iRegistrationStatus = ENWRegisteredRoaming; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iNPName.Copy(_L("")); + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameFlexiblePlmn; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameMccMnc; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameCountryMcn; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameProgrammableUcs2; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameProgrammableLatin; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameHardcodedUcs2; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameHardcodedLatin; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameMccMnc; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + nwInfo->iOperatorNameInfo.iType = (RMmCustomAPI::TOperatorNameType)0xdeafdead; + iNamePublisher->ShowNetworkIdentityNameL( ETrue ); + } + +#include "contentobserver.h" + + +void UT_DevStaPlg2::Reset() + { + iInternalCache.ResetAndDestroy(); + } + + +CContentCache* UT_DevStaPlg2::GetContent( TInt aContentId, TBool aClean ) + { + const TInt count( iInternalCache.Count() ); + for( TInt i( 0 ); i < count; i++ ) + { + if( iInternalCache[i]->iId == aContentId ) + { + if( !aClean && iInternalCache[i]->iClean) + { + continue; + } + return iInternalCache[i]; + } + } + + return NULL; + } + + +CContentCache* UT_DevStaPlg2::GetLastContent( TInt aContentId, TBool aClean ) + { + const TInt count( iInternalCache.Count() ); + for( TInt i( count - 1 ); i >= 0; i-- ) + { + if( iInternalCache[i]->iId != aContentId ) + { + return NULL; + } + if( !aClean && iInternalCache[i]->iClean) + { + continue; + } + return iInternalCache[i]; + } + return NULL; + } + + +TInt UT_DevStaPlg2::StartTransaction(TInt /*aTxId*/) + { + return 0; + } + + +TInt UT_DevStaPlg2::Commit(TInt /*aTxId*/) + { + return 0; + } + + +TInt UT_DevStaPlg2::CancelTransaction(TInt /*aTxId*/) + { + return 0; + } + + +TBool UT_DevStaPlg2::CanPublish(CHsContentPublisher& /*aPlugin*/, TInt /*aContent*/, TInt /*aIndex*/ ) + { + return EFalse; + } + + void UT_DevStaPlg2::TryToPublishL( MAiPublisherBroadcaster& /*aBroadcaster*/, + TInt aContent, + TInt aResource, + TInt aPriority ) + { + Publish( *((CHsContentPublisher*)(0x0)), + aContent, + aResource, + aPriority ); + } + void UT_DevStaPlg2::TryToPublishL( MAiPublisherBroadcaster& /*aBroadcaster*/, + TInt aContent, + const TDesC16& aText, + TInt aPriority ) + { + Publish( *((CHsContentPublisher*)(0x0)), + aContent, + aText, + aPriority ); + } + void UT_DevStaPlg2::TryToPublishL( MAiPublisherBroadcaster& /*aBroadcaster*/, + TInt aContent, + const TDesC8& aBuf, + TInt aPriority ) + { + Publish( *((CHsContentPublisher*)(0x0)), + aContent, + aBuf, + aPriority ); + } + void UT_DevStaPlg2::TryToCleanL( MAiPublisherBroadcaster& /*aBroadcaster*/, + TInt aContent, + TInt aPriority ) + { + Clean( *((CHsContentPublisher*)(0x0)), + aContent, + aPriority ); + } + +TInt UT_DevStaPlg2::Publish(CHsContentPublisher& /*aPlugin*/, TInt aContent, TInt aResource, TInt aIndex ) + { + RDebug::Print( _L("Publish(%d, %d, %d)"), aContent, aResource, aIndex ); + CContentCache* cache = new( ELeave )CContentCache; + CleanupStack::PushL( cache ); + cache->iId = aContent; + cache->iResource = aResource; + cache->iIndex = aIndex; + User::LeaveIfError( iInternalCache.Append( cache ) ); + CleanupStack::Pop( cache ); + return 0; + } + +TInt UT_DevStaPlg2::Publish(CHsContentPublisher& /*aPlugin*/, TInt aContent, const TDesC16& aText, TInt aIndex ) + { + RDebug::Print( _L("Publish(%d, \"%S\", %d)"), aContent, &aText, aIndex ); + CContentCache* cache = new( ELeave )CContentCache; + CleanupStack::PushL( cache ); + cache->iId = aContent; + cache->iText = aText.AllocL(); + cache->iIndex = aIndex; + User::LeaveIfError( iInternalCache.Append( cache ) ); + CleanupStack::Pop( cache ); + return 0; + } + + +TInt UT_DevStaPlg2::Publish(CHsContentPublisher& /*aPlugin*/, TInt aContent, const TDesC8& aBuf, TInt aIndex ) + { + iBufPublished = ETrue; + RDebug::Print( _L("Publish(%d, Buf.Len=%d, %d)"), aContent, aBuf.Length(), aIndex ); + CContentCache* cache = new( ELeave )CContentCache; + CleanupStack::PushL( cache ); + cache->iId = aContent; + cache->iData = aBuf.AllocL(); + cache->iIndex = aIndex; + User::LeaveIfError( iInternalCache.Append( cache ) ); + CleanupStack::Pop( cache ); + return 0; + } + + +TInt UT_DevStaPlg2::Publish(CHsContentPublisher& /*aPlugin*/, TInt aContent, RFile& /*aFile*/, TInt aIndex ) + { + iFilePublished = ETrue; + CContentCache* cache = new( ELeave )CContentCache; + CleanupStack::PushL( cache ); + cache->iId = aContent; + cache->iIndex = aIndex; + User::LeaveIfError( iInternalCache.Append( cache ) ); + CleanupStack::Pop( cache ); + return 0; + } + + +TInt UT_DevStaPlg2::Clean(CHsContentPublisher& /*aPlugin*/, TInt aContent, TInt aIndex) + { + RDebug::Print( _L("Clean(%d, %d)"), aContent, aIndex ); + CContentCache* cache = new( ELeave )CContentCache; + CleanupStack::PushL( cache ); + cache->iId = aContent; + cache->iIndex = aIndex; + cache->iClean = ETrue; + User::LeaveIfError( iInternalCache.Append( cache ) ); + CleanupStack::Pop( cache ); + return 0; + } + +// --------------------------------------------------------------------------- +// SetProperty +// --------------------------------------------------------------------------- +// +TInt UT_DevStaPlg2::SetProperty( CHsContentPublisher& /*aPlugin*/, + const TDesC8& /*aElementId*/, + const TDesC8& /*aPropertyName*/, + const TDesC8& /*aPropertyValue*/ ) +{ + return KErrNone; +} + +// --------------------------------------------------------------------------- +// SetProperty +// --------------------------------------------------------------------------- +// +TInt UT_DevStaPlg2::SetProperty( CHsContentPublisher& /*aPlugin*/, + const TDesC8& /*aElementId*/, + const TDesC8& /*aPropertyName*/, + const TDesC8& /*aPropertyValue*/, + MAiContentObserver::TValueType /*aValueType*/ ) +{ + return KErrNone; +} + + +TAny* UT_DevStaPlg2::Extension(TUid /*aUid*/) + { + return NULL; + } + +TBool UT_DevStaPlg2::RequiresSubscription( const THsPublisherInfo& aPublisherInfo ) const + { + return EFalse; + } + + +// END OF FILE + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_DevStaPlg2, + "Device Status Plugin test cases", + "MODULE" ) + +EUNIT_TEST( + "Test op logo publish", + "Add tested class name here", + "Add tested function name here", + "FUNCTIONALITY", + SetupL, TestOperatorLogoPublisherL, Teardown) + +EUNIT_TEST( + "Test op name publish", + "Add tested class name here", + "Add tested function name here", + "FUNCTIONALITY", + SetupL, TestOperatorProgNamePublisherL, Teardown) + +EUNIT_TEST( + "Test multiobserver", + "Add tested class name here", + "Add tested function name here", + "FUNCTIONALITY", + SetupL, TestMultiObserverL, Teardown) + +EUNIT_TEST( + "Test BTSAP", + "Add tested class name here", + "Add tested function name here", + "FUNCTIONALITY", + SetupL, TestBTSAPPublisherL, Teardown) + +EUNIT_TEST( + "Test date publisher", + "Add tested class name here", + "Add tested function name here", + "FUNCTIONALITY", + SetupL, TestDatePublisherL, Teardown) + +EUNIT_TEST( + "Test date plugin", + "Add tested class name here", + "Add tested function name here", + "FUNCTIONALITY", + SetupL, TestPluginL, Teardown) + +EUNIT_END_TEST_TABLE + +// END OF FILE