diff -r e4f038c420f7 -r 3ac3aaebaee5 homescreenapp/hsapplicationlauncher/tsrc/t_hsapplicationlauncher/src/t_hsapplicationlauncher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/hsapplicationlauncher/tsrc/t_hsapplicationlauncher/src/t_hsapplicationlauncher.cpp Mon Sep 20 10:19:07 2010 +0300 @@ -0,0 +1,346 @@ +/* +* Copyright (c) 2010 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: Main test class for hsapplicationlauncher library. +* +*/ + +#include +#include +#include "t_hsapplicationlauncher.h" +#include "hsapplicationlauncher.h" + +const TInt KPSCategoryUid(0x20022F36); +const TInt KPSCrashCountKey(1); + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::initTestCase() +{ +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::cleanupTestCase() +{ +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testActivate() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testRunL() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->RunL(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testInitProcessMonitorL() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->InitProcessMonitorL(0); + QVERIFY(hsApplicationLauncher->iProcessMonitor); + hsApplicationLauncher->InitProcessMonitorL(0); + QVERIFY(hsApplicationLauncher->iProcessMonitor); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testDoCancel() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->InitProcessMonitorL(0); + hsApplicationLauncher->DoCancel(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testShutdownApp() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->ShutdownApp(KErrGeneral); + QVERIFY(hsApplicationLauncher->iApplicationReturnValue == KErrGeneral); + QCOMPARE(hsApplicationLauncher->ApplicationReturnValue(), KErrGeneral); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testRunError() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->RunError(KErrGeneral); + QVERIFY(hsApplicationLauncher->iApplicationReturnValue == KErrGeneral); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testListeningLanguageSelection() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->StartListeningLanguageSelectionL(); + QVERIFY(hsApplicationLauncher->iCenRepNotifyHandler); + hsApplicationLauncher->StopListeningLanguageSelection(); + QVERIFY(!hsApplicationLauncher->iCenRepNotifyHandler); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testHandleNotifyInt() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->StartListeningLanguageSelectionL(); + hsApplicationLauncher->HandleNotifyInt(0x00000007, 1); + QVERIFY(!hsApplicationLauncher->iCenRepNotifyHandler); + hsApplicationLauncher->HandleNotifyInt(0x00000008, 1); + QVERIFY(!hsApplicationLauncher->iCenRepNotifyHandler); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testStartHomeScreen() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->StartHomeScreen(); + QVERIFY(hsApplicationLauncher->iProcessMonitor); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testProcessEnded() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + + TExitCategoryName panicString; + hsApplicationLauncher->ProcessEnded(EExitPanic, KErrNone, panicString); + TInt crashCount = 0; + RProperty::Get(TUid::Uid(KPSCategoryUid), KPSCrashCountKey, crashCount); + QVERIFY(crashCount == 1); + + if(hsApplicationLauncher->IsActive()) + { + hsApplicationLauncher->Cancel(); + } + + hsApplicationLauncher->ProcessEnded(EExitKill, KErrGeneral, panicString); + RProperty::Get(TUid::Uid(KPSCategoryUid), KPSCrashCountKey, crashCount); + QVERIFY(crashCount == 2); + + if(hsApplicationLauncher->IsActive()) + { + hsApplicationLauncher->Cancel(); + } + + hsApplicationLauncher->ProcessEnded(EExitTerminate, KErrGeneral, panicString); + RProperty::Get(TUid::Uid(KPSCategoryUid), KPSCrashCountKey, crashCount); + QVERIFY(crashCount == 2); + + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testProcessMonitoringError() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->ProcessMonitoringError(KErrGeneral); + QVERIFY(hsApplicationLauncher->iApplicationReturnValue == KErrGeneral); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testSystemShutdownEvent() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->SystemShutdownEvent(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testIsLanguageSelectedL() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->StartListeningLanguageSelectionL(); + TBool languageSelected = ETrue; + TRAP(errNo, languageSelected = hsApplicationLauncher->IsLanguageSelectedL()); + QCOMPARE(errNo, KErrNone); +#if defined( __WINS__ ) + QVERIFY(languageSelected == EFalse); +#else + QVERIFY(languageSelected); +#endif + hsApplicationLauncher->StopListeningLanguageSelection(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testProcessMonitorRunL() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->InitProcessMonitorL(0); + hsApplicationLauncher->iProcessMonitor->RunL(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testProcessMonitorDoCancel() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->InitProcessMonitorL(0); + hsApplicationLauncher->iProcessMonitor->DoCancel(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testProcessMonitorRunError() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + hsApplicationLauncher->InitProcessMonitorL(0); + hsApplicationLauncher->iProcessMonitor->RunError(KErrGeneral); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testShutDownMonitorRunL() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + QVERIFY(hsApplicationLauncher->iShutdownMonitor); + if(hsApplicationLauncher->iShutdownMonitor->IsActive()) + { + hsApplicationLauncher->iShutdownMonitor->Cancel(); + } + hsApplicationLauncher->iShutdownMonitor->RunL(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testShutDownMonitorDoCancel() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + QVERIFY(hsApplicationLauncher->iShutdownMonitor); + hsApplicationLauncher->iShutdownMonitor->DoCancel(); + delete hsApplicationLauncher; +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void t_hsapplicationlauncher::testShutDownMonitorRunError() +{ + CHsLaunch *hsApplicationLauncher = 0; + TRAPD(errNo, hsApplicationLauncher = CHsLaunch::NewL()); + QCOMPARE(errNo, KErrNone); + hsApplicationLauncher->Activate(); + QVERIFY(hsApplicationLauncher->iShutdownMonitor); + errNo = hsApplicationLauncher->iShutdownMonitor->RunError(KErrGeneral); + QCOMPARE(errNo, KErrGeneral); + delete hsApplicationLauncher; +} + +QTEST_MAIN(t_hsapplicationlauncher)