|
1 /* |
|
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 #include "t_hsdomainmodel.h" |
|
19 #include "hswidgetpositioningonwidgetadd.h" |
|
20 #include "hspagenewwidgetlayout.h" |
|
21 #include "hswidgethost.h" |
|
22 #include "hsscene.h" |
|
23 #include "hspage.h" |
|
24 |
|
25 void TestHsDomainModel::testHsPageNewWidgetLayout() |
|
26 { |
|
27 HsWidgetPositioningOnWidgetAdd::setInstance( |
|
28 new HsAnchorPointInBottomRight); |
|
29 |
|
30 HsPageNewWidgetLayout *layout = new HsPageNewWidgetLayout(); |
|
31 |
|
32 HsPageData pageData; |
|
33 HsPage *page = HsPage::createInstance(pageData); |
|
34 QVERIFY(page); |
|
35 |
|
36 // add new widget |
|
37 HsWidgetData widgetData; |
|
38 widgetData.pageId = page->databaseId(); |
|
39 widgetData.uri = "mockwidgetplugin"; |
|
40 HsWidgetHost *newWidget = HsWidgetHost::createInstance(widgetData); |
|
41 QVERIFY(newWidget); |
|
42 page->addNewWidget(newWidget); |
|
43 |
|
44 // add existing widget |
|
45 HsWidgetData widgetData2; |
|
46 widgetData2.pageId = page->databaseId(); |
|
47 widgetData2.uri = "mockwidgetplugintoosmall"; |
|
48 HsWidgetHost *existingWidget = HsWidgetHost::createInstance(widgetData2); |
|
49 QVERIFY(existingWidget); |
|
50 page->addExistingWidget(existingWidget); |
|
51 |
|
52 HsScene::instance()->mActivePage = page; |
|
53 layout->addItem(newWidget); |
|
54 QVERIFY(layout->count() == 1); |
|
55 layout->setGeometry(QRectF()); |
|
56 layout->removeAt(0); |
|
57 QVERIFY(layout->count() == 0); |
|
58 QVERIFY(layout->sizeHint(Qt::NSizeHints) == QSizeF()); |
|
59 |
|
60 delete layout; |
|
61 delete newWidget; |
|
62 delete existingWidget; |
|
63 HsWidgetPositioningOnWidgetAdd::setInstance(0); |
|
64 } |
|
65 |
|
66 void TestHsDomainModel::testHsPageNewWidgetLayoutWithPosition() |
|
67 { |
|
68 HsWidgetPositioningOnWidgetAdd::setInstance( |
|
69 new HsAnchorPointInBottomRight); |
|
70 HsPageNewWidgetLayout *layout = new HsPageNewWidgetLayout(); |
|
71 |
|
72 HsWidgetHost *widget = new HsWidgetHost(1); |
|
73 HsPage *page = new HsPage; |
|
74 HsScene::instance()->mActivePage = page; |
|
75 layout->addItem(widget); |
|
76 layout->mTouchPoint = QPointF(100, 100); |
|
77 layout->setGeometry(QRectF()); |
|
78 |
|
79 delete layout; |
|
80 delete widget; |
|
81 HsWidgetPositioningOnWidgetAdd::setInstance(0); |
|
82 } |