diff -r 3ab5c078b490 -r c63ee96dbe5f taskswitcher/backstepping/tsrc/t_tsbackstepping/t_tsbackstepping.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/taskswitcher/backstepping/tsrc/t_tsbackstepping/t_tsbackstepping.cpp Thu Sep 16 12:11:40 2010 +0100 @@ -0,0 +1,109 @@ +/** Copyright (c) 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: +* +*/ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "t_tsbackstepping.h" +#include "tsbackstepping.h" +#include +#include + +#include "tstestutils.h" + +const TUid KIconApplicationUid = {0xEd0b4e47}; +const TUid KNoIconApplicationUid = {0xE453fc1b}; +const TUid KHsApplicationUid = {0x20022F35}; + +namespace { + const char KIconApplicationName[] = "appwithicon"; + const char KNoIconApplicationName[] = "appwithouticon"; +} + +// ----------------------------------------------------------------------------- +// init and cleanup methods +// ----------------------------------------------------------------------------- +// +void TestBackStepping::initTestCase() +{ + mResources = CTsResourceManager::NewL(); + mMonitor = CTsWindowGroupsMonitor::NewL(*mResources); +} + +void TestBackStepping::cleanupTestCase() +{ + delete mMonitor; + delete mResources; +} + +// ----------------------------------------------------------------------------- +// test cases +// ----------------------------------------------------------------------------- +// +void TestBackStepping::testBacksteppingMovesHomescreenToSecondPosition() +{ + // start test applicationss + quint64 iconAppId; + quint64 noIconAppId; + QVERIFY(TsTestUtils::startApplication(KIconApplicationName, iconAppId)); + QVERIFY(TsTestUtils::startApplication(KNoIconApplicationName, noIconAppId)); + + // get window group list that will be passed to backstepping algorithm + RArray windowGroupList; + QCOMPARE(mResources->WsSession().WindowGroupList(0, &windowGroupList), KErrNone); + + // we don't test window server events monitor. manually force backstepping algorithm + CTsBackstepping *backstepping = CTsBackstepping::NewL(*mMonitor); + static_cast(backstepping)->HandleWindowGroupChanged(*mResources, windowGroupList.Array()); + + // read window group list list after backstepping + QCOMPARE(mResources->WsSession().WindowGroupList(0, &windowGroupList), KErrNone); + + QCOMPARE(getUidForWgId(windowGroupList[0].iId), KNoIconApplicationUid); + QCOMPARE(getUidForWgId(windowGroupList[1].iId), KHsApplicationUid); + QCOMPARE(getUidForWgId(windowGroupList[2].iId), KIconApplicationUid); + + delete backstepping; + windowGroupList.Close(); + + // close test applications + QVERIFY(TsTestUtils::closeApplication(noIconAppId)); + QVERIFY(TsTestUtils::closeApplication(iconAppId)); +} + +// ----------------------------------------------------------------------------- +// helper method +// ----------------------------------------------------------------------------- +// +TUid TestBackStepping::getUidForWgId(int wgId) const +{ + CApaWindowGroupName *windowName = CApaWindowGroupName::NewLC(mResources->WsSession(), wgId); + TUid appUid = windowName->AppUid(); + CleanupStack::PopAndDestroy(windowName); + return appUid; +} + +QTEST_MAIN(TestBackStepping)