homescreenapp/hsdomainmodel/tsrc/t_hsdomainmodel/src/t_hsdatabase.cpp
author hgs
Wed, 20 Oct 2010 15:25:39 +0300
changeset 101 ba1b7e218624
parent 90 3ac3aaebaee5
permissions -rw-r--r--
201042
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
90
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
#include <QGraphicsWidget>
hgs
parents:
diff changeset
    19
#include <QSqlDatabase>
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include <HbFeedback>
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
#include "t_hsdomainmodel.h"
hgs
parents:
diff changeset
    24
#include "hsdatabase.h"
hgs
parents:
diff changeset
    25
#include "hsdomainmodeldatastructures.h"
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
void TestHsDomainModel::testHsDatabaseConstruction()
hgs
parents:
diff changeset
    28
{
hgs
parents:
diff changeset
    29
    HsDatabase *db = new HsDatabase;
hgs
parents:
diff changeset
    30
    QVERIFY(!db->parent());
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
    delete db;
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
    QObject *parent = new QObject;
hgs
parents:
diff changeset
    35
    db = new HsDatabase(parent);
hgs
parents:
diff changeset
    36
    QVERIFY(db->parent() == parent);
hgs
parents:
diff changeset
    37
    delete parent;
hgs
parents:
diff changeset
    38
}
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
void TestHsDomainModel::testHsDatabaseProperties()
hgs
parents:
diff changeset
    41
{
hgs
parents:
diff changeset
    42
    HsDatabase *db = new HsDatabase;
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
    QVERIFY(db->property("connectionName").toString().isEmpty());
hgs
parents:
diff changeset
    45
    QVERIFY(db->connectionName().isEmpty());
hgs
parents:
diff changeset
    46
hgs
parents:
diff changeset
    47
    QVERIFY(db->property("databaseName").toString().isEmpty());
hgs
parents:
diff changeset
    48
    QVERIFY(db->databaseName().isEmpty());
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
    db->setProperty("connectionName", "a");
hgs
parents:
diff changeset
    51
    QCOMPARE(db->connectionName(), QLatin1String("a"));
hgs
parents:
diff changeset
    52
    db->setConnectionName("b");
hgs
parents:
diff changeset
    53
    QCOMPARE(db->connectionName(), QLatin1String("b"));
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
    db->setProperty("databaseName", "c");
hgs
parents:
diff changeset
    56
    QCOMPARE(db->databaseName(), QLatin1String("c"));
hgs
parents:
diff changeset
    57
    db->setDatabaseName("d");
hgs
parents:
diff changeset
    58
    QCOMPARE(db->databaseName(), QLatin1String("d"));
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
    delete db;
hgs
parents:
diff changeset
    61
}
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
void TestHsDomainModel::testHsDatabaseStaticInterface()
hgs
parents:
diff changeset
    64
{
hgs
parents:
diff changeset
    65
    HsDatabase *db = HsDatabase::takeInstance();
hgs
parents:
diff changeset
    66
    QVERIFY(!HsDatabase::instance());
hgs
parents:
diff changeset
    67
    HsDatabase::setInstance(db);
hgs
parents:
diff changeset
    68
    QVERIFY(HsDatabase::instance() == db);
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
void TestHsDomainModel::testHsDatabaseTransaction()
hgs
parents:
diff changeset
    72
{
hgs
parents:
diff changeset
    73
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
    QList<HsPageData> pages;
hgs
parents:
diff changeset
    76
    db->pages(pages);
hgs
parents:
diff changeset
    77
    QCOMPARE(pages.count(), 0);
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
    HsPageData page;
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    db->transaction();
hgs
parents:
diff changeset
    82
    page.indexPosition = 0;
hgs
parents:
diff changeset
    83
    db->insertPage(page);
hgs
parents:
diff changeset
    84
    db->rollback();
hgs
parents:
diff changeset
    85
    db->pages(pages);
hgs
parents:
diff changeset
    86
    QCOMPARE(pages.count(), 0);
hgs
parents:
diff changeset
    87
hgs
parents:
diff changeset
    88
    db->transaction();
hgs
parents:
diff changeset
    89
    page.indexPosition = 0;
hgs
parents:
diff changeset
    90
    db->insertPage(page);
hgs
parents:
diff changeset
    91
    db->commit();
hgs
parents:
diff changeset
    92
    db->pages(pages);
hgs
parents:
diff changeset
    93
    QCOMPARE(pages.count(), 1);
hgs
parents:
diff changeset
    94
}
hgs
parents:
diff changeset
    95
hgs
parents:
diff changeset
    96
void TestHsDomainModel::testHsDatabaseSceneMethods()
hgs
parents:
diff changeset
    97
{
hgs
parents:
diff changeset
    98
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
    99
hgs
parents:
diff changeset
   100
    HsSceneData scene;
hgs
parents:
diff changeset
   101
    db->scene(scene);
hgs
parents:
diff changeset
   102
    QCOMPARE(scene.id, 1);
hgs
parents:
diff changeset
   103
}
hgs
parents:
diff changeset
   104
hgs
parents:
diff changeset
   105
void TestHsDomainModel::testHsDatabasePageMethods()
hgs
parents:
diff changeset
   106
{
hgs
parents:
diff changeset
   107
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
    HsPageData page;
hgs
parents:
diff changeset
   110
    page.indexPosition = 0;
hgs
parents:
diff changeset
   111
    db->insertPage(page);
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
    HsPageData page2;
hgs
parents:
diff changeset
   114
    page2.id = page.id;
hgs
parents:
diff changeset
   115
    db->page(page2);
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    QCOMPARE(page2.indexPosition, page.indexPosition);
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
    page.indexPosition = 1;
hgs
parents:
diff changeset
   120
    db->updatePage(page);
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    db->page(page2);
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
    QCOMPARE(page2.indexPosition, page.indexPosition);
hgs
parents:
diff changeset
   125
}
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
void TestHsDomainModel::testHsDatabaseWidgetMethods()
hgs
parents:
diff changeset
   128
{
hgs
parents:
diff changeset
   129
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
    HsWidgetData widget;
hgs
parents:
diff changeset
   132
    widget.uri = "widgeturi";
hgs
parents:
diff changeset
   133
    widget.pageId = 1;
hgs
parents:
diff changeset
   134
    db->insertWidget(widget);
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
    QList<HsWidgetData> widgets;
hgs
parents:
diff changeset
   137
    db->widgets(1, widgets);
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
    QCOMPARE(widgets.count(), 1);
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
    db->deleteWidgets("widgeturi");
hgs
parents:
diff changeset
   142
    db->widgets(1, widgets);
hgs
parents:
diff changeset
   143
hgs
parents:
diff changeset
   144
    QCOMPARE(widgets.count(), 0);
hgs
parents:
diff changeset
   145
}
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
void TestHsDomainModel::testHsDatabaseWidgetPreferenceMethods()
hgs
parents:
diff changeset
   148
{
hgs
parents:
diff changeset
   149
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
    HsWidgetData widget;
hgs
parents:
diff changeset
   152
    widget.uri = "widgeturi";
hgs
parents:
diff changeset
   153
    widget.pageId = 1;
hgs
parents:
diff changeset
   154
    db->insertWidget(widget);
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
    QVariantHash preferences;
hgs
parents:
diff changeset
   157
    preferences.insert("a", 1);
hgs
parents:
diff changeset
   158
    preferences.insert("b", 2);
hgs
parents:
diff changeset
   159
hgs
parents:
diff changeset
   160
    db->setWidgetPreferences(widget.id, preferences);
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
    QVariantHash preferences2;
hgs
parents:
diff changeset
   163
    db->widgetPreferences(widget.id, preferences2);
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    QCOMPARE(preferences2.count(), 2);
hgs
parents:
diff changeset
   166
    QCOMPARE(preferences2.value("a"), QVariant(1));
hgs
parents:
diff changeset
   167
    QCOMPARE(preferences2.value("b"), QVariant(2));
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
    QVariant value;
hgs
parents:
diff changeset
   170
    db->widgetPreference(widget.id, "a", value);
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
    QCOMPARE(value, QVariant(1));
hgs
parents:
diff changeset
   173
    preferences.insert("a", QVariant());
hgs
parents:
diff changeset
   174
    preferences.insert("b", QVariant());
hgs
parents:
diff changeset
   175
hgs
parents:
diff changeset
   176
    db->setWidgetPreferences(widget.id, preferences);
hgs
parents:
diff changeset
   177
    db->widgetPreferences(widget.id, preferences2);
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
    QCOMPARE(preferences2.count(), 0);
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
}
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
void TestHsDomainModel::testHsDatabaseBadConnection()
hgs
parents:
diff changeset
   184
{
hgs
parents:
diff changeset
   185
	HsDatabase db;
hgs
parents:
diff changeset
   186
hgs
parents:
diff changeset
   187
	QVariantHash vh;
hgs
parents:
diff changeset
   188
	QVariant v;
hgs
parents:
diff changeset
   189
	Qt::Orientation orientation(Qt::Vertical);
hgs
parents:
diff changeset
   190
	HsWidgetPresentationData pd;
hgs
parents:
diff changeset
   191
	QString uri("foouri");
hgs
parents:
diff changeset
   192
	QString key("fookey");
hgs
parents:
diff changeset
   193
	HsWidgetData wd;
hgs
parents:
diff changeset
   194
	QList<HsWidgetData> wds;
hgs
parents:
diff changeset
   195
	HsPageData pad;
hgs
parents:
diff changeset
   196
	QList<HsPageData> pads;
hgs
parents:
diff changeset
   197
	HsSceneData sd;
hgs
parents:
diff changeset
   198
hgs
parents:
diff changeset
   199
	db.setConnectionName(QString("fooconnection"));
hgs
parents:
diff changeset
   200
	QVERIFY(!db.open());
hgs
parents:
diff changeset
   201
hgs
parents:
diff changeset
   202
	QVERIFY(!db.configuration(vh));
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
	QVERIFY(!db.setWidgetPreferences(33, vh));
hgs
parents:
diff changeset
   205
hgs
parents:
diff changeset
   206
	QVERIFY(!db.widgetPreference(33, key, v));
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
	QVERIFY(!db.widgetPreferences(33, vh));
hgs
parents:
diff changeset
   209
hgs
parents:
diff changeset
   210
	QVERIFY(!db.deleteWidgetPresentation(33, orientation));
hgs
parents:
diff changeset
   211
hgs
parents:
diff changeset
   212
	QVERIFY(!db.setWidgetPresentation(pd));
hgs
parents:
diff changeset
   213
hgs
parents:
diff changeset
   214
	QVERIFY(!db.widgetPresentation(pd));
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
	QVERIFY(!db.deleteWidgets(uri));
hgs
parents:
diff changeset
   217
hgs
parents:
diff changeset
   218
	QVERIFY(!db.deleteWidget(33));
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
	QVERIFY(!db.updateWidget(wd));
hgs
parents:
diff changeset
   221
hgs
parents:
diff changeset
   222
	QVERIFY(!db.insertWidget(wd));
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
	QVERIFY(!db.widget(wd));
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
	QVERIFY(!db.widgets(uri, wds));
hgs
parents:
diff changeset
   227
hgs
parents:
diff changeset
   228
	QVERIFY(!db.widgets(22, wds));
hgs
parents:
diff changeset
   229
    QVariantHash variantHash;
hgs
parents:
diff changeset
   230
    int count=0;	
hgs
parents:
diff changeset
   231
	QVERIFY(!db.widgets("uri", variantHash, count));
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
	QVERIFY(!db.deletePage(22));
hgs
parents:
diff changeset
   234
hgs
parents:
diff changeset
   235
	QVERIFY(!db.updatePage(pad));
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
	QVERIFY(!db.insertPage(pad));
hgs
parents:
diff changeset
   238
hgs
parents:
diff changeset
   239
	QVERIFY(!db.page(pad));
hgs
parents:
diff changeset
   240
hgs
parents:
diff changeset
   241
	QVERIFY(!db.pages(pads));
hgs
parents:
diff changeset
   242
hgs
parents:
diff changeset
   243
	QVERIFY(!db.scene(sd));
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
    QVERIFY(!db.updateWidgetZValues(QHash<int, qreal>(), Qt::Vertical));
hgs
parents:
diff changeset
   246
}
hgs
parents:
diff changeset
   247
hgs
parents:
diff changeset
   248
Q_DECLARE_METATYPE(QVariantHash)
hgs
parents:
diff changeset
   249
void TestHsDomainModel::testHsDatabaseMatchWidgetsPreferences_data()
hgs
parents:
diff changeset
   250
{
hgs
parents:
diff changeset
   251
    QTest::addColumn<QVariantHash>("matchesPreferences");
hgs
parents:
diff changeset
   252
    QTest::addColumn<QStringList>("widgetsPreferencesKeys");
hgs
parents:
diff changeset
   253
    QTest::addColumn<QStringList>("widgetsPreferencesValues");
hgs
parents:
diff changeset
   254
    QTest::addColumn<bool>("expectedResult");
hgs
parents:
diff changeset
   255
hgs
parents:
diff changeset
   256
    QVariantHash preferences;
hgs
parents:
diff changeset
   257
    preferences.insert("a", "1");
hgs
parents:
diff changeset
   258
    QTest::newRow("searchCriteria1")
hgs
parents:
diff changeset
   259
        << preferences
hgs
parents:
diff changeset
   260
        << (QStringList() << "a" << "a" << "a" << "b" << "c" << "d")
hgs
parents:
diff changeset
   261
        << (QStringList() << "1" << "2" << "3" << "1" << "1" << "1")
hgs
parents:
diff changeset
   262
        << true;
hgs
parents:
diff changeset
   263
        
hgs
parents:
diff changeset
   264
    preferences.insert("b", "1");
hgs
parents:
diff changeset
   265
    QTest::newRow("searchCriteria2")
hgs
parents:
diff changeset
   266
        << preferences
hgs
parents:
diff changeset
   267
        << (QStringList() << "a" << "a" << "a" << "b" << "c" << "d")
hgs
parents:
diff changeset
   268
        << (QStringList() << "1" << "2" << "3" << "1" << "1" << "1")
hgs
parents:
diff changeset
   269
        << true;
hgs
parents:
diff changeset
   270
    preferences.insert("e", "1");
hgs
parents:
diff changeset
   271
    QTest::newRow("searchCriteria2")
hgs
parents:
diff changeset
   272
        << preferences
hgs
parents:
diff changeset
   273
        << (QStringList() << "a" << "a" << "a" << "b" << "c" << "d")
hgs
parents:
diff changeset
   274
        << (QStringList() << "1" << "2" << "3" << "1" << "1" << "1")
hgs
parents:
diff changeset
   275
        << false;
hgs
parents:
diff changeset
   276
    QTest::newRow("searchCriteria3")
hgs
parents:
diff changeset
   277
        << preferences
hgs
parents:
diff changeset
   278
        << (QStringList())
hgs
parents:
diff changeset
   279
        << (QStringList())
hgs
parents:
diff changeset
   280
        << false;
hgs
parents:
diff changeset
   281
    preferences.clear();
hgs
parents:
diff changeset
   282
    QTest::newRow("searchCriteria4")
hgs
parents:
diff changeset
   283
        << preferences
hgs
parents:
diff changeset
   284
        << (QStringList() << "a" << "a" << "a" << "b" << "c" << "d")
hgs
parents:
diff changeset
   285
        << (QStringList() << "1" << "2" << "3" << "1" << "1" << "1")
hgs
parents:
diff changeset
   286
        << true;
hgs
parents:
diff changeset
   287
}
hgs
parents:
diff changeset
   288
hgs
parents:
diff changeset
   289
void TestHsDomainModel::testHsDatabaseMatchWidgetsPreferences()
hgs
parents:
diff changeset
   290
{
hgs
parents:
diff changeset
   291
    QFETCH(QVariantHash, matchesPreferences);
hgs
parents:
diff changeset
   292
    QFETCH(QStringList, widgetsPreferencesKeys);
hgs
parents:
diff changeset
   293
    QFETCH(QStringList, widgetsPreferencesValues);
hgs
parents:
diff changeset
   294
    QFETCH(bool, expectedResult);       
hgs
parents:
diff changeset
   295
    
hgs
parents:
diff changeset
   296
    QMultiMap<QString, QString> widgetPreferences;
hgs
parents:
diff changeset
   297
    for (int i=0; i<widgetsPreferencesKeys.count(); ++i) {
hgs
parents:
diff changeset
   298
        widgetPreferences.insert(widgetsPreferencesKeys[i], widgetsPreferencesValues[i]);
hgs
parents:
diff changeset
   299
    }
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
   302
    QCOMPARE(expectedResult, db->matchWidgetPreferences(matchesPreferences, widgetPreferences));
hgs
parents:
diff changeset
   303
}
hgs
parents:
diff changeset
   304
hgs
parents:
diff changeset
   305
void TestHsDomainModel::testHsDatabaseWidgetsCount()
hgs
parents:
diff changeset
   306
{
hgs
parents:
diff changeset
   307
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
   308
hgs
parents:
diff changeset
   309
    HsWidgetData widget;
hgs
parents:
diff changeset
   310
    widget.uri = "widgeturi";
hgs
parents:
diff changeset
   311
    widget.pageId = 1;
hgs
parents:
diff changeset
   312
    db->insertWidget(widget);
hgs
parents:
diff changeset
   313
    QVariantHash preferences;
hgs
parents:
diff changeset
   314
    preferences.insert("a", "1");
hgs
parents:
diff changeset
   315
    preferences.insert("b", "2");
hgs
parents:
diff changeset
   316
    db->setWidgetPreferences(widget.id, preferences);
hgs
parents:
diff changeset
   317
    
hgs
parents:
diff changeset
   318
    widget.uri = "widgeturi2";
hgs
parents:
diff changeset
   319
    widget.pageId = 1;
hgs
parents:
diff changeset
   320
    db->insertWidget(widget);
hgs
parents:
diff changeset
   321
    
hgs
parents:
diff changeset
   322
    widget.uri = "widgeturi";
hgs
parents:
diff changeset
   323
    widget.pageId = 1;
hgs
parents:
diff changeset
   324
    db->insertWidget(widget);
hgs
parents:
diff changeset
   325
    preferences.insert("a", "3");
hgs
parents:
diff changeset
   326
    db->setWidgetPreferences(widget.id, preferences);
hgs
parents:
diff changeset
   327
hgs
parents:
diff changeset
   328
    QVariantHash searchCriteria;
hgs
parents:
diff changeset
   329
    int count=0;
hgs
parents:
diff changeset
   330
    QVERIFY(db->widgets("widgeturi", searchCriteria, count));
hgs
parents:
diff changeset
   331
    QCOMPARE(count, 2);
hgs
parents:
diff changeset
   332
    
hgs
parents:
diff changeset
   333
    searchCriteria.insert("a", "1");
hgs
parents:
diff changeset
   334
    QVERIFY(db->widgets("widgeturi", searchCriteria, count));
hgs
parents:
diff changeset
   335
    QCOMPARE(count, 1);
hgs
parents:
diff changeset
   336
    searchCriteria.insert("a", "2");
hgs
parents:
diff changeset
   337
    QVERIFY(db->widgets("widgeturi", searchCriteria, count));
hgs
parents:
diff changeset
   338
    QCOMPARE(count, 0);
hgs
parents:
diff changeset
   339
    searchCriteria.insert("a", "1");
hgs
parents:
diff changeset
   340
    QVERIFY(db->widgets("widgeturi2", searchCriteria, count));
hgs
parents:
diff changeset
   341
    QCOMPARE(count, 0);
hgs
parents:
diff changeset
   342
    QVERIFY(db->widgets("", searchCriteria, count));
hgs
parents:
diff changeset
   343
    QCOMPARE(count, 0);
hgs
parents:
diff changeset
   344
    searchCriteria.clear();
hgs
parents:
diff changeset
   345
    QVERIFY(db->widgets("widgeturi2", searchCriteria, count));
hgs
parents:
diff changeset
   346
    QCOMPARE(count, 1);
hgs
parents:
diff changeset
   347
    searchCriteria.clear();
hgs
parents:
diff changeset
   348
    QVERIFY(db->widgets("", searchCriteria, count));
hgs
parents:
diff changeset
   349
    QCOMPARE(count, 0);
hgs
parents:
diff changeset
   350
}
hgs
parents:
diff changeset
   351
hgs
parents:
diff changeset
   352
void TestHsDomainModel::testHsDatabaseUpdateWidgetZValues()
hgs
parents:
diff changeset
   353
{
hgs
parents:
diff changeset
   354
    HsDatabase *db = HsDatabase::instance();
hgs
parents:
diff changeset
   355
    HsPageData page;
hgs
parents:
diff changeset
   356
    page.indexPosition = 0;
hgs
parents:
diff changeset
   357
    QVERIFY(db->insertPage(page));
hgs
parents:
diff changeset
   358
    
hgs
parents:
diff changeset
   359
    HsWidgetData widget1;
hgs
parents:
diff changeset
   360
    widget1.pageId = page.id;
hgs
parents:
diff changeset
   361
    widget1.uri = "uri1";
hgs
parents:
diff changeset
   362
    QVERIFY(db->insertWidget(widget1));
hgs
parents:
diff changeset
   363
hgs
parents:
diff changeset
   364
    HsWidgetData widget2;
hgs
parents:
diff changeset
   365
    widget2.pageId = page.id;
hgs
parents:
diff changeset
   366
    widget2.uri = "uri2";
hgs
parents:
diff changeset
   367
    QVERIFY(db->insertWidget(widget2));
hgs
parents:
diff changeset
   368
hgs
parents:
diff changeset
   369
    HsWidgetPresentationData presentation1;
hgs
parents:
diff changeset
   370
    presentation1.widgetId = widget1.id;
hgs
parents:
diff changeset
   371
    presentation1.zValue = 0;
hgs
parents:
diff changeset
   372
    presentation1.orientation = Qt::Vertical;
hgs
parents:
diff changeset
   373
    db->setWidgetPresentation(presentation1);
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
    HsWidgetPresentationData presentation2;
hgs
parents:
diff changeset
   376
    presentation2.widgetId = widget2.id;
hgs
parents:
diff changeset
   377
    presentation2.zValue = 0;
hgs
parents:
diff changeset
   378
    presentation2.orientation = Qt::Vertical;
hgs
parents:
diff changeset
   379
    db->setWidgetPresentation(presentation2);
hgs
parents:
diff changeset
   380
hgs
parents:
diff changeset
   381
    QHash<int, qreal> data;
hgs
parents:
diff changeset
   382
    data.insert(1, 2);
hgs
parents:
diff changeset
   383
    data.insert(2, 3);
hgs
parents:
diff changeset
   384
    QVERIFY(db->updateWidgetZValues(data, Qt::Vertical));
hgs
parents:
diff changeset
   385
    
hgs
parents:
diff changeset
   386
    QVERIFY(db->widgetPresentation(presentation1));
hgs
parents:
diff changeset
   387
    QCOMPARE(presentation1.zValue, qreal(2));
hgs
parents:
diff changeset
   388
    QVERIFY(db->widgetPresentation(presentation2));    
hgs
parents:
diff changeset
   389
    QCOMPARE(presentation2.zValue, qreal(3));
101
hgs
parents: 90
diff changeset
   390
    QList<HsWidgetPresentationData> presentations;
hgs
parents: 90
diff changeset
   391
    presentations.append(presentation1);
hgs
parents: 90
diff changeset
   392
    presentations.append(presentation2);
hgs
parents: 90
diff changeset
   393
    QVERIFY(db->updateWidgetPresentations(presentations,Qt::Vertical));    
hgs
parents: 90
diff changeset
   394
hgs
parents: 90
diff changeset
   395
90
hgs
parents:
diff changeset
   396
}