--- /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 <hscontentpublisher.h>
+#include "aidevicestatuscontentmodel.h"
+#include "caouserafter.h"
+#include "logotools.h"
+#include "testingtools.h"
+#include "contentobserver.h"
+#include "ainativeuiplugins.h"
+#include <aicontentrequest.h>
+#include "ainwidpriorities.h"
+
+// EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#include <digia/eunit/ceunitalloctestcasedecorator.h>
+#include <settingsinternalcrkeys.h>
+#include <profile.hrh>
+#include <mprofilechangeobserver.h>
+#include <e32cmn.h>
+#include <gulicon.h>
+
+#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<MAiPropertyExtension*>(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<CGulIcon*> 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<CHsContentPublisher*>(iPublisher->Extension( KExtensionUidProperty )), 0,
+ file, 0 );
+ iMultiObserver->Publish( *static_cast<CHsContentPublisher*>(iPublisher->Extension( KExtensionUidProperty )), 0,
+ _L8("dkorks"), 0 );
+ iMultiObserver->Extension( TUid::Uid( 0 ) );
+ iMultiObserver->CanPublish( *static_cast<CHsContentPublisher*>(iPublisher->Extension( KExtensionUidProperty )),
+ 0, 0 );
+ fss.Close();
+ EUNIT_ASSERT( iBufPublished )
+ EUNIT_ASSERT( iFilePublished )
+ */
+ }
+
+void UT_DevStaPlg2::TestBTSAPPublisherL()
+ {
+ /*
+ iBTSAP->Subscribe( *this,
+ *static_cast<CHsContentPublisher*>(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<CHsContentPublisher*>(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<CHsContentPublisher*>(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