calendarui/views/dayview/tsrc/unittests/unittest_calendayitem/unittest_calendayitem.cpp
author hgs
Fri, 15 Oct 2010 12:10:36 +0530
changeset 83 5aadd1120515
parent 81 ce92091cbd61
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
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
 *
57
hgs
parents: 55
diff changeset
    14
 * Description: Test class for CalenDayItem
45
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 */
hgs
parents:
diff changeset
    17
#include <QGraphicsItem>
hgs
parents:
diff changeset
    18
#include <QtTest/QtTest>
57
hgs
parents: 55
diff changeset
    19
#include <QGraphicsSceneEvent>
hgs
parents: 55
diff changeset
    20
#include <QDebug>
45
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
57
hgs
parents: 55
diff changeset
    23
#include "agendaentry.h"
hgs
parents: 55
diff changeset
    24
#include "calendaycontainer.h"
hgs
parents: 55
diff changeset
    25
70
hgs
parents: 57
diff changeset
    26
// System includes
hgs
parents: 57
diff changeset
    27
#include <HbFrameItem>
hgs
parents: 57
diff changeset
    28
#include <HbTextItem>
hgs
parents: 57
diff changeset
    29
#include <HbStyle>
hgs
parents: 57
diff changeset
    30
#include <HbColorScheme>
hgs
parents: 57
diff changeset
    31
#include <agendaentry.h>
hgs
parents: 57
diff changeset
    32
hgs
parents: 57
diff changeset
    33
// User includes
hgs
parents: 57
diff changeset
    34
#include "calendaycommonheaders.h"
hgs
parents: 57
diff changeset
    35
#include "calendaystatusstrip.h"
hgs
parents: 57
diff changeset
    36
#include "calendaymodel.h"
hgs
parents: 57
diff changeset
    37
#include "calendayutils.h"
hgs
parents: 57
diff changeset
    38
#include "calenagendautils.h"
hgs
parents: 57
diff changeset
    39
#include "calendaycontainer.h"
hgs
parents: 57
diff changeset
    40
83
hgs
parents: 81
diff changeset
    41
hgs
parents: 81
diff changeset
    42
#define private public
70
hgs
parents: 57
diff changeset
    43
#ifndef __WINSCW__
57
hgs
parents: 55
diff changeset
    44
#define protected public
70
hgs
parents: 57
diff changeset
    45
#endif
57
hgs
parents: 55
diff changeset
    46
45
hgs
parents:
diff changeset
    47
#include "calendayitem.h"
70
hgs
parents: 57
diff changeset
    48
#include "calendayitemtest.h"
57
hgs
parents: 55
diff changeset
    49
hgs
parents: 55
diff changeset
    50
hgs
parents: 55
diff changeset
    51
QRectF gTestWindowRect;
hgs
parents: 55
diff changeset
    52
Qt::Orientation gTestOrientation;
45
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
class TestCalenDayItem : public QObject
hgs
parents:
diff changeset
    55
{
hgs
parents:
diff changeset
    56
Q_OBJECT
hgs
parents:
diff changeset
    57
hgs
parents:
diff changeset
    58
public:
hgs
parents:
diff changeset
    59
    TestCalenDayItem();
hgs
parents:
diff changeset
    60
    virtual ~TestCalenDayItem();
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
private slots:
hgs
parents:
diff changeset
    63
    void initTestCase();
hgs
parents:
diff changeset
    64
    void cleanupTestCase();
hgs
parents:
diff changeset
    65
    void init();
hgs
parents:
diff changeset
    66
    void cleanup();
hgs
parents:
diff changeset
    67
57
hgs
parents: 55
diff changeset
    68
    void testCreateItem();
hgs
parents: 55
diff changeset
    69
    void testUpdateChildItems();
hgs
parents: 55
diff changeset
    70
    void testHasEventDescription();
hgs
parents: 55
diff changeset
    71
    void testHasBackgroundFrame();
81
hgs
parents: 70
diff changeset
    72
    void testSetDescription();
hgs
parents: 70
diff changeset
    73
    void testSetStatusStrip();
83
hgs
parents: 81
diff changeset
    74
    void testFloatingBackground();
hgs
parents: 81
diff changeset
    75
    void testScrollBackground();
57
hgs
parents: 55
diff changeset
    76
    
45
hgs
parents:
diff changeset
    77
    void testConstructors();
hgs
parents:
diff changeset
    78
private:
70
hgs
parents: 57
diff changeset
    79
    CalenDayItemTest *mItem;
55
hgs
parents: 45
diff changeset
    80
    CalenDayContainer *mContainer;
45
hgs
parents:
diff changeset
    81
};
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
/*!
hgs
parents:
diff changeset
    84
 Constructor
hgs
parents:
diff changeset
    85
 */
70
hgs
parents: 57
diff changeset
    86
TestCalenDayItem::TestCalenDayItem() : mItem(NULL), mContainer(NULL)
45
hgs
parents:
diff changeset
    87
{
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
}
hgs
parents:
diff changeset
    90
hgs
parents:
diff changeset
    91
/*!
hgs
parents:
diff changeset
    92
 Destructor
hgs
parents:
diff changeset
    93
 */
hgs
parents:
diff changeset
    94
TestCalenDayItem::~TestCalenDayItem()
hgs
parents:
diff changeset
    95
{
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
}
hgs
parents:
diff changeset
    98
hgs
parents:
diff changeset
    99
/*!
hgs
parents:
diff changeset
   100
 Called before testcase
hgs
parents:
diff changeset
   101
 */
hgs
parents:
diff changeset
   102
void TestCalenDayItem::initTestCase()
hgs
parents:
diff changeset
   103
{
hgs
parents:
diff changeset
   104
}
hgs
parents:
diff changeset
   105
hgs
parents:
diff changeset
   106
/*!
hgs
parents:
diff changeset
   107
 Called after testcase
hgs
parents:
diff changeset
   108
 */
hgs
parents:
diff changeset
   109
void TestCalenDayItem::cleanupTestCase()
hgs
parents:
diff changeset
   110
{
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
}
hgs
parents:
diff changeset
   113
hgs
parents:
diff changeset
   114
/*!
hgs
parents:
diff changeset
   115
 Called before every function
hgs
parents:
diff changeset
   116
 */
hgs
parents:
diff changeset
   117
void TestCalenDayItem::init()
hgs
parents:
diff changeset
   118
{
55
hgs
parents: 45
diff changeset
   119
    mContainer = new CalenDayContainer();
70
hgs
parents: 57
diff changeset
   120
    mItem = new CalenDayItemTest(mContainer);
hgs
parents: 57
diff changeset
   121
#ifndef __WINSCW__
57
hgs
parents: 55
diff changeset
   122
    mItem->mBg = new HbFrameItem();
hgs
parents: 55
diff changeset
   123
    mItem->mEventDesc = new HbTextItem(0);
70
hgs
parents: 57
diff changeset
   124
#endif
45
hgs
parents:
diff changeset
   125
}
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
/*!
hgs
parents:
diff changeset
   128
 Called after everyfunction
hgs
parents:
diff changeset
   129
 */
hgs
parents:
diff changeset
   130
void TestCalenDayItem::cleanup()
hgs
parents:
diff changeset
   131
{
hgs
parents:
diff changeset
   132
    if (mItem) {
hgs
parents:
diff changeset
   133
        delete mItem;
hgs
parents:
diff changeset
   134
        mItem = NULL;
hgs
parents:
diff changeset
   135
    }
55
hgs
parents: 45
diff changeset
   136
    
hgs
parents: 45
diff changeset
   137
    if (mContainer) {
57
hgs
parents: 55
diff changeset
   138
        delete mContainer;
hgs
parents: 55
diff changeset
   139
        mContainer = NULL;
55
hgs
parents: 45
diff changeset
   140
    }
45
hgs
parents:
diff changeset
   141
}
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
/*!
hgs
parents:
diff changeset
   144
 Test function for constructors
hgs
parents:
diff changeset
   145
 1. Test if content widget is not initialized
hgs
parents:
diff changeset
   146
 2. Test if content widget is correcty created
83
hgs
parents: 81
diff changeset
   147
 3. Test whether connection to container has been established properly
45
hgs
parents:
diff changeset
   148
 */
hgs
parents:
diff changeset
   149
void TestCalenDayItem::testConstructors()
hgs
parents:
diff changeset
   150
{
hgs
parents:
diff changeset
   151
    //1)
70
hgs
parents: 57
diff changeset
   152
    CalenDayItemTest *testItem = 0;
45
hgs
parents:
diff changeset
   153
    QVERIFY(!testItem);
hgs
parents:
diff changeset
   154
    
hgs
parents:
diff changeset
   155
    //2)
70
hgs
parents: 57
diff changeset
   156
    testItem = new CalenDayItemTest(mContainer);
45
hgs
parents:
diff changeset
   157
    QVERIFY(testItem);
83
hgs
parents: 81
diff changeset
   158
    
hgs
parents: 81
diff changeset
   159
    //3)
hgs
parents: 81
diff changeset
   160
    QCOMPARE(testItem->connectedSlots(SIGNAL(backgroundTypeChanged(const CalenDayItem*))), 1);
hgs
parents: 81
diff changeset
   161
    
45
hgs
parents:
diff changeset
   162
    delete testItem;
hgs
parents:
diff changeset
   163
}
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
/*!
57
hgs
parents: 55
diff changeset
   166
 Test function for creating new abstract items.
hgs
parents: 55
diff changeset
   167
 1. Test if item is created
hgs
parents: 55
diff changeset
   168
 2. Test if is the same as orginal.
45
hgs
parents:
diff changeset
   169
 */
hgs
parents:
diff changeset
   170
void TestCalenDayItem::testCreateItem()
70
hgs
parents: 57
diff changeset
   171
{
hgs
parents: 57
diff changeset
   172
    HbAbstractViewItem *testItem = mItem->createItem();
hgs
parents: 57
diff changeset
   173
    QVERIFY(testItem);
hgs
parents: 57
diff changeset
   174
    delete testItem;
hgs
parents: 57
diff changeset
   175
}
57
hgs
parents: 55
diff changeset
   176
81
hgs
parents: 70
diff changeset
   177
/*!
hgs
parents: 70
diff changeset
   178
 Test function for updating child items
hgs
parents: 70
diff changeset
   179
 1. Test if child items are updated 
hgs
parents: 70
diff changeset
   180
 2. Just for coverage testing
hgs
parents: 70
diff changeset
   181
 */
57
hgs
parents: 55
diff changeset
   182
void TestCalenDayItem::testUpdateChildItems()
70
hgs
parents: 57
diff changeset
   183
{
81
hgs
parents: 70
diff changeset
   184
#ifndef __WINSCW__
hgs
parents: 70
diff changeset
   185
    //1)
hgs
parents: 70
diff changeset
   186
    mItem->mUpdated = false;
hgs
parents: 70
diff changeset
   187
    mItem->updateChildItems();
hgs
parents: 70
diff changeset
   188
    QCOMPARE(mItem->mUpdated, true);
hgs
parents: 70
diff changeset
   189
    
hgs
parents: 70
diff changeset
   190
    //2)
hgs
parents: 70
diff changeset
   191
    mItem->mUpdated = true;
hgs
parents: 70
diff changeset
   192
    mItem->updateChildItems();
hgs
parents: 70
diff changeset
   193
    QCOMPARE(mItem->mUpdated, true);
hgs
parents: 70
diff changeset
   194
#endif
hgs
parents: 70
diff changeset
   195
}
70
hgs
parents: 57
diff changeset
   196
81
hgs
parents: 70
diff changeset
   197
/*!
hgs
parents: 70
diff changeset
   198
 Test setting description of entry
hgs
parents: 70
diff changeset
   199
 1. Setting description if only location is set
hgs
parents: 70
diff changeset
   200
 2. Setting description if location and summary are set
hgs
parents: 70
diff changeset
   201
 3. Setting description if location and summary are not set
hgs
parents: 70
diff changeset
   202
 4. Setting description if summary is set and event is for all day
hgs
parents: 70
diff changeset
   203
 5. Setting description if location and summary are set and event is 
hgs
parents: 70
diff changeset
   204
 for all day
hgs
parents: 70
diff changeset
   205
 */
hgs
parents: 70
diff changeset
   206
void TestCalenDayItem::testSetDescription()
hgs
parents: 70
diff changeset
   207
{
hgs
parents: 70
diff changeset
   208
#ifndef __WINSCW__
hgs
parents: 70
diff changeset
   209
    AgendaEntry entry;
hgs
parents: 70
diff changeset
   210
    QString location("testLocation");
hgs
parents: 70
diff changeset
   211
    QString summary("testSummary");
hgs
parents: 70
diff changeset
   212
hgs
parents: 70
diff changeset
   213
    //1)
hgs
parents: 70
diff changeset
   214
    entry.setLocation(location);
hgs
parents: 70
diff changeset
   215
    entry.setSummary("");
hgs
parents: 70
diff changeset
   216
    mItem->setDescription(entry, false);
hgs
parents: 70
diff changeset
   217
    QCOMPARE(mItem->mEventDesc->text(), location);
hgs
parents: 70
diff changeset
   218
hgs
parents: 70
diff changeset
   219
    //2)
hgs
parents: 70
diff changeset
   220
    entry.setLocation(location);
hgs
parents: 70
diff changeset
   221
    entry.setSummary(summary);
hgs
parents: 70
diff changeset
   222
    mItem->setDescription(entry, false);
hgs
parents: 70
diff changeset
   223
    QString expected(summary);
hgs
parents: 70
diff changeset
   224
    expected.append(", ");
hgs
parents: 70
diff changeset
   225
    expected.append(location);
hgs
parents: 70
diff changeset
   226
    QCOMPARE(mItem->mEventDesc->text(), expected);
hgs
parents: 70
diff changeset
   227
hgs
parents: 70
diff changeset
   228
    //3)
hgs
parents: 70
diff changeset
   229
    entry.setLocation("");
hgs
parents: 70
diff changeset
   230
    entry.setSummary("");
hgs
parents: 70
diff changeset
   231
    mItem->setDescription(entry, false);
hgs
parents: 70
diff changeset
   232
    QCOMPARE(mItem->mEventDesc->text(), hbTrId("txt_calendar_dblist_unnamed"));
hgs
parents: 70
diff changeset
   233
hgs
parents: 70
diff changeset
   234
    //4)
hgs
parents: 70
diff changeset
   235
    entry.setLocation("");
hgs
parents: 70
diff changeset
   236
    entry.setSummary(summary);
hgs
parents: 70
diff changeset
   237
    mItem->setDescription(entry, true);
hgs
parents: 70
diff changeset
   238
    expected = "";
hgs
parents: 70
diff changeset
   239
    for (int i = 0; i < summary.count(); i++) {
hgs
parents: 70
diff changeset
   240
        expected.append(QString(summary.at(i)) + "\n");
hgs
parents: 70
diff changeset
   241
    }
hgs
parents: 70
diff changeset
   242
    QCOMPARE(mItem->mEventDesc->text(), expected);
hgs
parents: 70
diff changeset
   243
hgs
parents: 70
diff changeset
   244
    //5)
hgs
parents: 70
diff changeset
   245
    entry.setLocation(location);
hgs
parents: 70
diff changeset
   246
    entry.setSummary(summary);
hgs
parents: 70
diff changeset
   247
    mItem->setDescription(entry, true);
hgs
parents: 70
diff changeset
   248
    QString description(summary + ", " + location);
hgs
parents: 70
diff changeset
   249
    expected = "";
hgs
parents: 70
diff changeset
   250
    for (int i = 0; i < description.count(); i++) {
hgs
parents: 70
diff changeset
   251
        expected.append(QString(description.at(i)) + "\n");
hgs
parents: 70
diff changeset
   252
    }
hgs
parents: 70
diff changeset
   253
    if (summary.count()) {
hgs
parents: 70
diff changeset
   254
        expected.remove(2 * summary.count() - 1, 1);
hgs
parents: 70
diff changeset
   255
    }
hgs
parents: 70
diff changeset
   256
    QCOMPARE(mItem->mEventDesc->text(), expected);
hgs
parents: 70
diff changeset
   257
#endif
hgs
parents: 70
diff changeset
   258
}
hgs
parents: 70
diff changeset
   259
hgs
parents: 70
diff changeset
   260
/*!
hgs
parents: 70
diff changeset
   261
 Test setting status strip
hgs
parents: 70
diff changeset
   262
 1. Setting status strip for event 
hgs
parents: 70
diff changeset
   263
 2. Setting status strip for all day event
hgs
parents: 70
diff changeset
   264
 3. Setting status strip for confirmed event
hgs
parents: 70
diff changeset
   265
 4. Setting status strip for tentative event
hgs
parents: 70
diff changeset
   266
 5. Setting status strip for cancelled event
hgs
parents: 70
diff changeset
   267
 */
hgs
parents: 70
diff changeset
   268
void TestCalenDayItem::testSetStatusStrip()
hgs
parents: 70
diff changeset
   269
{
hgs
parents: 70
diff changeset
   270
#ifndef __WINSCW__
hgs
parents: 70
diff changeset
   271
    AgendaEntry entry;
hgs
parents: 70
diff changeset
   272
    QDateTime startTimeIn(QDate(12, 07, 2010), QTime(7, 0));
hgs
parents: 70
diff changeset
   273
    QDateTime endTimeIn(QDate(12, 07, 2010), QTime(10, 0));
hgs
parents: 70
diff changeset
   274
hgs
parents: 70
diff changeset
   275
    //1)
hgs
parents: 70
diff changeset
   276
    entry.setStartAndEndTime(startTimeIn, endTimeIn);
hgs
parents: 70
diff changeset
   277
    mItem->setStatusStrip(entry, false);
hgs
parents: 70
diff changeset
   278
hgs
parents: 70
diff changeset
   279
    QDateTime startTime;
hgs
parents: 70
diff changeset
   280
    QDateTime endTime;
hgs
parents: 70
diff changeset
   281
    QDateTime currentDateTime;
hgs
parents: 70
diff changeset
   282
    currentDateTime.setDate(mItem->container()->date());
hgs
parents: 70
diff changeset
   283
    CalenDayUtils::instance()->getEventValidStartEndTime(startTime, endTime,
hgs
parents: 70
diff changeset
   284
        entry, currentDateTime);
hgs
parents: 70
diff changeset
   285
    QPair<QTime, QTime> startEndTime = mItem->mColorStripe->startEndTime();
hgs
parents: 70
diff changeset
   286
    QCOMPARE(startEndTime.first, startTime.time());
hgs
parents: 70
diff changeset
   287
    QCOMPARE(startEndTime.second, endTime.time());
hgs
parents: 70
diff changeset
   288
hgs
parents: 70
diff changeset
   289
    //2)
hgs
parents: 70
diff changeset
   290
    mItem->setStatusStrip(entry, true);
hgs
parents: 70
diff changeset
   291
    startEndTime = mItem->mColorStripe->startEndTime();
hgs
parents: 70
diff changeset
   292
    QCOMPARE(startEndTime.first, startTime.time());
hgs
parents: 70
diff changeset
   293
    QCOMPARE(startEndTime.second, endTime.time().addSecs(-1));
hgs
parents: 70
diff changeset
   294
hgs
parents: 70
diff changeset
   295
    //3)
hgs
parents: 70
diff changeset
   296
    entry.setStatus(AgendaEntry::Confirmed);
hgs
parents: 70
diff changeset
   297
    mItem->setStatusStrip(entry, false);
hgs
parents: 70
diff changeset
   298
    QCOMPARE(CalenDayStatusStrip::Filled, 
hgs
parents: 70
diff changeset
   299
        mItem->mColorStripe->drawingStyle());
hgs
parents: 70
diff changeset
   300
hgs
parents: 70
diff changeset
   301
    //4)
hgs
parents: 70
diff changeset
   302
    entry.setStatus(AgendaEntry::Tentative);
hgs
parents: 70
diff changeset
   303
    mItem->setStatusStrip(entry, false);
hgs
parents: 70
diff changeset
   304
    QCOMPARE(CalenDayStatusStrip::StripWithLines, 
hgs
parents: 70
diff changeset
   305
        mItem->mColorStripe->drawingStyle());
hgs
parents: 70
diff changeset
   306
hgs
parents: 70
diff changeset
   307
    //5)
hgs
parents: 70
diff changeset
   308
    entry.setStatus(AgendaEntry::Cancelled);
hgs
parents: 70
diff changeset
   309
    mItem->setStatusStrip(entry, false);
hgs
parents: 70
diff changeset
   310
    QCOMPARE(CalenDayStatusStrip::OnlyFrame, 
hgs
parents: 70
diff changeset
   311
        mItem->mColorStripe->drawingStyle());
hgs
parents: 70
diff changeset
   312
#endif
70
hgs
parents: 57
diff changeset
   313
}
57
hgs
parents: 55
diff changeset
   314
hgs
parents: 55
diff changeset
   315
void TestCalenDayItem::testHasEventDescription()
70
hgs
parents: 57
diff changeset
   316
{
hgs
parents: 57
diff changeset
   317
#ifndef __WINSCW__
hgs
parents: 57
diff changeset
   318
    QGraphicsSceneResizeEvent *event = new QGraphicsSceneResizeEvent();
hgs
parents: 57
diff changeset
   319
    qreal width = mItem->rect().width();
hgs
parents: 57
diff changeset
   320
hgs
parents: 57
diff changeset
   321
    qDebug() << "inited";
hgs
parents: 57
diff changeset
   322
hgs
parents: 57
diff changeset
   323
    mItem->mEventDescMinWidth = width - 4;
hgs
parents: 57
diff changeset
   324
hgs
parents: 57
diff changeset
   325
    qDebug() << "before resize";
hgs
parents: 57
diff changeset
   326
hgs
parents: 57
diff changeset
   327
    mItem->resizeEvent(event);
hgs
parents: 57
diff changeset
   328
hgs
parents: 57
diff changeset
   329
    qDebug() << "resize called";
hgs
parents: 57
diff changeset
   330
hgs
parents: 57
diff changeset
   331
    QVERIFY(mItem->hasEventDescription() == true);
hgs
parents: 57
diff changeset
   332
hgs
parents: 57
diff changeset
   333
    mItem->mEventDescMinWidth = width + 8;
hgs
parents: 57
diff changeset
   334
    mItem->resizeEvent(event);
hgs
parents: 57
diff changeset
   335
hgs
parents: 57
diff changeset
   336
    qDebug() << "resize 2 called";
hgs
parents: 57
diff changeset
   337
hgs
parents: 57
diff changeset
   338
    QVERIFY(mItem->hasEventDescription() == false);
hgs
parents: 57
diff changeset
   339
#endif
hgs
parents: 57
diff changeset
   340
}
57
hgs
parents: 55
diff changeset
   341
hgs
parents: 55
diff changeset
   342
void TestCalenDayItem::testHasBackgroundFrame()
70
hgs
parents: 57
diff changeset
   343
{
hgs
parents: 57
diff changeset
   344
#ifndef __WINSCW__
hgs
parents: 57
diff changeset
   345
    QGraphicsSceneResizeEvent *event = new QGraphicsSceneResizeEvent();
hgs
parents: 57
diff changeset
   346
    qreal width = mItem->rect().width();
57
hgs
parents: 55
diff changeset
   347
70
hgs
parents: 57
diff changeset
   348
    mItem->mFrameMinWidth = width - 4;
hgs
parents: 57
diff changeset
   349
    mItem->resizeEvent(event);
57
hgs
parents: 55
diff changeset
   350
70
hgs
parents: 57
diff changeset
   351
    QVERIFY(mItem->hasBackgroundFrame() == true);
hgs
parents: 57
diff changeset
   352
hgs
parents: 57
diff changeset
   353
    mItem->mFrameMinWidth = width + 8;
hgs
parents: 57
diff changeset
   354
    mItem->resizeEvent(event);
hgs
parents: 57
diff changeset
   355
hgs
parents: 57
diff changeset
   356
    QVERIFY(mItem->hasBackgroundFrame() == false);
hgs
parents: 57
diff changeset
   357
#endif
hgs
parents: 57
diff changeset
   358
}
45
hgs
parents:
diff changeset
   359
83
hgs
parents: 81
diff changeset
   360
hgs
parents: 81
diff changeset
   361
/*!
hgs
parents: 81
diff changeset
   362
 Test floating background functionality 
hgs
parents: 81
diff changeset
   363
 1. Event is higher then screen (background starts to float) 
hgs
parents: 81
diff changeset
   364
 2. Orientation changed
hgs
parents: 81
diff changeset
   365
 3. Event is higher then screen but item is already set as floating
hgs
parents: 81
diff changeset
   366
 4. Event's layout switches from floating to static
hgs
parents: 81
diff changeset
   367
 5. Static event remains smaller then screen height
hgs
parents: 81
diff changeset
   368
 */
hgs
parents: 81
diff changeset
   369
void TestCalenDayItem::testFloatingBackground()
hgs
parents: 81
diff changeset
   370
{
hgs
parents: 81
diff changeset
   371
#ifndef __WINSCW__
hgs
parents: 81
diff changeset
   372
    qRegisterMetaType<CalenDayItemTest*>("const CalenDayItem*");
hgs
parents: 81
diff changeset
   373
    
hgs
parents: 81
diff changeset
   374
    QSignalSpy spy(mItem, SIGNAL(backgroundTypeChanged(const CalenDayItem*)));
hgs
parents: 81
diff changeset
   375
    int emittedSignalsCount = 0;
hgs
parents: 81
diff changeset
   376
hgs
parents: 81
diff changeset
   377
    //1)Event is higher then screen (background starts to float)
hgs
parents: 81
diff changeset
   378
    gTestWindowRect = QRectF(0, 0, 320, 640);
hgs
parents: 81
diff changeset
   379
    mItem->mBackgroundType = CalenDayItem::EStaticBackground;
hgs
parents: 81
diff changeset
   380
    mItem->resize(30, 1000);
hgs
parents: 81
diff changeset
   381
    int bgHeight = mItem->mBg->rect().height();
hgs
parents: 81
diff changeset
   382
    int screenHeight = CalenDayUtils::instance()->screenHeight();
hgs
parents: 81
diff changeset
   383
hgs
parents: 81
diff changeset
   384
    QCOMPARE(bgHeight, screenHeight);
hgs
parents: 81
diff changeset
   385
    QCOMPARE(mItem->mBackgroundType, CalenDayItem::EFloatingBackground);
hgs
parents: 81
diff changeset
   386
    QCOMPARE(spy.count(), ++emittedSignalsCount);
hgs
parents: 81
diff changeset
   387
    
hgs
parents: 81
diff changeset
   388
    //2)Orientation changed
hgs
parents: 81
diff changeset
   389
    gTestWindowRect = QRectF(0, 0, 640, 320);
hgs
parents: 81
diff changeset
   390
    mItem->mBackgroundType = CalenDayItem::EStaticBackground;
hgs
parents: 81
diff changeset
   391
    mItem->resize(30, 1001);
hgs
parents: 81
diff changeset
   392
    bgHeight = mItem->mBg->rect().height();
hgs
parents: 81
diff changeset
   393
    screenHeight = CalenDayUtils::instance()->screenHeight();
hgs
parents: 81
diff changeset
   394
    
hgs
parents: 81
diff changeset
   395
    QCOMPARE(bgHeight, screenHeight);
hgs
parents: 81
diff changeset
   396
    QCOMPARE(mItem->mBackgroundType, CalenDayItem::EFloatingBackground);
hgs
parents: 81
diff changeset
   397
    QCOMPARE(spy.count(), ++emittedSignalsCount);
hgs
parents: 81
diff changeset
   398
    
hgs
parents: 81
diff changeset
   399
    //3)Event is higher then screen but item is already set as floating
hgs
parents: 81
diff changeset
   400
    mItem->resize(30, 1000);
hgs
parents: 81
diff changeset
   401
    bgHeight = mItem->mBg->rect().height();
hgs
parents: 81
diff changeset
   402
    screenHeight = CalenDayUtils::instance()->screenHeight();
hgs
parents: 81
diff changeset
   403
    
hgs
parents: 81
diff changeset
   404
    QCOMPARE(bgHeight, screenHeight);
hgs
parents: 81
diff changeset
   405
    QCOMPARE(mItem->mBackgroundType, CalenDayItem::EFloatingBackground);
hgs
parents: 81
diff changeset
   406
    QCOMPARE(spy.count(), emittedSignalsCount);
hgs
parents: 81
diff changeset
   407
    
hgs
parents: 81
diff changeset
   408
   //4)Event's layout switches from floating to static
hgs
parents: 81
diff changeset
   409
    mItem->setGeometry(0, 0, 30, 100);
hgs
parents: 81
diff changeset
   410
    QCOMPARE(mItem->mBackgroundType, CalenDayItem::EStaticBackground);
hgs
parents: 81
diff changeset
   411
    QCOMPARE(spy.count(), ++emittedSignalsCount);
hgs
parents: 81
diff changeset
   412
    
hgs
parents: 81
diff changeset
   413
    //5)Static event remains smaller then screen height
hgs
parents: 81
diff changeset
   414
    mItem->setGeometry(0, 0, 30, 200);
hgs
parents: 81
diff changeset
   415
    QCOMPARE(mItem->mBackgroundType, CalenDayItem::EStaticBackground);
hgs
parents: 81
diff changeset
   416
    QCOMPARE(spy.count(), emittedSignalsCount);
hgs
parents: 81
diff changeset
   417
#endif
hgs
parents: 81
diff changeset
   418
}
hgs
parents: 81
diff changeset
   419
hgs
parents: 81
diff changeset
   420
/*!
hgs
parents: 81
diff changeset
   421
 Test scrolling background slot 
hgs
parents: 81
diff changeset
   422
 1. Position of background doesn't go out of events rectangle
hgs
parents: 81
diff changeset
   423
 2. Position of background is out of the top edge
hgs
parents: 81
diff changeset
   424
 3. Position of background is out of the bottom edge
hgs
parents: 81
diff changeset
   425
 */
hgs
parents: 81
diff changeset
   426
void TestCalenDayItem::testScrollBackground()
hgs
parents: 81
diff changeset
   427
{
hgs
parents: 81
diff changeset
   428
#ifndef __WINSCW__
hgs
parents: 81
diff changeset
   429
    gTestWindowRect = QRectF(0, 0, 240, 480);
hgs
parents: 81
diff changeset
   430
    mItem->setGeometry(0, 0, 30, 1000);
hgs
parents: 81
diff changeset
   431
    
hgs
parents: 81
diff changeset
   432
    //1)Position of background doesn't go out of events rectangle
hgs
parents: 81
diff changeset
   433
    QPointF pos(0, 50);
hgs
parents: 81
diff changeset
   434
    mItem->scrollBackground(pos);
hgs
parents: 81
diff changeset
   435
    int screenHeight = CalenDayUtils::instance()->screenHeight();
hgs
parents: 81
diff changeset
   436
    int bgHeight = mItem->mBg->rect().height();
hgs
parents: 81
diff changeset
   437
    
hgs
parents: 81
diff changeset
   438
    QCOMPARE(bgHeight, screenHeight);
hgs
parents: 81
diff changeset
   439
    QVERIFY(gTestWindowRect.contains(mItem->mBg->rect()));
hgs
parents: 81
diff changeset
   440
    
hgs
parents: 81
diff changeset
   441
    //2)Position of background is out of the top edge
hgs
parents: 81
diff changeset
   442
    pos = QPointF(0, -50);
hgs
parents: 81
diff changeset
   443
    mItem->scrollBackground(pos);
hgs
parents: 81
diff changeset
   444
    bgHeight = mItem->mBg->rect().height();
hgs
parents: 81
diff changeset
   445
    
hgs
parents: 81
diff changeset
   446
    QCOMPARE(bgHeight, screenHeight);
hgs
parents: 81
diff changeset
   447
    QVERIFY(gTestWindowRect.contains(mItem->mBg->rect()));
hgs
parents: 81
diff changeset
   448
hgs
parents: 81
diff changeset
   449
    //3)Position of background is out of the bottom edge
hgs
parents: 81
diff changeset
   450
    pos = QPointF(0, 300);
hgs
parents: 81
diff changeset
   451
    mItem->scrollBackground(pos);
hgs
parents: 81
diff changeset
   452
    bgHeight = mItem->mBg->rect().height();
hgs
parents: 81
diff changeset
   453
    
hgs
parents: 81
diff changeset
   454
    QCOMPARE(bgHeight, screenHeight);
hgs
parents: 81
diff changeset
   455
    QVERIFY(gTestWindowRect.contains(mItem->mBg->rect()));   
hgs
parents: 81
diff changeset
   456
#endif
hgs
parents: 81
diff changeset
   457
}
hgs
parents: 81
diff changeset
   458
45
hgs
parents:
diff changeset
   459
QTEST_MAIN(TestCalenDayItem);
83
hgs
parents: 81
diff changeset
   460
45
hgs
parents:
diff changeset
   461
#include "unittest_calendayitem.moc"