idlefw/tsrc/devicestatusplugin/mt_devstaplg/MT_DevStaPlg.cpp
branchRCL_3
changeset 28 053c6c7c14f3
child 31 8baec10861af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/idlefw/tsrc/devicestatusplugin/mt_devstaplg/MT_DevStaPlg.cpp	Thu Aug 19 10:13:44 2010 +0300
@@ -0,0 +1,1046 @@
+/*
+* 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
+#include "MT_DevStaPlg.h"
+#include "hscontentpublisher.h"
+#include "aidevicestatuscontentmodel.h"
+#include "caouserafter.h"
+#include "logotools.h"
+#include "testingtools.h"
+#include "contentobserver.h"
+#include "ainativeuiplugins.h"
+#include "aidevicestatusplugin.h"
+#include <aicontentrequest.h>
+#include <aidevstaplgres.rsg>
+
+//  EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#include <digia/eunit/ceunitalloctestcasedecorator.h>
+#include <profile.hrh>
+#include <mprofilechangeobserver.h>
+#include <e32cmn.h>
+#include <gulicon.h>
+
+//  INTERNAL INCLUDES
+
+const TInt KCountryCode = 244;
+const TInt KNetworkId = 91;
+
+// CONSTRUCTION
+MT_DevStaPlg* MT_DevStaPlg::NewL()
+    {
+    MT_DevStaPlg* self = MT_DevStaPlg::NewLC();
+    CleanupStack::Pop();
+
+    return self;
+    }
+
+MT_DevStaPlg* MT_DevStaPlg::NewLC()
+    {
+    MT_DevStaPlg* self = new( ELeave ) MT_DevStaPlg();
+    CleanupStack::PushL( self );
+
+    self->ConstructL();
+
+    return self;
+    }
+
+// Destructor (virtual by CBase)
+MT_DevStaPlg::~MT_DevStaPlg()
+    {
+	//iLibrary.Close();
+    }
+
+// Default constructor
+MT_DevStaPlg::MT_DevStaPlg()
+    {
+    }
+
+// Second phase construct
+void MT_DevStaPlg::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+
+    //User::LeaveIfError( iLibrary.Load( _L("AiDevStaPlg.dll") ) );
+
+    //create test cases;
+
+    }
+
+
+void MT_DevStaPlg::SetupL(  )
+    {
+//    __UHEAP_MARK;
+    CStubDataHolder::InstanceL();
+    iCache = &CContentObserver::InstanceL();
+
+    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 );
+    }
+
+void MT_DevStaPlg::SetupEmptyL()
+    {
+//    __UHEAP_MARK;
+    }
+
+
+
+
+void MT_DevStaPlg::Teardown(  )
+    {
+    if( iPublisher )
+        {
+        iPublisher->Stop( CHsContentPublisher::ESystemShutdown );
+        delete iPublisher;
+        iPublisher = NULL;        
+        }
+        
+    /*if( iUtils )
+    	{
+    	delete iUtils;
+    	iUtils =NULL;
+    	}*/
+        
+    if( iCache )
+        {
+        iCache->Reset();
+        iCache->Release();
+        iCache = NULL;        
+        }
+
+    CStubDataHolder::Release();
+    //delete iTestObserver;
+    //REComSession::FinalClose();
+	#if _BullseyeCoverage
+	    cov_write();
+    #endif
+    }
+
+void MT_DevStaPlg::TestPropertyL()
+    { 
+   	EUNIT_ASSERT( iPublisher );
+
+    TAny* result = iPublisher->GetProperty( CHsContentPublisher::EPublisherContent );
+    EUNIT_ASSERT( result );
+    
+    MAiContentItemIterator* iter = static_cast<MAiContentItemIterator*>( result );
+    EUNIT_ASSERT( iter );
+    }
+
+void MT_DevStaPlg::TestOperatorLogoPublisherL()
+    {
+    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->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredRoaming;
+    //TNWInfo nwInfo;
+    
+    // CStubDataHolder::Instance()->SetNWMessageObserver(*iTestObserver, nwInfo);
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );   
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    
+    //wait for publish
+    CAOUserAfter::AfterLD( 2 * 1000000 );
+
+    //CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    // EUNIT_ASSERT(cache);
+
+    /*
+    TPckgBuf<CGulIcon*> logoBuf;
+    logoBuf.Copy( *cache->iData );
+    
+    //EUNIT_ASSERT( cache.iId );
+    EUNIT_ASSERT( logoBuf()->Bitmap() );
+    EUNIT_ASSERT( logoBuf()->Mask() );
+    */
+    
+    RFbsSession::Disconnect();
+    }
+
+
+void MT_DevStaPlg::TestOperatorProgNamePublisherL()
+    {
+    _LIT( KOperatorName, "ProgName" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull;
+    nwInfo->iOperatorNameInfo.iName.Copy( KOperatorName );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredRoaming;
+    //TNWInfo nwInfo;
+    //CStubDataHolder::Instance()->SetNWMessageObserver(*iTestObserver, nwInfo);
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );   
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+
+    //wait for publish
+    CAOUserAfter::AfterLD( 2 * 1000000 );
+
+                                                 
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+    //CContentCache* cache = iCache->GetContent( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+
+    EUNIT_ASSERT(cache);
+
+    EUNIT_ASSERT( *cache->iText == KOperatorName );
+    }
+
+
+void MT_DevStaPlg::TestOperatorNetinfoNamePublisher_LongL()
+    {
+    // BUG IN THE CODE, WILL NOT WORK UNTIL IT'S FIXED
+    _LIT( KOperatorNameLong, "OPERATOR II" );
+    _LIT( KOperatorName, "KEKS" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iLongName.Copy( KOperatorName );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredRoaming;
+    //nwInfo->iOperatorNameInfo.iName=KOperatorNameLong;
+
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );   
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+
+    //wait for publish
+    CAOUserAfter::AfterLD( 2 * 1000000 );
+
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    EUNIT_ASSERT(cache);
+
+    EUNIT_ASSERT( *cache->iText == KOperatorNameLong );
+    }
+
+void MT_DevStaPlg::TestOperatorNetinfoNamePublisher_ShortL()
+    {
+    // BUG IN THE CODE, WILL NOT WORK UNTIL IT'S FIXED
+    _LIT( KOperatorNameShort, "OPERATOR" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iShortName.Copy( KOperatorNameShort );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredRoaming;
+    
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );   
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+    
+    //wait for publish
+    CAOUserAfter::AfterLD( 2 * 1000000 );
+
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentNetworkIdentity );
+
+    EUNIT_ASSERT(cache);
+    
+    EUNIT_ASSERT( *cache->iText == KOperatorNameShort );
+    }
+
+void MT_DevStaPlg::TestOperatorNetinfoNamePublisher_TagL()
+    {
+    // BUG IN THE CODE, WILL NOT WORK UNTIL IT'S FIXED
+    _LIT( KOperatorNameTag, "OP2" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iDisplayTag.Copy( KOperatorNameTag );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredRoaming;
+
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );   
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+
+    //wait for publish
+    CAOUserAfter::AfterLD( 2 * 1000000 );
+
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    EUNIT_ASSERT(cache);
+
+    EUNIT_ASSERT( *cache->iText == KOperatorNameTag );
+    }
+    
+    
+void MT_DevStaPlg::TestOperatorProviderNamePublisher_InSPDINoPLMNL()
+    {    
+    _LIT( KOperatorProviderName, "Provider" );
+
+    // Delete logo, so it will not be published.
+    // DeleteOTALogoL(KCountryCode, KNetworkId);
+    
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iSPName.Copy( KOperatorProviderName );
+    nwInfo->iServiceProviderNameDisplayReq |= ENWDisplaySPNRequired;
+//    nwInfo->iServiceProviderNameDisplayReq |= ENWDisplayPLMNRequired;
+    nwInfo->iCountryCode.Format( _L("%i"), KCountryCode );
+    nwInfo->iNetworkId.Format( _L("%i"), KNetworkId );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork;
+    EncodePLMNField( nwInfo->iPLMNField, ETrue, KCountryCode, KNetworkId );
+    
+
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+
+    //wait for publish
+    CAOUserAfter::AfterLD( 500000 );
+
+    //CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentNetworkIdentity );
+    
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    EUNIT_ASSERT( cache );
+
+    EUNIT_ASSERT( *cache->iText == KOperatorProviderName );
+    
+    iPublisher->Suspend( CHsContentPublisher::EBackground );
+    }
+    
+void MT_DevStaPlg::TestOperatorProviderNamePublisher_InSPDIPLMNL()
+    {    
+    _LIT( KOperatorProviderName, "Provider" );
+
+    // Delete logo, so it will not be published.
+    // DeleteOTALogoL(KCountryCode, KNetworkId);
+    
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iSPName.Copy( KOperatorProviderName );
+    nwInfo->iServiceProviderNameDisplayReq |= ENWDisplaySPNRequired;
+    nwInfo->iServiceProviderNameDisplayReq |= ENWDisplayPLMNRequired;
+    nwInfo->iCountryCode.Format( _L("%i"), KCountryCode );
+    nwInfo->iNetworkId.Format( _L("%i"), KNetworkId );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork;
+    EncodePLMNField( nwInfo->iPLMNField, ETrue, KCountryCode, KNetworkId );
+    
+
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );
+
+    //wait for publish
+    CAOUserAfter::AfterLD( 500000 );
+
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );    
+
+    EUNIT_ASSERT(cache);
+
+    // EUNIT_ASSERT( *cache->iText == KOperatorProviderName );
+    
+    iCache->Reset();
+    
+    //wait for clean
+    CAOUserAfter::AfterLD( 3 * 1000000 );
+
+    /*
+    cache = iCache->GetLastContent( EAiDeviceStatusContentNetworkIdentity, ETrue );
+    EUNIT_ASSERT( cache->iClean );
+    */
+    
+    iPublisher->Suspend( CHsContentPublisher::EBackground );
+    }
+    
+    
+    
+    
+void MT_DevStaPlg::TestBTSAPPublisherL()
+    {    
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+    
+    //fake BTSAP change
+    
+    ChangeBTSAPValueL( EBTSapConnected );
+    
+    CAOUserAfter::AfterLD( 1000000 );
+                               
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    EUNIT_ASSERT( cache );
+
+    EUNIT_ASSERT( cache->iResource == R_ACTIVEIDLE_BT_SIM_ACCESS_PROFILE_STRING );
+
+    iCache->Reset();
+                                
+    DeleteBTSAPKey();
+                                
+    CAOUserAfter::AfterLD( 1000000 );
+    
+    cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity, ETrue );
+
+    EUNIT_ASSERT( cache );
+
+    iPublisher->Suspend( CHsContentPublisher::EBackground );
+    }
+    
+    
+void MT_DevStaPlg::TestSimRegPublisherL()
+    {
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+    
+    EmulateSimRegFailEvent();
+    
+    CAOUserAfter::AfterLD( 1000000 );
+                               
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentSIMRegStatus );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    EUNIT_ASSERT( cache->iResource == EAiDeviceStatusResourceSIMRegFail );
+    
+    iCache->Reset();
+                                
+    iPublisher->Suspend( CHsContentPublisher::EBackground );
+    }
+    
+void MT_DevStaPlg::TestHCZPublisherL()
+    {    
+    _LIT( KZoneName, "ZoneName" );
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+    
+    EmulateHCZEvent( KZoneName );
+    
+    CAOUserAfter::AfterLD( 1000000 );
+                               
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentVHZText );
+
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    EUNIT_ASSERT( *cache->iText == KZoneName );
+    
+    iCache->Reset();
+                                
+    iPublisher->Suspend( CHsContentPublisher::EBackground );
+    }
+    
+void MT_DevStaPlg::TestCUGPublisherL()
+    {    
+    _LIT( KCUGMessage, "Group 7" );
+    const TInt KCUGIndex = 7;
+    
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+    
+    EmulateCUGEvent( KCUGIndex );
+    
+    CAOUserAfter::AfterLD( 1000000 );
+                               
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentCUGIndicator );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    EUNIT_ASSERT( *cache->iText == KCUGMessage );
+    
+    iCache->Reset();
+                                
+    iPublisher->Suspend( CHsContentPublisher::EBackground );
+    }
+    
+void MT_DevStaPlg::TestMCNPublisherL()
+    {
+    _LIT( KMCNMessage, "MCN" );
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+    
+    EmulateMCNEvent( KMCNMessage );
+    
+    CAOUserAfter::AfterLD( 1000000 );
+                               
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentMCNIndicator );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    EUNIT_ASSERT( *cache->iText == KMCNMessage );                               
+    
+    iCache->Reset();    
+    
+    iPublisher->Suspend( CHsContentPublisher::EBackground );    
+    }
+
+/*
+void MT_DevStaPlg::TestContentRequest1L()
+    {    
+    _LIT( KProfile, "Outdoor" );
+    
+    RFbsSession::Connect();
+    
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+    
+    CStubDataHolder::Instance()->SetCurrentProfileL( KProfile, EProfileGeneralId );
+
+    StoreOTALogoL( KCountryCode, KNetworkId );
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iCountryCode.Format( _L("%i"), KCountryCode );
+    nwInfo->iNetworkId.Format( _L("%i"), KNetworkId );
+	
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );    
+    
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }    
+		/*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+
+		
+    iCache->Reset();
+    RFbsSession::Disconnect();
+    }
+*/
+
+void MT_DevStaPlg::TestContentRequest2L()
+    {
+    _LIT( KOperatorProviderName, "Provider" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iSPName.Copy( KOperatorProviderName );
+    nwInfo->iServiceProviderNameDisplayReq |= ENWDisplaySPNRequired;
+    nwInfo->iCountryCode.Format( _L("%i"), KCountryCode );
+    nwInfo->iNetworkId.Format( _L("%i"), KNetworkId );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork;
+    EncodePLMNField( nwInfo->iPLMNField, ETrue, KCountryCode, KNetworkId );
+    
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+        */
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest3L()
+    {
+    _LIT( KOperatorName, "ProgName" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull;
+    nwInfo->iOperatorNameInfo.iName.Copy( KOperatorName );
+    nwInfo->iStatus = ENWStatusCurrent;
+    nwInfo->iRegistrationStatus = ENWRegisteredOnHomeNetwork;
+    
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    // shouldn't have content...
+    // EUNIT_ASSERT( !cache );
+
+    // ...until now:
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkInfoChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkRegistrationStatusChange );
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageServiceProviderNameChange );    
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageProgrammableOperatorInfoChange );
+    
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );    
+    
+    // request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+    
+    EUNIT_ASSERT( cache );
+
+    // EUNIT_ASSERT( *cache->iText == KOperatorName );
+    iCache->Reset();
+    }
+         
+/*
+void MT_DevStaPlg::TestContentRequest4L()
+    {
+    _LIT( KOperatorNameTag, "NetInfo" );
+    _LIT( KProfGeneral, "General" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iDisplayTag.Copy( KOperatorNameTag );
+    
+    CStubDataHolder::Instance()->SetCurrentProfileL( KProfGeneral, EProfileGeneralId );
+        
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    EUNIT_ASSERT( cache );
+
+    iCache->Reset();
+    }
+         */
+
+void MT_DevStaPlg::TestContentRequest5L()
+    {    
+    _LIT( KOperatorName, "ProgName" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    TNWInfo* nwInfo = CStubDataHolder::Instance()->NWInfo();
+    nwInfo->iOperatorNameInfo.iType = RMmCustomAPI::EOperatorNameNitzFull;
+    nwInfo->iOperatorNameInfo.iName.Copy( KOperatorName );
+    
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );    
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    */
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    // shouldn't have content...
+    // EUNIT_ASSERT( !cache );
+
+    // ...until now:
+    CStubDataHolder::Instance()->NWMessageObserver()->HandleNetworkMessage( MNWMessageObserver::ENWMessageNetworkProviderNameChange  );
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+
+    cache = iCache->GetContent( EAiDeviceStatusContentNetworkIdentity );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest6L()
+    {
+    _LIT( KProfile, "Outdoor" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    CStubDataHolder::Instance()->SetCurrentProfileL( KProfile, EProfileOutdoorId );
+        
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentProfileName );
+    */
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentProfileName );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest7L()
+    {    
+    _LIT( KProfile, "General" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    CStubDataHolder::Instance()->SetCurrentProfileL( KProfile, EProfileGeneralId );
+
+		/*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentGeneralProfileName );
+    */
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentGeneralProfileName );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest8L()
+    {
+    _LIT( KProfile, "Offline" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    CStubDataHolder::Instance()->SetCurrentProfileL( KProfile, EProfileOffLineId );
+        
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    */
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentNetworkIdentity );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest9L()
+    {    
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );    
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    */
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    request->RefreshContent( EAiDeviceStatusContentDate ); 
+    // request->RefreshContent( EAiDeviceStatusContentDate );
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentDate );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest10L()
+    {
+    _LIT( KProfile, "Silent" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    CStubDataHolder::Instance()->SetCurrentProfileL( KProfile, EProfileSilentId );
+    
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    */
+    
+    // EAiDeviceStatusContentProfileName and EAiDeviceStatusContentSilentIndicator
+    // are published in same class
+    // request->RefreshContent( EAiDeviceStatusContentProfileName );
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentSilentIndicator );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest13L()
+    {    
+    _LIT( KZoneName, "ZoneName" );
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    EmulateHCZEvent( KZoneName );
+    
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );    
+    request->RefreshContent( EAiDeviceStatusContentVHZIndicator );     
+    
+    CContentCache* cache = iCache->GetContent( EAiDeviceStatusContentVHZText );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest14L()
+    {    
+    _LIT( KCUGMessage, "Group 7" );
+    const TInt KCUGIndex = 7;
+
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    EmulateCUGEvent( KCUGIndex );
+    
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentCUGIndicator );
+    */
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );    
+    request->RefreshContent( EAiDeviceStatusContentCUGIndicator );
+    
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentCUGIndicator );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    EUNIT_ASSERT( *cache->iText == KCUGMessage );
+
+    iCache->Reset();
+    }
+         
+
+void MT_DevStaPlg::TestContentRequest15L()
+    {    
+    iPublisher->Resume( CHsContentPublisher::EForeground );
+
+    ChangeBTSAPValueL( EBTSapConnected );
+    
+    /*
+    MAiPropertyExtension* ext = static_cast<MAiPropertyExtension*>( iPublisher->Extension( KExtensionUidProperty ) ); 
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ext->GetPropertyL( EAiContentRequest ) );
+    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    */
+    TAny* ptr = iPublisher->GetProperty( CHsContentPublisher::EContentRequest );
+    MAiContentRequest* request = static_cast<MAiContentRequest*>( ptr );    
+    request->RefreshContent( EAiDeviceStatusContentNetworkIdentity );
+    
+    CContentCache* cache = iCache->GetLastContent( EAiDeviceStatusContentNetworkIdentity );
+
+    if( !cache )
+        {
+        User::Leave( KErrNoMemory );
+        }
+
+    iCache->Reset();
+    DeleteBTSAPKey();
+    }
+         
+         
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    MT_DevStaPlg,
+    "Device Status Plugin test cases",
+    "MODULE" )
+
+/*
+EUNIT_TEST(
+    "Test initializing",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupEmptyL, TestL, Teardown)
+*/
+    
+EUNIT_TEST(
+    "Operator log publisher",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestOperatorLogoPublisherL, Teardown)    
+
+EUNIT_TEST(
+    "Test plugin property",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestPropertyL, Teardown)
+
+/*
+EUNIT_TEST(
+    "Publisher - silent & offline",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestProfilePublisher2L, Teardown)
+*/
+    
+EUNIT_TEST(
+    "Test SimReg publisher",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestSimRegPublisherL, Teardown)
+
+EUNIT_TEST(
+    "Test HCZ publisher",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestHCZPublisherL, Teardown)
+
+EUNIT_TEST(
+    "Test CUG publisher",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestCUGPublisherL, Teardown)
+
+EUNIT_TEST(
+    "Test MCN publisher",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestMCNPublisherL, Teardown)
+       
+EUNIT_TEST(
+    "Cont. Request 2",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest2L, Teardown)
+    
+EUNIT_TEST(
+    "Cont. Request 3",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest3L, Teardown)   
+    
+EUNIT_TEST(
+    "Cont. Request 5",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest5L, Teardown)  
+    
+EUNIT_TEST(
+    "Cont. Request 9",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest9L, Teardown)   
+
+EUNIT_TEST(
+    "Cont. Request 13",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest13L, Teardown) 
+    
+EUNIT_TEST(
+    "Cont. Request 14",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest14L, Teardown) 
+    
+EUNIT_TEST(
+    "Cont. Request 15",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestContentRequest15L, Teardown)     
+
+EUNIT_TEST(
+    "SPDI show PLMN",
+    "Add tested class name here",
+    "Add tested function name here",
+    "FUNCTIONALITY",
+    SetupL, TestOperatorProviderNamePublisher_InSPDIPLMNL, Teardown)    
+
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE