--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ximpfw/tsrc/src/t_utils/t_utils.cpp Thu Dec 17 08:54:49 2009 +0200
@@ -0,0 +1,641 @@
+/*
+* 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: XIMP Framework Test Code
+*
+*/
+
+
+#include <eunitmacros.h>
+#include <ecom/ecom.h>
+#include <badesca.h>
+#include <e32property.h>
+#include <e32base.h>
+#include <e32std.h>
+
+#include "t_utils.h"
+
+#include "eunittools.h"
+
+#include <ximpbase.h>
+#include <presenceinfo.h>
+
+#include "ximpeventcodec.h"
+#include "ownpresenceeventimp.h"
+#include "prfwtestfiletool.h"
+#include "ximppanics.h"
+
+#include "prfwtestrobustnesstools.h"
+
+#include "ximpobjectfactoryimp.h"
+#include "ximpobjectcollection.h"
+#include "ximprestrictedobjectcollection.h"
+#include "ximpidentityimp.h"
+#include "ximpstatusimp.h"
+#include "ximprequestidbuilder.h"
+
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// CONSTRUCTION
+T_Utils* T_Utils::NewL()
+ {
+ T_Utils* self = new( ELeave ) T_Utils;
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+
+ return self;
+ }
+
+
+T_Utils::~T_Utils()
+ {
+ }
+
+
+void T_Utils::ConstructL()
+ {
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+
+T_Utils::T_Utils()
+ {
+ }
+
+// ===========================================================================
+// TEST CASE SETUP & TEARDOWN METHODS
+// ===========================================================================
+//
+
+void T_Utils::Setup_L()
+ {
+ }
+
+void T_Utils::Teardown()
+ {
+ }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_FileToolTest_L()
+ {
+ // TODO add more brains to the test
+ EUNIT_PRINT( _L("FileTool test.") );
+
+ /*
+ CXIMPTestFileTool* tool = CXIMPTestFileTool::NewL();
+ CleanupStack::PushL( tool );
+ tool->CleanL( 0 );
+ tool->PrepareL( 0 );
+ TInt files = tool->NumObjectsL( 0 );
+
+ EUNIT_ASSERT_DESC( files == 0, "Non-zero count of files, Clean or Prepare did not work" );
+
+ // make a proper object and store it.
+ MPresenceInfo::TPresenceInfoStatus status;
+ status = MPresenceInfo::EDataSubscriptionPending;
+ COwnPresenceEventImp* event = COwnPresenceEventImp::NewLC( status );
+
+ CBufFlat* buf = CBufFlat::NewL( 50 );
+ CleanupStack::PushL( buf );
+ TInt32 eventType = 0;
+ XIMPEventCodec::PackL( *event, eventType, buf );
+ HBufC8* extObj = buf->Ptr( 0 ).AllocLC();
+
+ // create more objects
+ tool->StoreL( 0, *extObj );
+ tool->StoreL( 0, *extObj );
+ tool->StoreL( 0, *extObj );
+ tool->StoreL( 0, *extObj );
+ tool->StoreL( 0, *extObj );
+
+ files = tool->NumObjectsL( 0 );
+ EUNIT_ASSERT_DESC( files == 5, "Bad count of files" );
+
+ COwnPresenceEventImp* object = static_cast<COwnPresenceEventImp*>( tool->RestoreLC( 0, 2 ) );
+ EUNIT_ASSERT_DESC( status == object->Status(), "Wrong status from restored object." );
+
+ CleanupStack::PopAndDestroy( 4, event ); // object, extObj, buf, event
+
+ CleanupStack::PopAndDestroy( tool );
+ */
+ }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_KillServers_L()
+ {
+ EUNIT_PRINT( _L("Utility to kill the servers. Always succeeds.") );
+
+ PrfwTestRobustness::DoPreCleaning();
+ }
+
+_LIT8( KTestObjectName, "John Doe" ); // regular
+_LIT8( KTestObjectName2, "Jane Doe" ); // regular
+_LIT8( KTestObjectNameWC, "Jo* Doe" ); // wildcards
+_LIT8( KTestObjectNameWC2, "Ja* Doe" ); // wildcards
+
+_LIT( KIdentity1, "Identity 1" );
+_LIT( KIdentity2, "Identity 2" );
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_ObjectCollection_Unnamed_L()
+ {
+ EUNIT_PRINT( _L("Object collection unnamed tests.") );
+
+ CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+ CleanupStack::PushL( factory );
+
+ MXIMPObjectCollection* collection = factory->NewObjectCollectionLC();
+
+ // LookupByType should not find anything
+ const MXIMPBase* obj = NULL;
+ collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+ // LookupByTypeAndName should not find anything
+ collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectName );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName found an object" );
+
+ collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectNameWC );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName with wildcard found an object" );
+
+ // add some
+ MXIMPIdentity* identity2 = factory->NewIdentityLC();
+ identity2->SetIdentityL( KIdentity2 );
+
+ MXIMPStatus* status = factory->NewStatusLC();
+ status->SetResultCode( KErrArgument );
+
+ MXIMPIdentity* identity1 = factory->NewIdentityLC();
+ identity1->SetIdentityL( KIdentity1 );
+
+ collection->AddObjectL( identity1 );
+ CleanupStack::Pop(); // identity1
+
+ collection->AddObjectL( status );
+ CleanupStack::Pop(); // status
+
+ collection->AddObjectL( identity2 );
+ CleanupStack::Pop(); // identity2
+
+ // get and verify the status
+ MXIMPBase* getObj = NULL;
+ collection->GetByType( getObj, MXIMPStatus::KInterfaceId );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ MXIMPStatus* gotStatus = ( MXIMPStatus* ) getObj->GetInterface( MXIMPStatus::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotStatus );
+ EUNIT_ASSERT_DESC( gotStatus->ResultCode() == KErrArgument, "Status got corrupted" );
+ CleanupStack::PopAndDestroy(); // gotStatus
+
+ // check that status can't be found anymore
+ obj = NULL;
+ collection->LookupByType( obj, MXIMPStatus::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+ collection->LookupByTypeAndName( obj, MXIMPStatus::KInterfaceId, KTestObjectName );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName found an object" );
+
+ collection->LookupByTypeAndName( obj, MXIMPStatus::KInterfaceId, KTestObjectNameWC );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName with wildcard found an object" );
+
+ // get and verify the two identities
+ // first identity
+ getObj = NULL;
+ collection->GetByType( getObj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ MXIMPIdentity* gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotIdentity );
+ EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity1 ), "Wrong identity object found" );
+ CleanupStack::PopAndDestroy(); // gotIdentity
+
+ // second identity
+ getObj = NULL;
+ collection->GetByType( getObj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotIdentity );
+ EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity2 ), "Wrong identity object found" );
+ CleanupStack::PopAndDestroy(); // gotIdentity
+
+ // now there should not be anything anymore
+ obj = NULL;
+ collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+ CleanupStack::PopAndDestroy(); // collection
+ CleanupStack::PopAndDestroy( factory );
+ }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_ObjectCollection_Named_L()
+ {
+ EUNIT_PRINT( _L("Object collection named tests.") );
+
+ CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+ CleanupStack::PushL( factory );
+
+ MXIMPObjectCollection* collection = factory->NewObjectCollectionLC();
+
+ // LookupByType should not find anything
+ const MXIMPBase* obj = NULL;
+ collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+ // LookupByTypeAndName should not find anything
+ collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectName );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName found an object" );
+
+ collection->LookupByTypeAndName( obj, MXIMPIdentity::KInterfaceId, KTestObjectNameWC );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByTypeAndName with wildcard found an object" );
+
+ // add some
+ MXIMPIdentity* identity2 = factory->NewIdentityLC();
+ identity2->SetIdentityL( KIdentity2 );
+
+ MXIMPStatus* status = factory->NewStatusLC();
+ status->SetResultCode( KErrArgument );
+
+ MXIMPIdentity* identity1 = factory->NewIdentityLC();
+ identity1->SetIdentityL( KIdentity1 );
+
+ collection->AddObjectWithNameL( identity1, KTestObjectName );
+ CleanupStack::Pop(); // identity1
+
+ TRAPD( err, collection->AddObjectWithNameL( status, KTestObjectNameWC ) );
+ EUNIT_ASSERT_DESC( err == KErrBadName, "Did not leave when given wildcards" );
+ CleanupStack::PopAndDestroy(); // status
+
+ collection->AddObjectWithNameL( identity2, KTestObjectName2 );
+ CleanupStack::Pop(); // identity2
+
+ // should not find the status object
+ MXIMPBase* getObj = NULL;
+ collection->GetByType( getObj, MXIMPStatus::KInterfaceId );
+ EUNIT_ASSERT_DESC( getObj == NULL, "LookupByType found wrong object" );
+
+ // get and verify the two identities
+ // first identity
+ getObj = NULL;
+ collection->GetByTypeAndName( getObj, MXIMPIdentity::KInterfaceId, KTestObjectName );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ MXIMPIdentity* gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotIdentity );
+ EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity1 ), "Wrong identity object found" );
+ CleanupStack::PopAndDestroy(); // gotIdentity
+
+ // second identity
+ getObj = NULL;
+ collection->GetByTypeAndName( getObj, MXIMPIdentity::KInterfaceId, KTestObjectNameWC2 );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotIdentity );
+ EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity2 ), "Wrong identity object found" );
+ CleanupStack::PopAndDestroy(); // gotIdentity
+
+ // now there should not be anything anymore
+ obj = NULL;
+ collection->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+ CleanupStack::PopAndDestroy(); // collection
+ CleanupStack::PopAndDestroy( factory );
+ }
+
+// ===========================================================================
+// TEST CASE
+// ===========================================================================
+void T_Utils::T_RestrictedObjectCollection_L()
+ {
+ EUNIT_PRINT( _L("Restricted object collection tests.") );
+
+ CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+ CleanupStack::PushL( factory );
+
+ MXIMPRestrictedObjectCollection* resColl = factory->NewRestrictedObjectCollectionLC();
+
+ // LookupByType should not find anything, empty collection
+ const MXIMPBase* obj = NULL;
+ resColl->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an object" );
+
+ // add some
+ MXIMPIdentity* identity2 = factory->NewIdentityLC();
+ identity2->SetIdentityL( KIdentity2 );
+
+ MXIMPStatus* status = factory->NewStatusLC();
+ status->SetResultCode( KErrArgument );
+
+ MXIMPIdentity* identity1 = factory->NewIdentityLC();
+ identity1->SetIdentityL( KIdentity1 );
+
+ resColl->AddOrReplaceTypeL( identity1 );
+ CleanupStack::Pop(); // identity1
+
+ resColl->AddOrReplaceTypeL( status );
+ CleanupStack::Pop(); // identity1
+
+ resColl->AddOrReplaceTypeL( identity2 );
+ CleanupStack::Pop(); // identity2
+
+ // there should only be {identity2, status} in the collection
+ obj = NULL;
+ resColl->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj != NULL, "LookupByType did not find an object" );
+
+ obj = NULL;
+ resColl->LookupByType( obj, MXIMPStatus::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj != NULL, "LookupByType did not find an object" );
+
+ // get the objects and verify their contents
+
+ // 1. identity
+ MXIMPBase* getObj = NULL;
+ resColl->GetByType( getObj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ MXIMPIdentity* gotIdentity = ( MXIMPIdentity* ) getObj->GetInterface( MXIMPIdentity::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotIdentity );
+ EUNIT_ASSERT_DESC( 0 == gotIdentity->Identity().Compare( KIdentity2 ), "Second identity object did not replace the first one" );
+ CleanupStack::PopAndDestroy(); // gotIdentity
+
+ // 2. status
+ getObj = NULL;
+ resColl->GetByType( getObj, MXIMPStatus::KInterfaceId );
+ EUNIT_ASSERT_DESC( getObj != NULL, "LookupByType did not find an object" );
+
+ MXIMPStatus* gotStatus = ( MXIMPStatus* ) getObj->GetInterface( MXIMPStatus::KInterfaceId, MXIMPBase::EPanicIfUnknown );
+ CleanupDeletePushL( gotStatus );
+ EUNIT_ASSERT_DESC( KErrArgument == gotStatus->ResultCode(), "Status object was corrupted" );
+ CleanupStack::PopAndDestroy(); // gotStatus
+
+ // now there should not be anything anymore
+ obj = NULL;
+ resColl->LookupByType( obj, MXIMPIdentity::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found an identity object although it was removed" );
+
+ obj = NULL;
+ resColl->LookupByType( obj, MXIMPStatus::KInterfaceId );
+ EUNIT_ASSERT_DESC( obj == NULL, "LookupByType found a status object although it was removed" );
+
+ CleanupStack::PopAndDestroy(); // collection
+ CleanupStack::PopAndDestroy( factory );
+ }
+
+void T_Utils::T_DataSubscriptionState_L()
+ {
+ EUNIT_PRINT( _L("Data subscription state tests.") );
+
+ CXIMPObjectFactoryImp* factory = CXIMPObjectFactoryImp::NewL();
+ CleanupStack::PushL( factory );
+
+ MXIMPDataSubscriptionState* dataState = factory->NewDataSubscriptionStateLC();
+
+ EUNIT_ASSERT_DESC( dataState->DataState() == MXIMPDataSubscriptionState::EDataUnavailable,
+ "Data was available." );
+ EUNIT_ASSERT_DESC( dataState->SubscriptionState() == MXIMPDataSubscriptionState::ESubscriptionInactive,
+ "Subscription was active." );
+
+ dataState->SetDataStateL( MXIMPDataSubscriptionState::EDataAvailable );
+ dataState->SetSubscriptionStateL( MXIMPDataSubscriptionState::ESubscriptionActive );
+
+ EUNIT_ASSERT_DESC( dataState->DataState() == MXIMPDataSubscriptionState::EDataAvailable,
+ "Data was unavailable." );
+ EUNIT_ASSERT_DESC( dataState->SubscriptionState() == MXIMPDataSubscriptionState::ESubscriptionActive,
+ "Subscription was inactive." );
+
+ CleanupStack::PopAndDestroy(); // collection
+ CleanupStack::PopAndDestroy( factory );
+ }
+
+
+
+void T_Utils::T_TXIMPRequestIdBuilder_Test_L()
+ {
+ EUNIT_PRINT( _L("TXIMPRequestIdbuilder test.") );
+
+ TXIMPRequestIdBuilder builder;
+ builder.SetProtocolId( 1 );
+ builder.SetSessionId( 1 );
+ builder.SetRequestId( 1 );
+
+ TXIMPRequestId id1 = builder.BuildRequestId();
+ EUNIT_ASSERT( id1 == id1 );
+ EUNIT_ASSERT( id1 != TXIMPRequestId::Null() );
+
+
+ {
+ builder.SetProtocolId( 2 );
+ TXIMPRequestId id2 = builder.BuildRequestId();
+ EUNIT_ASSERT( id2 == id2 );
+ EUNIT_ASSERT( id1 != id2 );
+ EUNIT_ASSERT( id2 != id1 );
+ EUNIT_ASSERT( id2 != TXIMPRequestId::Null() );
+ }
+
+ {
+ builder.SetSessionId( 2 );
+ TXIMPRequestId id3 = builder.BuildRequestId();
+ EUNIT_ASSERT( id3 == id3 );
+ EUNIT_ASSERT( id1 != id3 );
+ EUNIT_ASSERT( id3 != id1 );
+ EUNIT_ASSERT( id3 != TXIMPRequestId::Null() );
+ }
+
+
+ {
+ builder.SetRequestId( 2 );
+ TXIMPRequestId id4 = builder.BuildRequestId();
+ EUNIT_ASSERT( id4 == id4 );
+ EUNIT_ASSERT( id1 != id4 );
+ EUNIT_ASSERT( id4 != id1 );
+ EUNIT_ASSERT( id4 != TXIMPRequestId::Null() );
+ }
+
+
+ {
+ builder.SetProtocolId( 33333333 );
+ builder.SetSessionId( 44444444 );
+ builder.SetRequestId( 55555555 );
+
+ TXIMPRequestId id5 = builder.BuildRequestId();
+ EUNIT_ASSERT( id5 == id5 );
+ EUNIT_ASSERT( id1 != id5 );
+ EUNIT_ASSERT( id5 != id1 );
+ EUNIT_ASSERT( id5 != TXIMPRequestId::Null() );
+ }
+ }
+
+
+void T_Utils::T_TXIMPRequestId_Test_L()
+ {
+ EUNIT_PRINT( _L("TXIMPRequestIdbuilder test.") );
+
+ TXIMPRequestId id0 = TXIMPRequestId::Null();
+ EUNIT_ASSERT( id0 == TXIMPRequestId::Null() );
+
+ {
+ TXIMPRequestId id1 = TXIMPRequestId::Init( 1 );
+ EUNIT_ASSERT( id1 != TXIMPRequestId::Null() );
+ }
+
+
+ {
+ TXIMPRequestId id2 = TXIMPRequestId::Init( 2);
+ EUNIT_ASSERT( id0 != id2 );
+ }
+
+
+ {
+ TXIMPRequestId id3 = TXIMPRequestId::Init( KMaxTInt );
+ EUNIT_ASSERT( id0 != id3 );
+ }
+
+
+ {
+ TXIMPRequestId id4 = TXIMPRequestId::Init( 33333333 );
+ EUNIT_ASSERT( id0 != id4 );
+ }
+
+ {
+ TXIMPRequestId id5 = TXIMPRequestId::Init( KMaxTInt );
+ TXIMPRequestId id6 = TXIMPRequestId::Init( KMinTInt );
+ EUNIT_ASSERT( id0 != id5 );
+ EUNIT_ASSERT( id0 != id6 );
+ EUNIT_ASSERT( id5 != id6 );
+ }
+
+ }
+
+
+
+
+// ===========================================================================
+// TEST CASE TABLE
+// ===========================================================================
+//
+EUNIT_BEGIN_TEST_TABLE(
+ T_Utils,
+ "XIMP test utils tests",
+ "MODULE" )
+
+ PRFW_NOT_DECORATED_TEST(
+ "Kill servers",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_KillServers_L,
+ Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+ "Object collection without names",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_ObjectCollection_Unnamed_L,
+ Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+ "Object collection using names",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_ObjectCollection_Named_L,
+ Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+ "Restricted object collection",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_RestrictedObjectCollection_L,
+ Teardown )
+
+PRFW_NOT_DECORATED_TEST(
+ "Data subscription state",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_DataSubscriptionState_L,
+ Teardown )
+
+
+PRFW_NOT_DECORATED_TEST(
+ "TXIMPRequestIdBuilder test",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_TXIMPRequestIdBuilder_Test_L,
+ Teardown )
+
+
+PRFW_NOT_DECORATED_TEST(
+ "TXIMPRequestId test",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_TXIMPRequestId_Test_L,
+ Teardown )
+
+
+/* PRFW_NOT_DECORATED_TEST(
+ "FileTool test",
+ "",
+ "",
+ "FUNCTIONALITY",
+ Setup_L,
+ T_FileToolTest_L,
+ Teardown ) */
+
+
+EUNIT_END_TEST_TABLE
+
+
+// ===========================================================================
+// TEST SUITE CONSTRUCTION
+// ===========================================================================
+//
+EXPORT_C MEUnitTest* CreateTestSuiteL()
+ {
+ return T_Utils::NewL();
+ }
+
+
+// end of file
+
+
+
+
+
+