localconnectivityservice/lcstylustap/tsrc/LcStylusTapTest/src/LcStylusTapTestBlocks.cpp
branchRCL_3
changeset 40 52a167391590
parent 0 c3e98f10fcf4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/localconnectivityservice/lcstylustap/tsrc/LcStylusTapTest/src/LcStylusTapTestBlocks.cpp	Wed Sep 01 12:20:40 2010 +0100
@@ -0,0 +1,652 @@
+/*
+* Copyright (c) 2006 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:  Implementation
+*
+*/
+
+
+
+
+// [INCLUDE FILES] - do not remove
+#include <e32svr.h>
+#include <StifParser.h>
+#include <Stiftestinterface.h>
+#include <avkon.hrh>
+//tests headers
+#include "LcStylusTapTest.h"
+
+// EXTERNAL DATA STRUCTURES
+//extern  ?external_data;
+
+// EXTERNAL FUNCTION PROTOTYPES  
+//extern ?external_function( ?arg_type,?arg_type );
+
+// CONSTANTS
+//const ?type ?constant_var = ?constant;
+_LIT(KBlueTooth, "Bluetooth");
+_LIT(KUSB, "USB");
+_LIT(KIRDA, "Infrared");
+
+// MACROS
+//#define ?macro ?macro_def
+
+// LOCAL CONSTANTS AND MACROS
+//const ?type ?constant_var = ?constant;
+//#define ?macro_name ?macro_def
+
+// MODULE DATA STRUCTURES
+//enum ?declaration
+//typedef ?declaration
+
+// LOCAL FUNCTION PROTOTYPES
+//?type ?function_name( ?arg_type, ?arg_type );
+
+// FORWARD DECLARATIONS
+//class ?FORWARD_CLASSNAME;
+
+// ============================= LOCAL FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// ?function_name ?description.
+// ?description
+// Returns: ?value_1: ?description
+//          ?value_n: ?description_line1
+//                    ?description_line2
+// -----------------------------------------------------------------------------
+//
+/*
+?type ?function_name(
+    ?arg_type arg,  // ?description
+    ?arg_type arg)  // ?description
+    {
+
+    ?code  // ?comment
+
+    // ?comment
+    ?code
+    }
+*/
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::Delete
+// Delete here all resources allocated and opened from test methods. 
+// Called from destructor. 
+// -----------------------------------------------------------------------------
+//
+void CLcStylusTapTest::Delete() 
+    {
+    
+    }
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::RunMethodL
+// Run specified method. Contains also table of test mothods and their names.
+// -----------------------------------------------------------------------------
+//
+TInt CLcStylusTapTest::RunMethodL( 
+    CStifItemParser& aItem ) 
+    {
+
+    static TStifFunctionInfo const KFunctions[] =
+        {  
+        //ADD NEW ENTRY HERE
+        // [test cases entries] - Do not remove
+		ENTRY( "ExecuteApiTestBlock", CLcStylusTapTest::ExecuteApiTestBlock ),
+        ENTRY( "ExecuteModuleTestBlock", CLcStylusTapTest::ExecuteModuleTestBlock ),
+        ENTRY( "ExecuteBranchTestBlock", CLcStylusTapTest::ExecuteBranchTestBlock ),
+        };
+
+    const TInt count = sizeof( KFunctions ) / 
+                        sizeof( TStifFunctionInfo );
+
+    return RunInternalL( KFunctions, count, aItem );
+
+    }
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::GetTestBlockParamsL
+// -----------------------------------------------------------------------------
+
+void CLcStylusTapTest::GetTestBlockParamsL( CStifItemParser& aItem )
+    {
+    STIF_LOG( ">>> GetTestBlockParamsL" );
+    
+    // Add new test block branches below, get all required test parameters    
+    if ( !iTestBlockParams.iTestBlockName.Compare( _L( "ExampleTestL" ) ) )
+        {              
+        User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption1 ) );        
+        User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption2 ) );
+        User::LeaveIfError( aItem.GetNextInt( iTestBlockParams.iTestIntOption1 ) );        
+        User::LeaveIfError( aItem.GetNextChar( iTestBlockParams.iTestCharOption1 ) );        
+        }
+    else if ( !iTestBlockParams.iTestBlockName.Compare( _L( "CreateLcStylusTap" ) ) )
+		{              
+		User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption1 ) );       
+        User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption2 ) );
+		}
+    else if ( !iTestBlockParams.iTestBlockName.Compare( _L( "TextTapTest" ) ) )
+		{              
+		User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption1 ) );       
+        User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption2 ) );
+		}
+    else if ( !iTestBlockParams.iTestBlockName.Compare( _L( "CallHandleIndicatorTap" ) ) )
+		{              
+		User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption1 ) );      
+        User::LeaveIfError( aItem.GetNextString( iTestBlockParams.iTestOption2 ) );
+		}
+    else//
+        {
+        STIF_LOG( "Test type: not found" );
+        User::Leave( KErrNotFound );
+        }
+    STIF_LOG( "<<< GetTestBlockParamsL" );
+    }
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::ExecuteApiTestBlock
+// -----------------------------------------------------------------------------
+
+TInt CLcStylusTapTest::ExecuteApiTestBlock( CStifItemParser& aItem )
+    {
+	STIF_LOG( ">>>ExecuteApiTestBlock" );
+	
+	TInt res;
+    TLcStylusTapTestResult testResult = ETestCaseFailed;
+	
+    TRAP( res, DoExecuteApiTestBlockL( aItem, testResult ) );
+    if ( res != KErrNone )
+        {
+        STIF_LOG1( "DoExecuteApiTestBlockL error: %d", res );
+        return res;
+        }
+    
+    STIF_ASSERT_EQUALS( ETestCasePassed, testResult );
+    STIF_LOG( "Test case passed" );
+	STIF_LOG( "<<<ExecuteApiTestBlock" );
+	
+    return KErrNone;
+    }
+	
+	
+void CLcStylusTapTest::DoExecuteApiTestBlockL( CStifItemParser& aItem, TLcStylusTapTestResult& aTestResult )
+    {
+	STIF_LOG( ">>>DoExecuteApiTestBlockL" );
+
+	User::LeaveIfError( aItem.GetString( _L( "ExecuteApiTestBlock" ), iTestBlockParams.iTestBlockName ) );
+	STIF_LOG1( "Api test type: %S", &iTestBlockParams.iTestBlockName );
+	
+	GetTestBlockParamsL( aItem );
+	
+	// Add new API test block branches with optional test parameters here	
+    if ( !iTestBlockParams.iTestBlockName.Compare( _L( "ExampleTestL" ) ) )
+        {      
+        ExampleTestL( iTestBlockParams.iTestOption1, iTestBlockParams.iTestOption2, 
+                iTestBlockParams.iTestIntOption1, iTestBlockParams.iTestCharOption1, aTestResult );
+        }	
+    else if ( !iTestBlockParams.iTestBlockName.Compare( _L( "CreateLcStylusTap" ) ) )
+        {      
+        CreateLcStylusTapTestL( iTestBlockParams.iTestOption1, iTestBlockParams.iTestOption2, aTestResult );
+        }
+    else if ( !iTestBlockParams.iTestBlockName.Compare( _L( "TextTapTest" ) ) )
+        {      
+        TextTapTestL( iTestBlockParams.iTestOption1, iTestBlockParams.iTestOption2, aTestResult );
+        }
+    else if ( !iTestBlockParams.iTestBlockName.Compare( _L( "CallHandleIndicatorTap" ) ) )
+        {      
+        CallHandleIndicatorTapTestL( iTestBlockParams.iTestOption1, iTestBlockParams.iTestOption2, aTestResult );
+        }
+    else
+        {
+        STIF_LOG( "Test type: not found" );
+        User::Leave( KErrNotFound );
+        }
+	
+	STIF_LOG( "<<<DoExecuteApiTestBlockL" );
+    }
+	
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::ExecuteModuleTestBlock
+// -----------------------------------------------------------------------------	
+
+TInt CLcStylusTapTest::ExecuteModuleTestBlock( CStifItemParser& aItem )
+    {
+	STIF_LOG( "[STIF_LOG] >>>ExecuteModuleTestBlock" );
+	
+    TInt res;
+    TLcStylusTapTestResult testResult;
+    
+    TRAP( res, DoExecuteModuleTestBlockL( aItem, testResult ) );
+    if ( res != KErrNone )
+        {
+        STIF_LOG1( "DoExecuteModuleTestBlockL error: %d", res );
+        return res;
+        }
+    
+    STIF_ASSERT_EQUALS( ETestCasePassed, testResult );
+    STIF_LOG( "[STIF_LOG] Test case passed" );
+	STIF_LOG( "[STIF_LOG] <<<ExecuteModuleTestBlock" );
+    return KErrNone;
+    }	
+	
+	
+void CLcStylusTapTest::DoExecuteModuleTestBlockL( CStifItemParser& aItem, TLcStylusTapTestResult& aTestResult )
+    {
+	STIF_LOG( "[STIF_LOG] >>>DoExecuteModuleTestBlockL" );
+	
+    User::LeaveIfError( aItem.GetString( _L( "ExecuteModuleTestBlock" ), iTestBlockParams.iTestBlockName ) );
+    STIF_LOG1( "Module test type: %S", &iTestBlockParams.iTestBlockName );
+    
+    GetTestBlockParamsL( aItem );
+    
+    // Add new module test block branches with optional test parameters here   
+    if ( !iTestBlockParams.iTestBlockName.Compare( _L( "ExampleTestL" ) ) )
+        {      
+        ExampleTestL( iTestBlockParams.iTestOption1, iTestBlockParams.iTestOption2, 
+                iTestBlockParams.iTestIntOption1, iTestBlockParams.iTestCharOption1, aTestResult );
+        }
+    else
+        {
+        STIF_LOG( "Test type: not found" );
+        User::Leave( KErrNotFound );
+        }
+    
+	STIF_LOG( "[STIF_LOG] <<<DoExecuteModuleTestBlockL" );
+    }
+	
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::ExecuteBranchTestBlock
+// -----------------------------------------------------------------------------
+	
+TInt CLcStylusTapTest::ExecuteBranchTestBlock( CStifItemParser& aItem )
+    {
+	STIF_LOG( "[STIF_LOG] >>>ExecuteBranchTestBlock" );
+	
+    TInt res;
+    TLcStylusTapTestResult testResult;
+    
+    TRAP( res, DoExecuteBranchTestBlockL( aItem, testResult ) );
+    if ( res != KErrNone )
+        {
+        STIF_LOG1( "DoExecuteBranchTestBlockL error: %d", res );
+        return res;
+        }   
+    
+    STIF_ASSERT_EQUALS( ETestCasePassed, testResult );
+    STIF_LOG( "[STIF_LOG] Test case passed" );
+	STIF_LOG( "[STIF_LOG] <<<ExecuteBranchTestBlock" );
+    return KErrNone;
+    }
+
+	
+void CLcStylusTapTest::DoExecuteBranchTestBlockL( CStifItemParser& aItem, TLcStylusTapTestResult& aTestResult )
+    {
+	STIF_LOG( "[STIF_LOG] >>>DoExecuteBranchTestBlockL" );
+	
+    User::LeaveIfError( aItem.GetString( _L( "ExecuteBranchTestBlock" ), iTestBlockParams.iTestBlockName ) );
+    STIF_LOG1( "Branch test type: %S", &iTestBlockParams.iTestBlockName );
+    
+    GetTestBlockParamsL( aItem );
+    
+    // Add new branch test block branches with optional test parameters here   
+    if ( !iTestBlockParams.iTestBlockName.Compare( _L( "ExampleTestL" ) ) )
+        {      
+        ExampleTestL( iTestBlockParams.iTestOption1, iTestBlockParams.iTestOption2, 
+                iTestBlockParams.iTestIntOption1, iTestBlockParams.iTestCharOption1, aTestResult );
+        }
+    else
+        {
+        STIF_LOG( "Test type: not found" );
+        User::Leave( KErrNotFound );
+        }
+    
+	STIF_LOG( "[STIF_LOG] <<<DoExecuteBranchTestBlockL" );
+    }
+
+// Add test block methods implementation here
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::ExampleTestL
+// -----------------------------------------------------------------------------
+
+void CLcStylusTapTest::ExampleTestL( TPtrC aTestOption, TPtrC aTestSubOption, 
+        TInt aTestIntOption, TInt aTestCharOption, TLcStylusTapTestResult& aTestResult )
+    {
+    STIF_LOG( ">>>ExampleTestL" );
+    
+    if ( !aTestOption.Compare( _L( "API" ) ) )
+        {
+        STIF_LOG1( "Api test option: %S", &aTestOption );
+        STIF_LOG1( "Api test sub-option: %S", &aTestSubOption );
+        STIF_LOG1( "Api test int option: %d", aTestIntOption );
+        STIF_LOG1( "Api test char option: %c", aTestCharOption );
+        }
+    else if ( !aTestOption.Compare( _L( "MODULE" ) ) )
+        {
+        STIF_LOG1( "Module test option: %S", &aTestOption );
+        STIF_LOG1( "Module test sub-option: %S", &aTestSubOption );
+        STIF_LOG1( "Module test int option: %d", aTestIntOption );
+        STIF_LOG1( "Module test char option: %c", aTestCharOption );
+        }
+    else if ( !aTestOption.Compare( _L( "BRANCH" ) ) )
+        {
+        STIF_LOG1( "Branch test option: %S", &aTestOption );
+        STIF_LOG1( "Branch test sub-option: %S", &aTestSubOption );
+        STIF_LOG1( "Branch test int option: %d", aTestIntOption );
+        STIF_LOG1( "Branch test char option: %c", aTestCharOption );
+        }
+    else
+        {
+        STIF_LOG( "Invalid test parameter" );
+        User::Leave( KErrNotFound );
+        }
+    
+    aTestResult = ETestCasePassed;
+    
+    STIF_LOG( "<<<ExampleTestL" );
+    }
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::CreateLcStylusTapTestL
+// -----------------------------------------------------------------------------
+//
+void CLcStylusTapTest::CreateLcStylusTapTestL( TPtrC aTestOption, TPtrC aTestSubOption, TLcStylusTapTestResult& aTestResult )
+    {
+    STIF_LOG( ">>>CreateLcStylusTapL" );    	
+    
+    delete iLcStylusTap;
+    iLcStylusTap = NULL;
+    
+    if( !aTestSubOption.Compare(_L( "BT" )) )
+		{
+		GetPluginImplementation(EAknIndicatorBluetoothModuleOnVisible);
+		STIF_LOG1( "CreateLcStylusTapL BT result: %d", iLcStylusTap ? 1 : 0 );
+		}
+    else if( !aTestSubOption.Compare(_L( "USB" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBConnection);
+		STIF_LOG1( "CreateLcStylusTapL USB result: %d", iLcStylusTap ? 1 : 0 );
+		}
+    else if( !aTestSubOption.Compare(_L( "IRDA" )) )
+		{
+		GetPluginImplementation(EAknIndicatorIrActive);
+		STIF_LOG1( "CreateLcStylusTapL IR result: %d", iLcStylusTap ? 1 : 0 );
+		}
+    else if( !aTestSubOption.Compare(_L( "USBMEM" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBMemConnected);
+		STIF_LOG1( "CreateLcStylusTapL USB result: %d", iLcStylusTap ? 1 : 0 );
+		}
+    else
+    	{}
+    
+    if(!iLcStylusTap)
+    	{
+    	STIF_LOG( "Error iLcStylusTap == NULL" );
+		return;
+    	}	
+    
+    DestroyImplementation();
+    
+    aTestResult = ETestCasePassed;
+    
+    STIF_LOG( "<<<CreateLcStylusTapL" );
+    }
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::TextTapTestL
+// -----------------------------------------------------------------------------
+//
+void CLcStylusTapTest::TextTapTestL( TPtrC aTestOption, TPtrC aTestSubOption, TLcStylusTapTestResult& aTestResult )
+	{
+	STIF_LOG(">>CLcStylusTapTest::TextTapTestL");
+	
+	HBufC* Media = NULL;
+	delete iLcStylusTap;
+	iLcStylusTap = NULL;
+	
+    if( !aTestSubOption.Compare(_L( "BT" )) )
+		{
+		GetPluginImplementation(EAknIndicatorBluetoothModuleOnVisible);
+		if(iLcStylusTap)
+			{			
+			Media = iLcStylusTap->TextL(EAknIndicatorBluetoothModuleOnVisible, iTextType);
+			STIF_LOG1( "CheckTextResult err: %d", CheckTextResult(EAknIndicatorBluetoothModuleOnVisible, Media) );
+			STIF_LOG1( "TextL: %S, OK", Media );
+			}
+		}
+    else if( !aTestSubOption.Compare(_L( "USB" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBConnection);
+		if(iLcStylusTap)
+			{			
+			Media = iLcStylusTap->TextL(EAknIndicatorUSBConnection, iTextType);
+			STIF_LOG1( "TextL: %S, OK", Media );
+			STIF_LOG1( "CheckTextResult err: %d", CheckTextResult(EAknIndicatorUSBConnection, Media) );
+			}
+		}
+    else if( !aTestSubOption.Compare(_L( "USBMEM" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBMemConnected);
+		if(iLcStylusTap)
+			{			
+			Media = iLcStylusTap->TextL(EAknIndicatorUSBMemConnected, iTextType);
+			STIF_LOG1( "TextL: %S no checked", Media );
+			//STIF_LOG1( "CheckTextResult err: %d", CheckTextResult(EAknIndicatorUSBMemConnected, Media) );
+			}
+		}
+    else if( !aTestSubOption.Compare(_L( "USBMEM_loc" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBMemConnected);
+		if(iLcStylusTap)
+			{			
+			Media = iLcStylusTap->TextL(EAknIndicatorUSBMemConnected, iTextType);
+			STIF_LOG1( "CheckTextResult err: %d", CheckTextResult(EAknIndicatorUSBMemConnected, Media) );
+			STIF_LOG1( "TextL: %S, OK", Media );
+			}
+		}
+    else
+        User::LeaveIfError(KErrNotFound);
+
+    DestroyImplementation();
+    
+    aTestResult = ETestCasePassed;
+    
+	STIF_LOG("<<CallHandleIndicatorTapL::TextTapTestL");
+	}
+	
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::CallHandleIndicatorTapTestL
+// -----------------------------------------------------------------------------
+//
+void CLcStylusTapTest::CallHandleIndicatorTapTestL( TPtrC aTestOption, TPtrC aTestSubOption, TLcStylusTapTestResult& aTestResult )
+	{
+	STIF_LOG(">>CLcStylusTapTest::CallHandleIndicatorTapL");
+	
+    if( !aTestSubOption.Compare(_L( "BT" )) )
+		{
+		GetPluginImplementation(EAknIndicatorBluetoothModuleOnVisible);
+		if(iLcStylusTap)
+			{
+			iLcStylusTap->HandleIndicatorTapL(EAknIndicatorBluetoothModuleOnVisible);
+			STIF_LOG("HandleIndicatorTapL OK");
+			}
+		}
+    else if( !aTestSubOption.Compare(_L( "USB" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBConnection);
+		if(iLcStylusTap)
+			{
+			iLcStylusTap->HandleIndicatorTapL(EAknIndicatorUSBConnection);
+			STIF_LOG("HandleIndicatorTapL OK");
+			}
+		}
+    else if( !aTestSubOption.Compare(_L( "USBMEM" )) )
+		{
+		GetPluginImplementation(EAknIndicatorUSBMemConnected);
+		if(iLcStylusTap)
+			{
+			iLcStylusTap->HandleIndicatorTapL(EAknIndicatorUSBMemConnected);
+			STIF_LOG("HandleIndicatorTapL OK");
+			}
+		}
+    else if( !aTestSubOption.Compare(_L( "IRDA" )) )
+		{
+		GetPluginImplementation(EAknIndicatorIrActive);
+		if(iLcStylusTap)
+			{
+			iLcStylusTap->HandleIndicatorTapL(EAknIndicatorIrActive);
+			STIF_LOG("HandleIndicatorTapL OK");
+			}
+		}
+    else
+        User::LeaveIfError(KErrNotFound);
+
+    DestroyImplementation();
+    
+    aTestResult = ETestCasePassed;
+       	
+	STIF_LOG(">>CLcStylusTapTest::CallHandleIndicatorTapL");
+	}
+
+// Other operaton functions
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::GetPluginImplementation
+// returns CLcStylusTap pointer
+// -----------------------------------------------------------------------------
+//
+TBool CLcStylusTapTest::GetPluginImplementation(TInt aValue)
+	{
+	STIF_LOG( ">>CLcStylusTapTest::GetPluginImplementation" );
+	
+		
+	const TUid uidInterfacetobepop = TUid::Uid(KAknIndicatorPluginInterfaceUid);	  	
+	TRAPD(err, REComSession::ListImplementationsL(uidInterfacetobepop, iImplementations));
+	STIF_LOG1( "REComSession::ListImplementationsL err: %d", err );
+	if(err != KErrNone)
+		User::LeaveIfError(err);
+	 
+	delete iLcStylusTap;
+	iLcStylusTap = NULL;
+	//HBufC* Media = NULL;
+		
+	TUid btimpluid = {KImplUIDBTIndicatorsPlugin};
+	TUid usbimpluid = {KImplUIDUSBIndicatorsPlugin};
+	TUid irimpluid = {KImplUIDIRIndicatorsPlugin};
+	TUid usbMemImp = {0x20026FC4};//usb_mem
+	
+	switch (aValue)
+		{
+		case EAknIndicatorBluetooth://12
+		case EAknIndicatorBluetoothVisible:
+		case EAknIndicatorBluetoothModuleOn:
+		case EAknIndicatorBluetoothModuleOnVisible://55
+			iLcStylusTap = REINTERPRET_CAST(CLcStylusTap*, REComSession::CreateImplementationL(btimpluid, iDtor_Key) );   
+			break;
+		case EAknIndicatorUSBConnection:      //28  
+			iLcStylusTap = REINTERPRET_CAST(CLcStylusTap*, REComSession::CreateImplementationL(usbimpluid, iDtor_Key) );   
+			break;
+		case EAknIndicatorIrActive:   
+			iLcStylusTap = REINTERPRET_CAST(CLcStylusTap*, REComSession::CreateImplementationL(irimpluid, iDtor_Key) );   
+			break;
+		case EAknIndicatorUSBMemConnected:
+        case EAknIndicatorUSBMemActive:      
+			iLcStylusTap = REINTERPRET_CAST(CLcStylusTap*, REComSession::CreateImplementationL(usbMemImp, iDtor_Key) );   
+			break;		        
+		default:         
+			STIF_LOG( "GetPluginImplementation ERROR!" ); 
+			User::LeaveIfError(KErrNotFound);
+			break;
+		}
+	   
+	STIF_LOG1( "iLcStylusTap: %d", iLcStylusTap ? 1 : 0 );  
+	    
+    return ETrue;
+	}
+
+
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::CheckTextResult
+// -------------------------------------------
+//
+TInt CLcStylusTapTest::CheckTextResult(TInt aValue, HBufC* &aMedia)
+	{
+	TInt err = KErrNone;
+	
+	if(!aMedia)
+		{		
+		User::Leave(KErrNotFound);
+		}
+	
+	switch(aValue)
+		{
+		case EAknIndicatorBluetooth://12
+		case EAknIndicatorBluetoothVisible:
+		case EAknIndicatorBluetoothModuleOn:
+		case EAknIndicatorBluetoothModuleOnVisible://55
+			if(aMedia->Compare(KBlueTooth())!= 0 || iTextType != CAknIndicatorPlugin::EAknIndicatorPluginLinkText)
+				err = KErrNotFound;
+			break;
+		case EAknIndicatorUSBConnection: 
+			if(aMedia->Compare(KUSB())!= 0 || iTextType != CAknIndicatorPlugin::EAknIndicatorPluginLinkText)
+				err = KErrNotFound;
+			break;
+		case EAknIndicatorIrActive:
+			if(aMedia->Compare(KIRDA())!= 0 || iTextType != CAknIndicatorPlugin::EAknIndicatorPluginLinkText)
+				err = KErrNotFound;
+			break;
+		default:
+			err = KErrNotFound;
+			break;
+		}
+	
+	if(err == KErrNotFound)
+		{
+		delete aMedia;
+		aMedia = NULL;
+		User::LeaveIfError(KErrNotFound); // Did not match that should
+		}
+	
+	STIF_LOG("CallHandleIndicatorTapL::CompareMedia OK");
+	
+	return err;
+	}
+// -----------------------------------------------------------------------------
+// CLcStylusTapTest::DestroyImplementation
+// destroy plugin implementation
+// -------------------------------------------
+//
+void CLcStylusTapTest::DestroyImplementation()
+	{
+	STIF_LOG( ">>CLcStylusTapTest::DestroyImplementation" );
+    
+    if(iLcStylusTap)
+    	{
+    	delete iLcStylusTap;
+    	iLcStylusTap = NULL;
+    	}
+
+   	iImplementations.ResetAndDestroy();
+   	iImplementations.Close();   	
+   	
+    REComSession::DestroyedImplementation(iDtor_Key);
+    
+    STIF_LOG("<<CLcStylusTapTest::DestroyImplementation");
+	}
+
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+// None
+
+//  [End of File] - Do not remove