sl@0: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // Example CTestStep derived implementation sl@0: // sl@0: // sl@0: sl@0: /** sl@0: @file UloggerServerTest0Step.cpp sl@0: @internalTechnology sl@0: */ sl@0: #include "uloggerservertest0step.h" sl@0: #include "te_uloggerservertestsuitedefs.h" sl@0: #include "uloggerwatcher.h" sl@0: sl@0: sl@0: sl@0: CUloggerServerTest0Step::~CUloggerServerTest0Step() sl@0: /** sl@0: * Destructor sl@0: */ sl@0: { sl@0: } sl@0: sl@0: CUloggerServerTest0Step::CUloggerServerTest0Step() sl@0: /** sl@0: * Constructor sl@0: */ sl@0: { sl@0: // **MUST** call SetTestStepName in the constructor as the controlling sl@0: // framework uses the test step name immediately following construction to set sl@0: // up the step's unique logging ID. sl@0: SetTestStepName(KUloggerServerTest0Step); sl@0: } sl@0: sl@0: TVerdict CUloggerServerTest0Step::doTestStepPreambleL() sl@0: /** sl@0: * @return - TVerdict code sl@0: * Override of base class virtual sl@0: */ sl@0: { sl@0: INFO_PRINTF1(_L("****This is unit test for CULoggerWatcher class****")); sl@0: sl@0: INFO_PRINTF1(_L("************************************************")); sl@0: INFO_PRINTF1(_L("Note: To test CUloggerServer properly we must:")); sl@0: INFO_PRINTF1(_L("- change UID3 for our test unit as we need access to server private directory")); sl@0: INFO_PRINTF1(_L("************************************************")); sl@0: sl@0: sl@0: iScheduler = new (ELeave) CActiveScheduler(); sl@0: CActiveScheduler::Install(iScheduler); sl@0: sl@0: SetTestStepResult(EPass); sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: sl@0: TVerdict CUloggerServerTest0Step::doTestStepL() sl@0: /** sl@0: * @return - TVerdict code sl@0: * Override of base class pure virtual sl@0: * Our implementation only gets called if the base class doTestStepPreambleL() did sl@0: * not leave. That being the case, the current test result value will be EPass. sl@0: */ sl@0: { sl@0: iErrors = 0; sl@0: if (TestStepResult()==EPass) sl@0: { sl@0: iErrors += this->Test1L();//CULoggerWatcher::NewL sl@0: iErrors += this->Test2L();//CULoggerWatcher::NewLC sl@0: iErrors += this->Test3L();//CULoggerWatcher::StartWatching sl@0: iErrors += this->Test4L();//CULoggerWatcher::StopWatching sl@0: iErrors += this->Test5L();//CULoggerWatcher::RunL sl@0: sl@0: sl@0: //display results sl@0: TBuf<128> res; sl@0: res.AppendFormat(_L("%d errors"), iErrors); sl@0: INFO_PRINTF1(_L("****Results****")); sl@0: INFO_PRINTF1(res); sl@0: if(iErrors == 0) sl@0: SetTestStepResult(EPass); sl@0: else sl@0: SetTestStepResult(EFail); sl@0: } sl@0: sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: sl@0: sl@0: TVerdict CUloggerServerTest0Step::doTestStepPostambleL() sl@0: /** sl@0: * @return - TVerdict code sl@0: * Override of base class virtual sl@0: */ sl@0: { sl@0: delete iScheduler; sl@0: iScheduler = NULL; sl@0: return TestStepResult(); sl@0: } sl@0: sl@0: sl@0: TInt CUloggerServerTest0Step::Test1L() sl@0: { sl@0: TInt errors = 0; sl@0: INFO_PRINTF1(_L("Testing - CULoggerWatcher::NewL method")); sl@0: CULoggerWatcher *obj = CULoggerWatcher::NewL(); sl@0: if(obj == NULL) sl@0: { sl@0: INFO_PRINTF1(_L("error")); sl@0: errors++; sl@0: } sl@0: else sl@0: { sl@0: delete obj; sl@0: obj = NULL; sl@0: } sl@0: return errors; sl@0: } sl@0: sl@0: TInt CUloggerServerTest0Step::Test2L() sl@0: { sl@0: TInt errors = 0; sl@0: //CULoggerWatcher::NewLC sl@0: INFO_PRINTF1(_L("Testing - CULoggerWatcher::NewLC method")); sl@0: CULoggerWatcher *obj = CULoggerWatcher::NewLC(); sl@0: if(obj == NULL) sl@0: { sl@0: INFO_PRINTF1(_L("error")); sl@0: errors++; sl@0: } sl@0: else sl@0: CleanupStack::PopAndDestroy(); sl@0: return errors; sl@0: } sl@0: sl@0: TInt CUloggerServerTest0Step::Test3L() sl@0: { sl@0: TInt errors = 0; sl@0: //CULoggerWatcher::StartWatching sl@0: INFO_PRINTF1(_L("Testing - CULoggerWatcher::StartWatching method")); sl@0: CULoggerWatcher *obj = CULoggerWatcher::NewL(); sl@0: /* sl@0: * We need to create service provider for active object (RTimer is good choice) sl@0: * */ sl@0: RTimer timer; sl@0: timer.CreateLocal(); sl@0: timer.After(obj->GetStatus(), 2*1000*1000); sl@0: obj->StartWatching(this); sl@0: obj->StopWatching(); sl@0: timer.Close(); sl@0: if(obj->GetStatus().Int() != KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("error")); sl@0: errors++; sl@0: } sl@0: delete obj; sl@0: return errors; sl@0: } sl@0: sl@0: TInt CUloggerServerTest0Step::Test4L() sl@0: { sl@0: TInt errors = 0; sl@0: //CULoggerWatcher::StopWatching sl@0: INFO_PRINTF1(_L("Testing - CULoggerWatcher::StopWatching method")); sl@0: CULoggerWatcher *obj = CULoggerWatcher::NewL(); sl@0: RTimer timer; sl@0: timer.CreateLocal(); sl@0: timer.After(obj->GetStatus(), 2*1000*1000); sl@0: obj->StartWatching(this); sl@0: obj->StopWatching(); sl@0: timer.Close(); sl@0: TBuf<128> buf; sl@0: buf.AppendFormat(_L("Result of Stopping: %d"), obj->GetStatus().Int()); sl@0: INFO_PRINTF1(buf); sl@0: if(obj->GetStatus().Int() != KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("error")); sl@0: errors++; sl@0: } sl@0: delete obj; sl@0: sl@0: return errors; sl@0: } sl@0: sl@0: TInt CUloggerServerTest0Step::Test5L() sl@0: { sl@0: TInt errors = 0; sl@0: //CULoggerWatcher::RunL sl@0: INFO_PRINTF1(_L("Testing - CULoggerWatcher::RunL method")); sl@0: CULoggerWatcher *obj = CULoggerWatcher::NewL(); sl@0: RTimer timer; sl@0: timer.CreateLocal(); sl@0: timer.After(obj->GetStatus(), 2*1000*1000); sl@0: obj->StartWatching(this); //CULogger watcher must have observer initialized sl@0: //becouse testing null pointer is not allowed sl@0: obj->StopWatching(); sl@0: timer.Close(); sl@0: TRAPD(err, obj->RunL()); sl@0: if(err != KErrNone) sl@0: { sl@0: INFO_PRINTF1(_L("error")); sl@0: errors++; sl@0: } sl@0: delete obj; sl@0: sl@0: return errors; sl@0: } sl@0: