homescreenapp/stateplugins/hsapplibrarystateplugin/tsrc/t_searchviewbuilder/src/t_searchviewbuilder.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/tsrc/t_searchviewbuilder/src/t_searchviewbuilder.cpp Mon Sep 20 10:19:07 2010 +0300
@@ -0,0 +1,187 @@
+/*
+* 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 "t_searchviewbuilder.h"
+#include <QInputContext>
+#include <QSortFilterProxyModel>
+#include <HbAbstractViewItem>
+#include "hssearchviewbuilder.h"
+#include "hsmenuviewbuilder.h"
+#include "hsmainwindow.h"
+#include "hssearchview.h"
+#include "caitemmodel.h"
+
+class HsMainWindowMock : public HsMainWindow
+{
+ virtual void setCurrentView(HbView *view) { Q_UNUSED(view); }
+};
+
+class MockViewItem : public HbAbstractViewItem
+{
+ virtual HbAbstractViewItem *createItem()
+ {
+ HbAbstractViewItem *item = new MockViewItem;
+ return item;
+ }
+};
+
+void MenuStatesTest::testSlot()
+{
+ mSlotActivated = true;
+}
+
+
+void MenuStatesTest::cleanup()
+{
+ qApp->processEvents();
+}
+
+void MenuStatesTest::HsSearchViewBuilder_construction()
+{
+ HsSearchViewBuilder builder;
+ QVERIFY(builder.mLoadedObjects.count());
+}
+
+void MenuStatesTest::HsSearchViewBuilder_uiObjects()
+{
+ HsSearchViewBuilder builder;
+ QVERIFY(builder.searchListView());
+ QVERIFY(builder.searchPanel());
+ QVERIFY(builder.searchView());
+ QVERIFY(builder.searchViewLabel());
+}
+
+void MenuStatesTest::HsSearchViewBuilder_setSearchLabledContext()
+{
+ HsSearchViewBuilder builder;
+ builder.setSearchLabledContext();
+ QVERIFY(builder.mLabledContext);
+}
+
+void MenuStatesTest::HsSearchViewBuilder_loadViewEmptySection()
+{
+ HsSearchViewBuilder builder;
+ int firstCount = builder.mLoadedObjects.count();
+ builder.loadViewEmptySection();
+ QCOMPARE(firstCount, builder.mLoadedObjects.count());
+}
+
+void MenuStatesTest::HsSearchViewBuilder_loadViewListSection()
+{
+ HsSearchViewBuilder builder;
+ int firstCount = builder.mLoadedObjects.count();
+ builder.loadViewListSection();
+ QCOMPARE(firstCount, builder.mLoadedObjects.count());
+}
+
+void MenuStatesTest::HsSearchViewBuilder_searchViewConstruction()
+{
+ HsMenuViewBuilder builder;
+ HsMainWindowMock window;
+
+ HsSearchView search(builder, HsAllAppsContext, window);
+
+ QCOMPARE(search.mProxyModel->filterRole(), int(CaItemModel::TextRole));
+ QCOMPARE(search.mProxyModel->filterKeyColumn(), 0);
+ QCOMPARE(search.mProxyModel->sortRole(), int(CaItemModel::TextRole));
+}
+
+void MenuStatesTest::HsSearchViewBuilder_activatedProxySlot()
+{
+ HsMenuViewBuilder builder;
+ HsMainWindowMock window;
+
+ HsSearchView search(builder, HsAllAppsContext, window);
+ connect(&search, SIGNAL(activated(QModelIndex)),
+ this, SLOT(testSlot()));
+ QModelIndex idx;
+
+ mSlotActivated = false;
+ search.activatedProxySlot(idx);
+ QCOMPARE(mSlotActivated, true);
+}
+
+void MenuStatesTest::HsSearchViewBuilder_longPressedProxySlot()
+{
+ HsMenuViewBuilder builder;
+ HsMainWindowMock window;
+
+ HsSearchView search(builder, HsAllAppsContext, window);
+ connect(&search, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
+ this, SLOT(testSlot()));
+
+ MockViewItem item;
+ QPointF point;
+
+ mSlotActivated = false;
+ search.longPressedProxySlot(&item, point);
+ QCOMPARE(mSlotActivated, true);
+}
+
+void MenuStatesTest::HsSearchViewBuilder_showHide()
+{
+ HsMenuViewBuilder builder;
+ HsMainWindowMock window;
+
+ HsSearchView search(builder, HsAllAppsContext, window);
+
+ search.setSearchPanelVisible(true);
+ QVERIFY(search.mSearchListView);
+ search.hideSearchPanel();
+ QVERIFY(!search.mSearchListView);
+
+}
+
+
+class MockInputContext: public QInputContext
+{
+public:
+ QEvent::Type mEventType;
+ MockInputContext(): mEventType(QEvent::None) {}
+ QString identifierName() { return qApp->inputContext()->identifierName();}
+ bool isComposing() const { return qApp->inputContext()->isComposing();}
+ QString language() { return qApp->inputContext()->language();}
+ void reset() {;}
+ void setFocusWidget(QWidget* widget) {QInputContext::setFocusWidget(widget);}
+ bool filterEvent(const QEvent* event)
+ {
+ mEventType = event->type();
+ return true;
+ }
+};
+
+void MenuStatesTest::HsSearchViewBuilder_hideVkb()
+{
+ HsMenuViewBuilder builder;
+ HsMainWindowMock window;
+
+ HsSearchView search(builder, HsAllAppsContext, window);
+
+ MockInputContext *const newInputContext(new MockInputContext());
+
+ qApp->setInputContext(newInputContext);
+
+ search.hideVkb();
+
+ QEvent::Type actualEventType = newInputContext->mEventType;
+ qApp->setInputContext(0);
+
+ QCOMPARE(actualEventType, QEvent::CloseSoftwareInputPanel);
+}
+
+
+QTEST_MAIN(MenuStatesTest)