loggingservices/eventlogger/test/src/t_logplatformsecurity.cpp
branchRCL_3
changeset 9 667e88a979d7
parent 0 08ec8eefde2f
equal deleted inserted replaced
8:fa9941cf3867 9:667e88a979d7
     1 
     1 
     2 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // Copyright (c) 2005-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 // All rights reserved.
     3 // All rights reserved.
     4 // This component and the accompanying materials are made available
     4 // This component and the accompanying materials are made available
     5 // under the terms of "Eclipse Public License v1.0"
     5 // under the terms of "Eclipse Public License v1.0"
     6 // which accompanies this distribution, and is available
     6 // which accompanies this distribution, and is available
     7 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    15 //
    15 //
    16 
    16 
    17 
    17 
    18 #include <s32file.h>
    18 #include <s32file.h>
    19 #include <logcntdef.h>
    19 #include <logcntdef.h>
    20 #include "TEST.H"
    20 #include "t_logutil2.h"
    21 #include <logview.h>
    21 #include <logview.h>
    22 
    22 
    23 #undef test  //there is a "test" macro which hides "RTest test" declaration.
    23 //LOWCAP defined in t_loglowcapability.mmp file.
    24 
    24 #ifdef LOWCAP
    25 RTest test(_L("Log Client Platform Security Test Harness"));
    25     TBool TheHiCapability = EFalse;
    26 
    26     RTest TheTest(_L("t_loglowcapability"));
    27 // If LOWCAP is defined in the .mmp file 'TheHiCapability' will be set to false.
    27     _LIT(KTestTitle, "t_loglowcapability");
    28 TBool TheHiCapability = ETrue;
    28 #else
       
    29     TBool TheHiCapability = ETrue;
       
    30     RTest TheTest(_L("t_loghicapability"));
       
    31     _LIT(KTestTitle, "t_loghicapability");
       
    32 #endif
    29 
    33 
    30 const TUid KTestEventUid = {0x10005393};
    34 const TUid KTestEventUid = {0x10005393};
    31 _LIT(KTestEventDesc1, "Event Type Description");
    35 _LIT(KTestEventDesc1, "Event Type Description");
    32 _LIT(KTestEventDesc2, "Changed Event Description");
    36 _LIT(KTestEventDesc2, "Changed Event Description");
    33 _LIT(KTestRemoteParty1, "Remote Party");
    37 _LIT(KTestRemoteParty1, "Remote Party");
    58 is not policed by platform security.
    62 is not policed by platform security.
    59 @SYMREQ REQ3431
    63 @SYMREQ REQ3431
    60 */
    64 */
    61 LOCAL_C void TestStartupL()
    65 LOCAL_C void TestStartupL()
    62 	{
    66 	{
    63 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0118 "));
    67 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0118 "));
    64 	CLogClient* client = CLogClient::NewL(theFs);
    68 	CLogClient* client = CLogClient::NewL(theFs);
    65 	CleanupStack::PushL(client);
    69 	CleanupStack::PushL(client);
    66 
    70 
    67 	CTestActive* active = new(ELeave)CTestActive();
    71 	CTestActive* active = new(ELeave)CTestActive();
    68 	CleanupStack::PushL(active);
    72 	CleanupStack::PushL(active);
   103 
   107 
   104 @SYMREQ REQ3431
   108 @SYMREQ REQ3431
   105 */
   109 */
   106 LOCAL_C void TestBasicL(CLogClient& aClient)
   110 LOCAL_C void TestBasicL(CLogClient& aClient)
   107 	{
   111 	{
   108 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0119 "));
   112 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0119 "));
   109 	CTestActive* active = new(ELeave)CTestActive();
   113 	CTestActive* active = new(ELeave)CTestActive();
   110 	CleanupStack::PushL(active);
   114 	CleanupStack::PushL(active);
   111 
   115 
   112 	CLogEvent* event = CLogEvent::NewL();
   116 	CLogEvent* event = CLogEvent::NewL();
   113 	CleanupStack::PushL(event);
   117 	CleanupStack::PushL(event);
   148 	event->SetDataL(KTestData1);
   152 	event->SetDataL(KTestData1);
   149 
   153 
   150 	active->StartL();
   154 	active->StartL();
   151 	aClient.ChangeEvent(*event, active->iStatus);
   155 	aClient.ChangeEvent(*event, active->iStatus);
   152 	CActiveScheduler::Start();
   156 	CActiveScheduler::Start();
   153     test.Printf(_L("TestBasicL(), TheHiCapability=%d, event id=%d\r\n"), TheHiCapability, id);
   157     TheTest.Printf(_L("TestBasicL(), TheHiCapability=%d, event id=%d\r\n"), TheHiCapability, id);
   154 	TEST2(active->iStatus.Int(), TheHiCapability ? KErrNone : KErrPermissionDenied);
   158 	TEST2(active->iStatus.Int(), TheHiCapability ? KErrNone : KErrPermissionDenied);
   155 
   159 
   156 	TEST(event->Id() == id );
   160 	TEST(event->Id() == id );
   157 	TEST(event->EventType() == KLogCallEventTypeUid);
   161 	TEST(event->EventType() == KLogCallEventTypeUid);
   158 
   162 
   246 	
   250 	
   247 @SYMREQ REQ3431
   251 @SYMREQ REQ3431
   248 */
   252 */
   249 LOCAL_C void TestAddEventTypeL(CLogClient& aClient)
   253 LOCAL_C void TestAddEventTypeL(CLogClient& aClient)
   250 	{
   254 	{
   251 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0120 "));
   255 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0120 "));
   252 	CLogEventType* type = CLogEventType::NewL();
   256 	CLogEventType* type = CLogEventType::NewL();
   253 	CleanupStack::PushL(type);
   257 	CleanupStack::PushL(type);
   254 
   258 
   255 	type->SetUid(KTestEventUid);
   259 	type->SetUid(KTestEventUid);
   256 	type->SetDescription(KTestEventDesc1);
   260 	type->SetDescription(KTestEventDesc1);
   293 	//
   297 	//
   294 	// This test should succeed, regardless of capability
   298 	// This test should succeed, regardless of capability
   295 	// GetEventType is not policed.
   299 	// GetEventType is not policed.
   296 	//
   300 	//
   297 	{
   301 	{
   298 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0121 "));
   302 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0121 "));
   299 	CLogEventType* type = CLogEventType::NewL();
   303 	CLogEventType* type = CLogEventType::NewL();
   300 	CleanupStack::PushL(type);
   304 	CleanupStack::PushL(type);
   301 
   305 
   302 	type->SetUid(KTestEventUid);
   306 	type->SetUid(KTestEventUid);
   303 
   307 
   327 @SYMTestExpectedResults Should always succeed
   331 @SYMTestExpectedResults Should always succeed
   328 @SYMREQ REQ3431
   332 @SYMREQ REQ3431
   329 */
   333 */
   330 LOCAL_C void TestChangeEventTypeL(CLogClient& aClient)
   334 LOCAL_C void TestChangeEventTypeL(CLogClient& aClient)
   331 	{
   335 	{
   332 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0122 "));
   336 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0122 "));
   333 	CTestActive* active = new(ELeave)CTestActive();
   337 	CTestActive* active = new(ELeave)CTestActive();
   334 	CleanupStack::PushL(active);
   338 	CleanupStack::PushL(active);
   335 
   339 
   336 	CLogEventType* type = CLogEventType::NewL();
   340 	CLogEventType* type = CLogEventType::NewL();
   337 	CleanupStack::PushL(type);
   341 	CleanupStack::PushL(type);
   422 @SYMTestExpectedResults Should always succeed
   426 @SYMTestExpectedResults Should always succeed
   423 @SYMREQ REQ3431
   427 @SYMREQ REQ3431
   424 */
   428 */
   425 LOCAL_C void TestDeleteEventTypeL(CLogClient& aClient)
   429 LOCAL_C void TestDeleteEventTypeL(CLogClient& aClient)
   426 	{
   430 	{
   427 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0123 "));
   431 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0123 "));
   428 	CTestActive* active = new(ELeave)CTestActive();
   432 	CTestActive* active = new(ELeave)CTestActive();
   429 	CleanupStack::PushL(active);
   433 	CleanupStack::PushL(active);
   430 
   434 
   431 	CLogEventType* type = CLogEventType::NewL();
   435 	CLogEventType* type = CLogEventType::NewL();
   432 	CleanupStack::PushL(type);
   436 	CleanupStack::PushL(type);
   492 @SYMTestExpectedResults Should always succeed
   496 @SYMTestExpectedResults Should always succeed
   493 @SYMREQ REQ3431
   497 @SYMREQ REQ3431
   494 */
   498 */
   495 LOCAL_C void TestDeleteBuiltInEventTypeL(CLogClient& aClient)
   499 LOCAL_C void TestDeleteBuiltInEventTypeL(CLogClient& aClient)
   496 	{
   500 	{
   497 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0124 "));
   501 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0124 "));
   498 	CTestActive* active = new(ELeave)CTestActive();
   502 	CTestActive* active = new(ELeave)CTestActive();
   499 	CleanupStack::PushL(active);
   503 	CleanupStack::PushL(active);
   500 
   504 
   501 	CLogEventType* type = CLogEventType::NewL();
   505 	CLogEventType* type = CLogEventType::NewL();
   502 	CleanupStack::PushL(type);
   506 	CleanupStack::PushL(type);
   538 @SYMTestExpectedResults Should always succeed
   542 @SYMTestExpectedResults Should always succeed
   539 @SYMREQ REQ3431
   543 @SYMREQ REQ3431
   540 */
   544 */
   541 LOCAL_C void TestGetConfigL(CLogClient& aClient)
   545 LOCAL_C void TestGetConfigL(CLogClient& aClient)
   542 	{
   546 	{
   543 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0125 "));
   547 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0125 "));
   544 	CTestActive* active = new(ELeave)CTestActive();
   548 	CTestActive* active = new(ELeave)CTestActive();
   545 	CleanupStack::PushL(active);
   549 	CleanupStack::PushL(active);
   546 
   550 
   547 	TLogConfig config;
   551 	TLogConfig config;
   548 
   552 
   590 @SYMTestExpectedResults Should always succeed
   594 @SYMTestExpectedResults Should always succeed
   591 @SYMREQ REQ3431
   595 @SYMREQ REQ3431
   592 */
   596 */
   593 LOCAL_C void TestChangeConfigL(CLogClient& aClient)
   597 LOCAL_C void TestChangeConfigL(CLogClient& aClient)
   594 	{
   598 	{
   595 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0126 "));
   599 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0126 "));
   596 	CTestActive* active = new(ELeave)CTestActive();
   600 	CTestActive* active = new(ELeave)CTestActive();
   597 	CleanupStack::PushL(active);
   601 	CleanupStack::PushL(active);
   598 
   602 
   599 	TLogConfig configOld;
   603 	TLogConfig configOld;
   600 
   604 
   681 @SYMTestExpectedResults Should always pass
   685 @SYMTestExpectedResults Should always pass
   682 @SYMREQ REQ3431
   686 @SYMREQ REQ3431
   683 */
   687 */
   684 void ClearLogL(CLogClient& aClient)
   688 void ClearLogL(CLogClient& aClient)
   685 	{
   689 	{
   686 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0127 "));
   690 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0127 "));
   687 	CTestActive* active = new(ELeave)CTestActive();
   691 	CTestActive* active = new(ELeave)CTestActive();
   688 	CleanupStack::PushL(active);
   692 	CleanupStack::PushL(active);
   689 
   693 
   690 	TTime now;
   694 	TTime now;
   691 	now.UniversalTime();
   695 	now.UniversalTime();
   707 @SYMTestExpectedResults Should always succeed
   711 @SYMTestExpectedResults Should always succeed
   708 @SYMREQ REQ3431
   712 @SYMREQ REQ3431
   709 */
   713 */
   710 void ClearRecentListL(CLogClient& aClient)
   714 void ClearRecentListL(CLogClient& aClient)
   711 	{
   715 	{
   712 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0128 "));
   716 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0128 "));
   713 	CTestActive* active = new(ELeave)CTestActive();
   717 	CTestActive* active = new(ELeave)CTestActive();
   714 	CleanupStack::PushL(active);
   718 	CleanupStack::PushL(active);
   715 
   719 
   716 	TTime now;
   720 	TTime now;
   717 	now.UniversalTime();
   721 	now.UniversalTime();
   805 	{
   809 	{
   806 	// TestUtils::AddTestEventsL() --> should be called before this function.
   810 	// TestUtils::AddTestEventsL() --> should be called before this function.
   807 	// It deletes the database, then...
   811 	// It deletes the database, then...
   808 	// adds 8 events - 2 are visible to clients with no capabilities
   812 	// adds 8 events - 2 are visible to clients with no capabilities
   809 	// and 6 are of type KLogCallEventTypeUid, which is protected.
   813 	// and 6 are of type KLogCallEventTypeUid, which is protected.
   810 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0129 "));
   814 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0129 "));
   811 	CTestActive* active = new(ELeave)CTestActive;
   815 	CTestActive* active = new(ELeave)CTestActive;
   812 	CleanupStack::PushL(active);
   816 	CleanupStack::PushL(active);
   813 
   817 
   814 	CLogFilterList* list = new(ELeave)CLogFilterList;
   818 	CLogFilterList* list = new(ELeave)CLogFilterList;
   815 	CleanupStack::PushL(list);
   819 	CleanupStack::PushL(list);
   883 @SYMTestExpectedResults Should always succeed
   887 @SYMTestExpectedResults Should always succeed
   884 @SYMREQ REQ3431
   888 @SYMREQ REQ3431
   885 */
   889 */
   886 LOCAL_C void TestRecentViewL(CLogClient& aClient)
   890 LOCAL_C void TestRecentViewL(CLogClient& aClient)
   887 	{
   891 	{
   888 	test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0130 "));
   892 	TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-0130 "));
   889 	CTestActive* active = new(ELeave)CTestActive();
   893 	CTestActive* active = new(ELeave)CTestActive();
   890 	CleanupStack::PushL(active);
   894 	CleanupStack::PushL(active);
   891 
   895 
   892 	CLogViewRecent* view = CLogViewRecent::NewL(aClient);
   896 	CLogViewRecent* view = CLogViewRecent::NewL(aClient);
   893 	CleanupStack::PushL(view);
   897 	CleanupStack::PushL(view);
   915 
   919 
   916 //.............................................................................
   920 //.............................................................................
   917 
   921 
   918 void doTestsL()
   922 void doTestsL()
   919 	{
   923 	{
   920 	TestUtils::Initialize(_L("T_LOGENGSECURITY"));
   924     TestUtils::Initialize(KTestTitle);
   921 	
       
   922 #ifdef LOWCAP	//  defined in mmp file
       
   923 	TheHiCapability = EFalse;
       
   924 #else
       
   925 	TheHiCapability = ETrue;
       
   926 #endif
       
   927 					
   925 					
   928 	test.Start(_L("Starting tests..."));
   926 	TheTest.Start(_L("Starting tests..."));
   929 		
   927 		
   930 	CLogClient* client = CLogClient::NewL(theFs);
   928 	CLogClient* client = CLogClient::NewL(theFs);
   931 	CleanupStack::PushL(client);
   929 	CleanupStack::PushL(client);
   932 	
   930 	
   933 	TestUtils::DeleteDatabaseL();
   931 	TestUtils::DeleteDatabaseL();
   934 	
   932 	
   935 	test.Start(_L("Server startup"));
   933 	TheTest.Next(_L("Server startup"));
   936 	TestStartupL();
   934 	TestStartupL();
   937 	User::After(100000);
   935 	User::After(100000);
   938 
   936 
   939 	test.Next(_L("Test Add, Get, Change & Delete event"));
   937 	TheTest.Next(_L("Test Add, Get, Change & Delete event"));
   940 	TestUtils::DeleteDatabaseL();
   938 	TestUtils::DeleteDatabaseL();
   941 	TestBasicL(*client);
   939 	TestBasicL(*client);
   942 	theLog.Write(_L8("Basic tests OK\n"));
   940 	theLog.Write(_L8("Basic tests OK\n"));
   943 
   941 
   944 	test.Next(_L("Add Event Type"));
   942 	TheTest.Next(_L("Add Event Type"));
   945 	TestAddEventTypeL(*client);
   943 	TestAddEventTypeL(*client);
   946 	theLog.Write(_L8("Add Event Type test OK\n"));
   944 	theLog.Write(_L8("Add Event Type test OK\n"));
   947 	
   945 	
   948 	if(!TheHiCapability)
   946 	if(!TheHiCapability)
   949 		{	
   947 		{	
   950 		// TestAddEventTypeL() will have failed to add an event type, so
   948 		// TestAddEventTypeL() will have failed to add an event type, so
   951 		// this will ensure one is present for the next tests.
   949 		// this will ensure one is present for the next tests.
   952 		TestUtils::AddEventTypeL();
   950 		TestUtils::AddEventTypeL();
   953 		}
   951 		}
   954 	
   952 	
   955 	test.Next(_L("Get Event Type"));
   953 	TheTest.Next(_L("Get Event Type"));
   956 	TestGetEventTypeL(*client);
   954 	TestGetEventTypeL(*client);
   957 	theLog.Write(_L8("Get Event Type test OK\n"));
   955 	theLog.Write(_L8("Get Event Type test OK\n"));
   958 	
   956 	
   959 	test.Next(_L("Change Event Type"));
   957 	TheTest.Next(_L("Change Event Type"));
   960 	TestChangeEventTypeL(*client);
   958 	TestChangeEventTypeL(*client);
   961 	theLog.Write(_L8("Change Event Type test OK\n"));
   959 	theLog.Write(_L8("Change Event Type test OK\n"));
   962 	
   960 	
   963 	test.Next(_L("Delete Event Type"));
   961 	TheTest.Next(_L("Delete Event Type"));
   964 	TestDeleteEventTypeL(*client);
   962 	TestDeleteEventTypeL(*client);
   965 	theLog.Write(_L8("Delete Event Type test OK\n"));
   963 	theLog.Write(_L8("Delete Event Type test OK\n"));
   966 	
   964 	
   967 	test.Next(_L("Delete Built-in Event Type"));
   965 	TheTest.Next(_L("Delete Built-in Event Type"));
   968 	TestDeleteBuiltInEventTypeL(*client);
   966 	TestDeleteBuiltInEventTypeL(*client);
   969 	theLog.Write(_L8("Delete Built-in Event Type test OK\n"));
   967 	theLog.Write(_L8("Delete Built-in Event Type test OK\n"));
   970 	
   968 	
   971 	test.Next(_L("Get Server Configuration"));
   969 	TheTest.Next(_L("Get Server Configuration"));
   972 	TestGetConfigL(*client);
   970 	TestGetConfigL(*client);
   973 	theLog.Write(_L8("Get Server Configuration test OK\n"));
   971 	theLog.Write(_L8("Get Server Configuration test OK\n"));
   974 	
   972 	
   975 	test.Next(_L("Change Server Configuration"));
   973 	TheTest.Next(_L("Change Server Configuration"));
   976 	TestChangeConfigL(*client);
   974 	TestChangeConfigL(*client);
   977 	theLog.Write(_L8("Change Server Configuration test OK\n"));
   975 	theLog.Write(_L8("Change Server Configuration test OK\n"));
   978 	
   976 	
   979 	test.Next(_L("Clear the Log test"));
   977 	TheTest.Next(_L("Clear the Log test"));
   980 	ClearLogL(*client);
   978 	ClearLogL(*client);
   981 	theLog.Write(_L8("Clear the Log test OK\n"));
   979 	theLog.Write(_L8("Clear the Log test OK\n"));
   982 		
   980 		
   983 	test.Next(_L("Clear Recent List test"));
   981 	TheTest.Next(_L("Clear Recent List test"));
   984 	ClearRecentListL(*client);
   982 	ClearRecentListL(*client);
   985 	theLog.Write(_L8("Clear Recent List test OK\n"));
   983 	theLog.Write(_L8("Clear Recent List test OK\n"));
   986 	
   984 	
   987 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM	
   985 #ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM	
   988 	const TSimId KSimId = 4000000000U;
   986 	const TSimId KSimId = 4000000000U;
   989 
   987 
   990 	test.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4040 Clear the \"Log + SimId\" test"));
   988 	TheTest.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4040 Clear the \"Log + SimId\" test"));
   991 	ClearLogL(*client, KSimId);
   989 	ClearLogL(*client, KSimId);
   992 	theLog.Write(_L8("Clear the \"Log + SimId\" test OK\n"));
   990 	theLog.Write(_L8("Clear the \"Log + SimId\" test OK\n"));
   993 
   991 
   994 	test.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4041 Clear \"Recent List + SimId\" test"));
   992 	TheTest.Next(_L(" @SYMTestCaseID:PDS-LOGENG-UT-4041 Clear \"Recent List + SimId\" test"));
   995 	ClearRecentListL(*client, KSimId);
   993 	ClearRecentListL(*client, KSimId);
   996 	theLog.Write(_L8("Clear \"Recent List + SimId\" test OK\n"));
   994 	theLog.Write(_L8("Clear \"Recent List + SimId\" test OK\n"));
   997 #endif
   995 #endif
   998 	
   996 	
   999 	//
   997 	//
  1004 	// TestUtils::AddTestEventsL() -->  adds 8 events.
  1002 	// TestUtils::AddTestEventsL() -->  adds 8 events.
  1005 	// 2 are visible to clients with no capabilities
  1003 	// 2 are visible to clients with no capabilities
  1006 	// and 6 are of type KLogCallEventTypeUid, which is protected.
  1004 	// and 6 are of type KLogCallEventTypeUid, which is protected.
  1007 	TestUtils::AddViewTestEventsL();
  1005 	TestUtils::AddViewTestEventsL();
  1008 	
  1006 	
  1009 	test.Next(_L("Event View with Filter list"));
  1007 	TheTest.Next(_L("Event View with Filter list"));
  1010 	TestEventViewWithFilterL(*client);	
  1008 	TestEventViewWithFilterL(*client);	
  1011 	theLog.Write(_L8("Event View with Filter list test OK\n"));
  1009 	theLog.Write(_L8("Event View with Filter list test OK\n"));
  1012 	
  1010 	
  1013 	test.Next(_L("Recent View"));
  1011 	TheTest.Next(_L("Recent View"));
  1014 	TestRecentViewL(*client);
  1012 	TestRecentViewL(*client);
  1015 	theLog.Write(_L8("Recent View test OK\n"));
  1013 	theLog.Write(_L8("Recent View test OK\n"));
  1016 
  1014 
  1017 	TestUtils::DeleteDatabaseL();	// ready for next test
  1015 	TestUtils::DeleteDatabaseL();	// ready for next test
  1018 
  1016 
  1019 	test.End();
       
  1020 	CleanupStack::PopAndDestroy(); // client
  1017 	CleanupStack::PopAndDestroy(); // client
  1021 	}
  1018 	}