homescreenapp/stateplugins/hsmenuworkerstateplugin/tsrc/t_hsmenuworkerstateplugin/src/t_hsaddappstocollectionstate.cpp
changeset 96 458d8c8d9580
child 97 66b5fe3c07fd
--- /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 <QStateMachine>
+#include <QTest>
+#include <qstandarditemmodel.h>
+#include <hbaction.h>
+#include <hblistview.h>
+
+#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<int> 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<HbAction *>(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<HbAction *>(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<int>&)),
+        this,SLOT(testTransitToStateSlot()));
+    QList<int> 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<int>&)),
+                this,SLOT(testCommitSlot(const QList<int>&)));
+        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<int> &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<QStandardItem *> items;
+        items << standardItem;
+        standardModel->insertRow(0, items);
+        {
+            QStandardItem *standardItem = new QStandardItem();
+            standardItem->setData(3, CaItemModel::IdRole);
+            //standardItem->setData(QString("aaa"), Qt::DisplayRole);
+            QList<QVariant> text;
+            text << QString("aaa");
+            text << QString("ccc");
+            standardItem->setData(text, Qt::DisplayRole);
+
+            QList<QStandardItem *> 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<int> 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;
+}
+