diff -r 6727c5d0afc7 -r 458d8c8d9580 homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/t_hsaddappstocollectionstate.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/t_hsaddappstocollectionstate.cpp Mon Oct 04 00:07:25 2010 +0300 @@ -0,0 +1,613 @@ +/* +* 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: Main test class for hsHomeScreenStatePlugin library. +* +*/ + +#include +#include +#include +#include +#include + +#include "t_hsmenuworkerstateplugin.h" +#include "hsaddappstocollectionstate.h" +#include "hsmenuworkerstate.h" +#include "hsaddtohomescreenstate.h" +#include "hsappschecklist.h" + +#include "hscollectionnamedialog.h" +#include "hsapp_defs.h" + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_construction() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState1; + + HsAddAppsToCollectionState aatcs1(&parentState1); + QString s1 = aatcs1.objectName(); + QVERIFY(s1 == tr("homescreen.nokia.com/state/addappstocollectionstate")); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_save() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState1; + + HsAddAppsToCollectionState aatcs1(&parentState1); + + aatcs1.mCollectionId = 10; + aatcs1.save(); + QCOMPARE(aatcs1.mCollectionId, 10); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_cleanData() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState1; + + HsAddAppsToCollectionState aatcs1(&parentState1); + + aatcs1.mCollectionId = 10; + aatcs1.cleanData(); + QVERIFY(aatcs1.mCollectionId == 0); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_setCollectionName() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState1; + + HsAddAppsToCollectionState aatcs1(&parentState1); + + aatcs1.setCollectionName("test"); + QVERIFY(aatcs1.mCollectionName == "test"); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_setCollectionId() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState1; + + HsAddAppsToCollectionState aatcs1(&parentState1); + + aatcs1.setCollectionId(1); + QVERIFY(aatcs1.mCollectionId == 1); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_setAppList() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState1; + + HsAddAppsToCollectionState aatcs1(&parentState1); + + QList appList; + appList.append(1); + aatcs1.setAppList(appList); + QVERIFY(aatcs1.mAppList.count() == 1); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_showMessageAppsAdded() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState; + HsAddAppsToCollectionState aatcs(&parentState); + + //aatcs.mMenuService = new MenuService(); + + aatcs.onEntry(new HsMenuEvent(HsMenuEvent::OpenCollectionFromAppLibrary, QVariantMap())); + aatcs.showMessageAppsAdded(10); + aatcs.stateExited(); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_selectCollection() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState; + HsAddAppsToCollectionState aatcs(&parentState); + QVERIFY(aatcs.mListDialog == NULL); + + aatcs.selectCollection(); + + QVERIFY(aatcs.mListDialog); + QVERIFY(aatcs.mListDialog->testAttribute(Qt::WA_DeleteOnClose)); + QCOMPARE(aatcs.mListDialog->dismissPolicy(), HbPopup::NoDismiss); + // disconnect to check if connection was done + bool result = disconnect(aatcs.mListDialog, SIGNAL(finished(HbAction*)), + &aatcs, SLOT(listDialogFinished(HbAction*))); + QVERIFY (result); + + aatcs.mListDialog->close(); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_listDialogFinished() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState; + HsAddAppsToCollectionState aatcs(&parentState); + QVERIFY(aatcs.mListDialog == NULL); + + aatcs.selectCollection(); + + QVERIFY(aatcs.mListDialog); + + aatcs.listDialogFinished(qobject_cast(aatcs.mListDialog->actions().value(1))); //Cancel + + QVERIFY(aatcs.mListDialog == NULL); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_newCollection() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState; + HsAddAppsToCollectionState aatcs(&parentState); + QVERIFY(aatcs.mEditorDialog == NULL); + + aatcs.newCollection(); + + QVERIFY(aatcs.mEditorDialog); + QVERIFY(aatcs.mEditorDialog->testAttribute(Qt::WA_DeleteOnClose)); + + // disconnect to check if connection was done + bool result = disconnect(aatcs.mEditorDialog, SIGNAL(finished(HbAction*)), + &aatcs, SLOT(editorDialogFinished(HbAction*))); + QVERIFY (result); + + aatcs.mEditorDialog->close(); + + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_editorDialogFinished() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState; + HsAddAppsToCollectionState aatcs(&parentState); + aatcs.mEditorDialog = new HsCollectionNameDialog(); + + aatcs.editorDialogFinished(qobject_cast(aatcs.mEditorDialog->actions().value(0))); + + QVERIFY(aatcs.mEditorDialog == NULL); + + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_collectionSelected() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsMenuWorkerState parentState; + HsAddAppsToCollectionState aatcs(&parentState); + QVERIFY(aatcs.mListDialog == NULL); + + aatcs.selectCollection(); + + QVERIFY(aatcs.mListDialog); + + QStandardItemModel *standardItemModel = aatcs.standardItemModel(0); + QModelIndex index(standardItemModel->indexFromItem(standardItemModel->item(3,0))); + QVERIFY(index.isValid()); + aatcs.collectionSelected(index); + + QVERIFY(aatcs.mListDialog == NULL); + delete standardItemModel; + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_appsCheckListState() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAddAppsToCollectionState addAppsState; + connect(&addAppsState,SIGNAL(transitToFinalState()), + this,SLOT(testTransitToStateSlot())); + QCOMPARE((int)addAppsState.mAppsCheckList,NULL); + addAppsState.appsCheckListState(); + QVERIFY(addAppsState.mAppsCheckList != NULL); + QCOMPARE(addAppsState.mAppsCheckList->mSortAttribute, + addAppsState.mApplicationsSortAttribute); + mTransitToStateEmited = false; + addAppsState.mAppsCheckList->mAppsSelectDialog->close(); + QTest::qWait(150); + QCOMPARE(mTransitToStateEmited,true); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AddAppsToCollectionState_selectApplicationsDone() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAddAppsToCollectionState addAppsState; + connect(&addAppsState,SIGNAL(transitToSaveState(const QList&)), + this,SLOT(testTransitToStateSlot())); + QList appList; + appList.append(1222); + QCOMPARE(addAppsState.mActionType, + HsAddAppsToCollectionState::NoActionType); + mTransitToStateEmited = false; + addAppsState.selectApplicationsDone(appList); + QTest::qWait(100); + QCOMPARE(mTransitToStateEmited,true); + + addAppsState.mActionType = + HsAddAppsToCollectionState::ViaAllViewOptionMenuType; + disconnect(&addAppsState,SIGNAL(transitToFinalState()), + this,SLOT(testTransitToStateSlot())); + connect(&addAppsState,SIGNAL(transitToSelectCollectionState()), + this,SLOT(testTransitToStateSlot())); + mTransitToStateEmited = false; + addAppsState.selectApplicationsDone(appList); + QTest::qWait(100); + QCOMPARE(mTransitToStateEmited,true); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AppsCheckList_showAppsCheckboxList() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAppsCheckList checkList; + Hs::HsSortAttribute sortOrder = Hs::NoHsSortAttribute; + mCommitEmited = false; + connect(&checkList,SIGNAL(commit(const QList&)), + this,SLOT(testCommitSlot(const QList&))); + checkList.showAppsCheckboxList(sortOrder); + QVERIFY(checkList.mModel != NULL); + QVERIFY(checkList.mActionConfirm != NULL); + QVERIFY(checkList.mListView != NULL); + QVERIFY(checkList.mAppsSelectDialog != NULL); + QCOMPARE(mCommitEmited,false); + checkList.mAppsSelectDialog->close(); + QTest::qWait(100); + QCOMPARE((int)checkList.mAppsSelectDialog,NULL); + QCOMPARE(mCommitEmited,true); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::testCommitSlot(const QList &appList) +{ + if(appList.isEmpty()){ + mCommitEmited = true; + } else { + mCommitEmited = false; + } +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AppsCheckList_getItemsList() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + QStandardItemModel *standardModel = new QStandardItemModel(2,1); + QStandardItem *standardItem = new QStandardItem(); + standardItem->setData(2, CaItemModel::IdRole); + standardItem->setData(QString("bbb"), Qt::DisplayRole); + QList items; + items << standardItem; + standardModel->insertRow(0, items); + { + QStandardItem *standardItem = new QStandardItem(); + standardItem->setData(3, CaItemModel::IdRole); + //standardItem->setData(QString("aaa"), Qt::DisplayRole); + QList text; + text << QString("aaa"); + text << QString("ccc"); + standardItem->setData(text, Qt::DisplayRole); + + QList items; + items << standardItem; + standardModel->insertRow(0, items); + } + + QModelIndexList modelIndexList; + modelIndexList.append(standardModel->index(0,0)); + modelIndexList.append(standardModel->index(1,0)); + + HsMenuWorkerState parentState; + + HsAppsCheckList checkList; + QList list = checkList.getSortedItemsList(modelIndexList); + QCOMPARE(list.count(), 2); + QCOMPARE(list[0], 3); + QCOMPARE(list[1], 2); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AppsCheckList_setSortOrder() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAppsCheckList checkList; + QCOMPARE(checkList.mSortAttribute, Hs::AscendingNameHsSortAttribute); + checkList.setSortOrder(Hs::DescendingNameHsSortAttribute); + QCOMPARE(checkList.mSortAttribute, Hs::DescendingNameHsSortAttribute); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::AppsCheckList_selectedItemsChanged() +{ +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARK; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN + { + HsAppsCheckList checkList; + checkList.mModel = + HsMenuService::getAllApplicationsModel(Hs::NoHsSortAttribute); + checkList.constructControls(); + QVERIFY(checkList.mActionConfirm != NULL); + QVERIFY(checkList.mListView != NULL); + QVERIFY(checkList.mAppsSelectDialog != NULL); + checkList.selectedItemsChanged(); + QCOMPARE(checkList.mActionConfirm->isEnabled(),false); + QItemSelectionModel *model = checkList.mListView->selectionModel(); + model->select(model->model()->index(0,0),QItemSelectionModel::Select); + QTest::qWait(100); + checkList.selectedItemsChanged(); + QCOMPARE(checkList.mActionConfirm->isEnabled(),true); + } +#ifdef Q_OS_SYMBIAN +#ifdef UT_MEMORY_CHECK + __UHEAP_MARKEND; +#endif//UT_MEMORY_CHECK +#endif//Q_OS_SYMBIAN +} + +// --------------------------------------------------------------------------- +// --------------------------------------------------------------------------- +// +void MenuStatesTest::testTransitToStateSlot() +{ + mTransitToStateEmited = true; +} +