diff -r 6727c5d0afc7 -r 458d8c8d9580 homescreenapp/stateplugins/hsapplibrarystateplugin/tsrc/t_applibrarystate/src/t_applibrarystate.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/tsrc/t_applibrarystate/src/t_applibrarystate.cpp Mon Oct 04 00:07:25 2010 +0300 @@ -0,0 +1,441 @@ +/* +* 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 hsHomeScreenStatePlugin library. +* +*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "hsapplibrarystate.h" +#include "hscollectionstate.h" +#include "caentry.h" +#include "caitemmodel.h" +#include "hsmenuview.h" +#include "hsmenuevent.h" +#include "hsallcollectionsstate.h" +#include "hsmenueventtransition.h" +#include "hsallappsstate.h" +#include "hsinstalledappsstate.h" +#include "hsoperatorhandler_p.h" +#include "hsoperatorhandler.h" +#include "hsmenuservice.h" + +#include "t_hsaddtohomescreenmockstate.h" +#include "t_hsmockmodel.h" +#include "t_applibrarystate.h" + +#include "hsmenumodetransition.h" + +#ifdef QT_EXTENSIONS +#include + +const int IncludeOperatorStore = 0x00000001; +const int RemoveOviStore = 0x00000008; +//const char *operatorStoreIconPath +// = "z:/private/20022F35/customsvg/operatorstore.svg"; + +void MenuStatesTest::OperatorHandler_storesPresent() +{ + HsOperatorHandler oviHandler; + XQSettingsManager man; + + bool value = oviHandler.m_q->storeValue(&man, IncludeOperatorStore); + oviHandler.m_q->mOperatorStorePresent = value; + QCOMPARE(oviHandler.operatorStorePresent(), value); + + bool value1 = !oviHandler.m_q->storeValue(&man, RemoveOviStore); + oviHandler.m_q->mOviStorePresent = value1; + QCOMPARE(oviHandler.oviStorePresent(), value1); + +} + +void MenuStatesTest::OperatorHandler_first() +{ + HsOperatorHandler oviHandler; + XQSettingsManager man; + + bool value = oviHandler.m_q->operatorStoreFirst(&man); + oviHandler.m_q->mOperatorStoreFirst = value; + QCOMPARE(oviHandler.operatorStoreFirst(), value); +} + +void MenuStatesTest::OperatorHandler_type() +{ + HsOperatorHandler oviHandler; + XQSettingsManager man; + + HsOperatorHandlerPrivate::HsStoreType value + = oviHandler.m_q->operatorStoreType(&man); + QVERIFY(value == HsOperatorHandlerPrivate::ApplicationType + || value == HsOperatorHandlerPrivate::UrlType + || value == HsOperatorHandlerPrivate::NoneType); +} + +void MenuStatesTest::OperatorHandler_createAction() +{ + HsOperatorHandler oviHandler; + oviHandler.m_q->mIcon = HbIcon(); + HbAction *action = oviHandler.prepareOperatorStoreAction(new HbAction); + QVERIFY(action->icon().isNull()); +} + +#endif//QT_EXTENSIONS + + + + +class HsMainWindowMock : public HsMainWindow +{ + virtual void setCurrentView(HbView *view); + +}; + +void HsMainWindowMock::setCurrentView(HbView *view) +{ + Q_UNUSED(view); + // do nothing +} + +void MenuStatesTest::cleanup() +{ + qApp->processEvents(); +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::ApplicationLibraryState_construction() +{ +#ifdef Q_OS_SYMBIAN + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + QString qApplications(hbTrId("txt_applib_title_applications")); + + QScopedPointer appLibraryState(new HsAppLibraryState); + + QCOMPARE(appLibraryState->mMenuViewBuilder.currentView()->title(), + qApplications); + QVERIFY(appLibraryState->mAllAppsState); + QVERIFY(appLibraryState->mAllCollectionsState); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::ApplicationLibraryState_historySlots() +{ +#ifdef Q_OS_SYMBIAN + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAppLibraryState appLibrary; + + appLibrary.allCollectionsStateEntered(); + QCOMPARE(qobject_cast(appLibrary.mAllCollectionsState), + appLibrary.mHistoryTransaction->targetState()); + QCOMPARE(appLibrary.mInstalledAppsState->transitions().length(), 1); + QCOMPARE(appLibrary.mInstalledAppsState->transitions()[0]->sourceState(), + qobject_cast(appLibrary.mInstalledAppsState)); + QCOMPARE(appLibrary.mInstalledAppsState->transitions()[0]->targetState(), + qobject_cast(appLibrary.mAllCollectionsState)); + + appLibrary.allAppsStateEntered(); + QCOMPARE(qobject_cast(appLibrary.mAllAppsState), + appLibrary.mHistoryTransaction->targetState()); + QCOMPARE(appLibrary.mInstalledAppsState->transitions().length(), 1); + QCOMPARE(appLibrary.mInstalledAppsState->transitions()[0]->sourceState(), + qobject_cast(appLibrary.mInstalledAppsState)); + QCOMPARE(appLibrary.mInstalledAppsState->transitions()[0]->targetState(), + qobject_cast(appLibrary.mAllAppsState)); + + appLibrary.collectionStateEntered(); + QCOMPARE(appLibrary.mInstalledAppsState->transitions().length(), 1); + QCOMPARE(appLibrary.mInstalledAppsState->transitions()[0]->sourceState(), + qobject_cast(appLibrary.mInstalledAppsState)); + QCOMPARE(appLibrary.mInstalledAppsState->transitions()[0]->targetState(), + qobject_cast(appLibrary.mCollectionState)); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::ApplicationLibraryState_backSteppingAction() +{ +#ifdef Q_OS_SYMBIAN + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + QScopedPointer wind(new HbMainWindow); + //create statemachine to perform transitions + QScopedPointer machine(new QStateMachine(0)); + + HsAppLibraryState *appLibrary = new HsAppLibraryState(machine.data()); + + machine->setInitialState(appLibrary); + + machine->start(); + + qApp->sendPostedEvents(); + //initiate transition from collection state + appLibrary->mCollectionState->openAppLibrary(); + + qApp->sendPostedEvents(); + + QVERIFY(appLibrary->mAllAppsState->mMenuView->view()->menu()); + machine->stop(); + qApp->removePostedEvents(0); + disconnect(appLibrary,SIGNAL(initialize()),this,SLOT(appLibraryEntered())); + + qApp->processEvents(); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::ApplicationLibraryState_clearToolbarLatch() +{ +#ifdef Q_OS_SYMBIAN + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAppLibraryState appLibrary; + appLibrary.mMenuViewBuilder.allAppsAction()->setChecked(true); + appLibrary.mMenuViewBuilder.toolBarActionGroup()->checkedAction()->setChecked(true); + appLibrary.clearToolbarLatch(); + QVERIFY(appLibrary.mMenuViewBuilder.toolBarActionGroup()->checkedAction() == NULL); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +#ifdef QT_EXTENSIONS +void MenuStatesTest::ApplicationLibraryState_oviStoreAction() +{ + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK + { + HsAppLibraryState appLibrary; + QVERIFY(appLibrary.oviStoreAction()==0); + } +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::OperatorHandler_icon() +{ + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK + { + HsOperatorHandler oviHandler; + XQSettingsManager man; + HbIcon testIcon = oviHandler.m_q->createIcon(&man); + oviHandler.m_q->mIcon = testIcon; + QCOMPARE(oviHandler.icon(), testIcon); + } +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::OperatorHandler_text() +{ + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK + { + HsOperatorHandler oviHandler; + XQSettingsManager man; + + QString testText = oviHandler.m_q->operatorStoreTitle(&man); + oviHandler.m_q->mOperatorStoreTitle = testText; + QCOMPARE(oviHandler.text(), testText); + } +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::OperatorHandler_action() +{ + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK + { + HsOperatorHandler oviHandler; + HbIcon testIcon; + oviHandler.m_q->mIcon = testIcon; + oviHandler.m_q->mOperatorEntry = new CaEntry;; + QCOMPARE(oviHandler.icon(), testIcon); + oviHandler.action(); + QCOMPARE(oviHandler.icon(), testIcon); + } +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::OperatorHandler_entry() +{ + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK + { + HsOperatorHandler oviHandler; + XQSettingsManager man; + + CaEntry *testAppEntry = oviHandler.m_q->createAppEntry(&man); + oviHandler.m_q->mOperatorEntry = testAppEntry; + //if entry is NULL then tahts because there were no key in CR + //if it is not NULL then it must be application + QVERIFY(!testAppEntry || testAppEntry->entryTypeName() == + Hs::applicationTypeName); + + CaEntry *testUrlEntry = oviHandler.m_q->createUrlEntry(&man); + oviHandler.m_q->mOperatorEntry = testUrlEntry; + //similar as for application above + QVERIFY(!testUrlEntry || testUrlEntry->entryTypeName() == + Hs::urlTypeName); + + } +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::OperatorHandler_noCrWriteAccess() +{ + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK + { +// XQSettingsManager *crManager = new XQSettingsManager; +// XQCentralRepositorySettingsKey urlKey(AppLibUid, OperatorUrl); +// QVariant urlVarian = crManager->readItemValue( +// urlKey, XQSettingsManager::TypeString); +// QString dbg = urlVarian.toString(); +// bool result = crManager->writeItemValue(urlKey, QVariant("test")); +// QCOMPARE(result, false); + } +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +} +#endif//QT_EXTENSIONS + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::HsBaseViewState_createApplicationLaunchFailMessage() +{ +#ifdef Q_OS_SYMBIAN + User::ResetInactivityTime();//it should help for Viewserver11 panic +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuViewBuilder menuViewBuilder; + HsMenuModeWrapper menuMode; + HsMainWindow mainWindow; + + HsAllAppsState viewState(menuViewBuilder, menuMode, mainWindow); + + int errCode = -333; + int dummyItemId = 555; + viewState.createApplicationLaunchFailMessage(errCode,dummyItemId); + QVERIFY(!viewState.mApplicationLaunchFailMessage.isNull()); + + QVERIFY(viewState.mApplicationLaunchFailMessage->close()); + QTest::qWait(2000); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + + +QTEST_MAIN(MenuStatesTest)