diff -r 667e88a979d7 -r 31a8f755b7fe loggingservices/eventlogger/test/src/t_OrderById.CPP --- a/loggingservices/eventlogger/test/src/t_OrderById.CPP Mon Mar 15 12:46:30 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +0,0 @@ -// Copyright (c) 2004-2009 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: -// test code for INC045441 - Log Engine does not return events in sequence order -// -// - -#include -#include -#include -#include "TEST.H" - -RTest test( _L( "Test sequence order of returned events" ) ); - -_LIT( KTestNumber1, "11111" ); -_LIT( KTestNumber2, "22222" ); -_LIT( KTestNumber3, "33333" ); - -#undef test //there is a "test" macro which hides "RTest test" declaration. - -/** -Add an event to the log engine database. -The event ID assigned by logengine is store in gTheId - -@param aClient -@param aNumber The number that the event should contain -@return The index for the event added. - -*/ -LOCAL_C TInt AddEventL( CLogClient& aClient, CLogEvent& aEvent, CTestActive& aActive, TInt aIndex ) - { - TInt returnId = KLogNullId; - - // Reset - TTime now; - now.UniversalTime(); - - aEvent.SetContact( aIndex ); - - // load the event with test values - switch (aIndex) - { - case 1: - aEvent.SetNumber( KTestNumber1 ); - break; - case 2: - aEvent.SetNumber( KTestNumber2 ); - break; - case 3: - aEvent.SetNumber( KTestNumber3 ); - break; - } - - // add the event to the logeng database - aActive.StartL(); - aClient.AddEvent( aEvent, aActive.iStatus ); - CActiveScheduler::Start(); - TEST2(aActive.iStatus.Int(), KErrNone); - - // check that an ID has been assigned - returnId = aEvent.Id(); - TEST( returnId != KLogNullId ); - TEST( aEvent.Time() >= now ); - - // return the event id which has been assigned by the - // log engine - return returnId; - } - - -/** -Get the event from the log engine database. - -@param aClient -@param aTheId Unique id for the event to be fetch -@param aNumber The number that the event should contain -*/ -LOCAL_C void TestGetEventL( CLogClient& aClient, TInt aTheId, TInt aIndex ) - - { - CTestActive* active = new( ELeave )CTestActive(); - CleanupStack::PushL( active ); - - CLogEvent* event = CLogEvent::NewL(); - CleanupStack::PushL( event ); - - event->SetId( aTheId ); - - active->StartL(); - aClient.GetEvent( *event, active->iStatus ); - CActiveScheduler::Start(); - TEST2(active->iStatus.Int(), KErrNone); - - // check we got the right one back - TEST( event->Contact() == aIndex ); - - TPtrC eventNumber = event->Number(); - - TBuf<30> dateString; - _LIT( KDateString5, "%-B%:0%J%:1%T%:2%S%:3%+B" ); - event->Time().FormatL( dateString, KDateString5 ); - TPtrC eventDate = dateString.Ptr(); - test.Printf( _L( "Id:%d No:%S Time:%S \n" ), event->Id(), &eventNumber, &eventDate ); - - CleanupStack::PopAndDestroy( 2 ); // event, active - } - -/** -Test code for INC045441 - Log Engine does not return events in sequence order - -@SYMTestCaseID SYSLIB-LOGENG-CT-1020 -@SYMTestCaseDesc Tests for checking the sequence order on events returned by log engine -@SYMTestPriority High -@SYMTestActions Test for getting the event in order as they were added to the log - Check for memory and no error -@SYMTestExpectedResults Test must not fail -@SYMREQ REQ0000 -*/ -LOCAL_C void TestRecentViewOrderingL( CLogClient& aClient ) -// -// -// - { - test.Next(_L(" @SYMTestCaseID:SYSLIB-LOGENG-CT-1020 ")); - CLogEvent* event = CLogEvent::NewL(); - CleanupStack::PushL(event); - - CTestActive* active = new( ELeave )CTestActive(); - CleanupStack::PushL( active ); - - CLogViewRecent* view = CLogViewRecent::NewL( aClient ); - CleanupStack::PushL( view ); - - TBuf buf; - aClient.GetString(buf, R_LOG_DIR_MISSED); - - event->SetEventType( KLogCallEventTypeUid ); - event->SetDirection( buf ); - - TEST( !view->SetRecentListL( KLogRecentMissedCalls, active->iStatus ) ); - TEST( view->CountL() == 0 ); - - TTime time; - test.Next( _L( "add new event 1" ) ); - TInt eventId1 = AddEventL( aClient, *event, *active, 1 ); - TestGetEventL( aClient, eventId1, 1 ); - - test.Next( _L( "time plus 10 mins - add new event 2" ) ); - time.HomeTime(); - TTimeIntervalMinutes timeTravelForward( 10 ); - time += timeTravelForward; - User::SetHomeTime( time ); - TInt eventId2 = AddEventL( aClient, *event, *active, 2 ); - TestGetEventL( aClient, eventId2, 2 ); - - test.Next( _L( "time minus 5 mins - add new event 3" ) ); - time.HomeTime(); - TTimeIntervalMinutes timeTravelBackward( 5 ); - time -= timeTravelBackward; - User::SetHomeTime( time ); - TInt eventId3 = AddEventL( aClient, *event, *active, 3 ); - TestGetEventL( aClient, eventId3, 3 ); - - TEST( view->CountL() == 3 ); - - active->StartL(); - // Get most recent - TEST( view->FirstL( active->iStatus ) ); - CActiveScheduler::Start(); - TEST2(active->iStatus.Int(), KErrNone); - - TInt id3 = view->Event().Id(); - // Get the one before that - active->StartL(); - TEST( view->NextL( active->iStatus ) ); - CActiveScheduler::Start(); - TEST2(active->iStatus.Int(), KErrNone); - TInt id2 = view->Event().Id(); - - // Get the one before that - active->StartL(); - TEST( view->NextL( active->iStatus ) ); - CActiveScheduler::Start(); - TEST2(active->iStatus.Int(), KErrNone); - TInt id1 = view->Event().Id(); - - TEST( id1 == eventId1 ); - TEST( id2 == eventId2 ); - TEST( id3 == eventId3 ); - - CleanupStack::PopAndDestroy( 3 ); // view, active, event - theLog.Write( _L8( "Test 1.1 OK\n" ) ); - } - - - -void doTestsL() - { - TestUtils::Initialize( _L( "T_OrderById" ) ); - TestUtils::DeleteDatabaseL(); - - CLogClient* client = CLogClient::NewL( theFs ); - CleanupStack::PushL( client ); - - CLogChangeNotifier* notifier = CLogChangeNotifier::NewL(); - CleanupStack::PushL( notifier ); - - test.Start( _L( "Recent view sorts by Id not ETime" ) ); - TestRecentViewOrderingL( *client ); - theLog.Write( _L8( "Test 1 OK\n" ) ); - - CleanupStack::PopAndDestroy( 2 ); // notifier, client; - }