homescreenapp/hsdomainmodel/tsrc/t_hsdomainmodel/src/t_hspagenewwidgetlayout.cpp
changeset 90 3ac3aaebaee5
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreenapp/hsdomainmodel/tsrc/t_hsdomainmodel/src/t_hspagenewwidgetlayout.cpp	Mon Sep 20 10:19:07 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* 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 "t_hsdomainmodel.h"
+#include "hswidgetpositioningonwidgetadd.h"
+#include "hspagenewwidgetlayout.h"
+#include "hswidgethost.h"
+#include "hsscene.h"
+#include "hspage.h"
+
+void TestHsDomainModel::testHsPageNewWidgetLayout()
+{
+    HsWidgetPositioningOnWidgetAdd::setInstance(
+        new HsAnchorPointInBottomRight);
+
+    HsPageNewWidgetLayout *layout = new HsPageNewWidgetLayout();
+    
+    HsPageData pageData;
+    HsPage *page = HsPage::createInstance(pageData);
+    QVERIFY(page);
+
+    // add new widget
+    HsWidgetData widgetData;
+    widgetData.pageId = page->databaseId();
+    widgetData.uri = "mockwidgetplugin";
+    HsWidgetHost *newWidget = HsWidgetHost::createInstance(widgetData);
+    QVERIFY(newWidget);
+    page->addNewWidget(newWidget);
+
+    // add existing widget
+    HsWidgetData widgetData2;
+    widgetData2.pageId = page->databaseId();
+    widgetData2.uri = "mockwidgetplugintoosmall";
+    HsWidgetHost *existingWidget = HsWidgetHost::createInstance(widgetData2);
+    QVERIFY(existingWidget);
+    page->addExistingWidget(existingWidget);
+
+    HsScene::instance()->mActivePage = page;
+    layout->addItem(newWidget);
+    QVERIFY(layout->count() == 1);    
+    layout->setGeometry(QRectF());
+    layout->removeAt(0);
+    QVERIFY(layout->count() == 0);    
+    QVERIFY(layout->sizeHint(Qt::NSizeHints) == QSizeF());
+    
+    delete layout;
+    delete newWidget;
+    delete existingWidget;
+    HsWidgetPositioningOnWidgetAdd::setInstance(0);
+}
+
+void TestHsDomainModel::testHsPageNewWidgetLayoutWithPosition()
+{
+    HsWidgetPositioningOnWidgetAdd::setInstance(
+        new HsAnchorPointInBottomRight);
+    HsPageNewWidgetLayout *layout = new HsPageNewWidgetLayout();
+
+    HsWidgetHost *widget = new HsWidgetHost(1);
+    HsPage *page = new HsPage;
+    HsScene::instance()->mActivePage = page;
+    layout->addItem(widget);
+    layout->mTouchPoint = QPointF(100, 100);
+    layout->setGeometry(QRectF());
+  
+    delete layout;
+    delete widget;
+    HsWidgetPositioningOnWidgetAdd::setInstance(0);
+}