calendarui/views/dayview/tsrc/unittests/unittest_calendayhourelement/unittest_calendayhourelement.cpp
author hgs
Tue, 05 Oct 2010 13:57:00 +0530
changeset 81 ce92091cbd61
parent 55 2c54b51f39c4
permissions -rw-r--r--
201039
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
 *
55
hgs
parents: 45
diff changeset
    14
 * Description: Test class for TestCalenDayHourElement
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>
hgs
parents:
diff changeset
    19
81
hgs
parents: 55
diff changeset
    20
#ifndef __WINSCW__
hgs
parents: 55
diff changeset
    21
#define private public
hgs
parents: 55
diff changeset
    22
#define protected public
hgs
parents: 55
diff changeset
    23
#endif
hgs
parents: 55
diff changeset
    24
55
hgs
parents: 45
diff changeset
    25
#include "calendayhourelementtest.h"
hgs
parents: 45
diff changeset
    26
#include "calendayhourscrollarea.h"
hgs
parents: 45
diff changeset
    27
hgs
parents: 45
diff changeset
    28
#include <QPainter>
hgs
parents: 45
diff changeset
    29
#include <QImage>
hgs
parents: 45
diff changeset
    30
#include <QPair>
hgs
parents: 45
diff changeset
    31
#include <QDateTime>
hgs
parents: 45
diff changeset
    32
hgs
parents: 45
diff changeset
    33
const qreal WIDGET_WIDTH = 50;
hgs
parents: 45
diff changeset
    34
const qreal WIDGET_HEIGHT = 150;
45
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
class TestCalenDayHourElement : public QObject
hgs
parents:
diff changeset
    37
{
hgs
parents:
diff changeset
    38
Q_OBJECT
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
public:
hgs
parents:
diff changeset
    41
    TestCalenDayHourElement();
hgs
parents:
diff changeset
    42
    virtual ~TestCalenDayHourElement();
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
private slots:
hgs
parents:
diff changeset
    45
    void initTestCase();
hgs
parents:
diff changeset
    46
    void cleanupTestCase();
hgs
parents:
diff changeset
    47
    void init();
hgs
parents:
diff changeset
    48
    void cleanup();
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
    void testConstructors();
55
hgs
parents: 45
diff changeset
    51
    void testSetGetTime();
hgs
parents: 45
diff changeset
    52
    void testPaint_data();
hgs
parents: 45
diff changeset
    53
    void testPaint();
81
hgs
parents: 55
diff changeset
    54
    void testLocaleChanged();
45
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
private:
55
hgs
parents: 45
diff changeset
    57
    CalenDayHourElementTest *mHourElement;
hgs
parents: 45
diff changeset
    58
    CalenDayHourScrollArea  *mContainer;
45
hgs
parents:
diff changeset
    59
    QTime   mTime;
hgs
parents:
diff changeset
    60
};
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
/*!
hgs
parents:
diff changeset
    63
 Constructor
hgs
parents:
diff changeset
    64
 */
hgs
parents:
diff changeset
    65
TestCalenDayHourElement::TestCalenDayHourElement() :
hgs
parents:
diff changeset
    66
   mHourElement(NULL)
hgs
parents:
diff changeset
    67
{
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
}
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
/*!
hgs
parents:
diff changeset
    72
 Destructor
hgs
parents:
diff changeset
    73
 */
hgs
parents:
diff changeset
    74
TestCalenDayHourElement::~TestCalenDayHourElement()
hgs
parents:
diff changeset
    75
{
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
}
hgs
parents:
diff changeset
    78
hgs
parents:
diff changeset
    79
/*!
hgs
parents:
diff changeset
    80
 Called before testcase
hgs
parents:
diff changeset
    81
 */
hgs
parents:
diff changeset
    82
void TestCalenDayHourElement::initTestCase()
hgs
parents:
diff changeset
    83
{
hgs
parents:
diff changeset
    84
}
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
/*!
hgs
parents:
diff changeset
    87
 Called after testcase
hgs
parents:
diff changeset
    88
 */
hgs
parents:
diff changeset
    89
void TestCalenDayHourElement::cleanupTestCase()
hgs
parents:
diff changeset
    90
{
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
}
hgs
parents:
diff changeset
    93
hgs
parents:
diff changeset
    94
/*!
hgs
parents:
diff changeset
    95
 Called before every function
hgs
parents:
diff changeset
    96
 */
hgs
parents:
diff changeset
    97
void TestCalenDayHourElement::init()
hgs
parents:
diff changeset
    98
{
55
hgs
parents: 45
diff changeset
    99
    mTime = QTime(12,0,0);
hgs
parents: 45
diff changeset
   100
    mContainer = new CalenDayHourScrollArea();
hgs
parents: 45
diff changeset
   101
    mHourElement = new CalenDayHourElementTest(mTime,mContainer);
45
hgs
parents:
diff changeset
   102
}
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
/*!
hgs
parents:
diff changeset
   105
 Called after everyfunction
hgs
parents:
diff changeset
   106
 */
hgs
parents:
diff changeset
   107
void TestCalenDayHourElement::cleanup()
hgs
parents:
diff changeset
   108
{
hgs
parents:
diff changeset
   109
    if (mHourElement) {
hgs
parents:
diff changeset
   110
        delete mHourElement;
hgs
parents:
diff changeset
   111
        mHourElement = NULL;
hgs
parents:
diff changeset
   112
    }
hgs
parents:
diff changeset
   113
}
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
/*!
hgs
parents:
diff changeset
   116
 Test function for constructors
hgs
parents:
diff changeset
   117
 1. Test if content widget is not initialized
hgs
parents:
diff changeset
   118
 2. Test if content widget is correcty created
hgs
parents:
diff changeset
   119
 */
hgs
parents:
diff changeset
   120
void TestCalenDayHourElement::testConstructors()
hgs
parents:
diff changeset
   121
{
hgs
parents:
diff changeset
   122
    //1)
55
hgs
parents: 45
diff changeset
   123
    CalenDayHourElementTest *testHourElement = 0;
45
hgs
parents:
diff changeset
   124
    QVERIFY(!testHourElement);
hgs
parents:
diff changeset
   125
    
55
hgs
parents: 45
diff changeset
   126
    testHourElement = new CalenDayHourElementTest(mTime,mContainer);
45
hgs
parents:
diff changeset
   127
    
hgs
parents:
diff changeset
   128
    QVERIFY(testHourElement);
hgs
parents:
diff changeset
   129
    
hgs
parents:
diff changeset
   130
    delete testHourElement;
hgs
parents:
diff changeset
   131
}
hgs
parents:
diff changeset
   132
55
hgs
parents: 45
diff changeset
   133
/*!
hgs
parents: 45
diff changeset
   134
   \brief It test is setting and getting of time works good.
hgs
parents: 45
diff changeset
   135
   
hgs
parents: 45
diff changeset
   136
   0)Test if time from constructor works good
hgs
parents: 45
diff changeset
   137
   1)Test set new time
hgs
parents: 45
diff changeset
   138
   2)Change time and test new
hgs
parents: 45
diff changeset
   139
 */
hgs
parents: 45
diff changeset
   140
void TestCalenDayHourElement::testSetGetTime()
hgs
parents: 45
diff changeset
   141
{
hgs
parents: 45
diff changeset
   142
    //0)
hgs
parents: 45
diff changeset
   143
    QVERIFY(mTime == mHourElement->time());
hgs
parents: 45
diff changeset
   144
    
hgs
parents: 45
diff changeset
   145
    QTime testValue(15,15,15);
hgs
parents: 45
diff changeset
   146
    //1)
hgs
parents: 45
diff changeset
   147
    mHourElement->setTime(testValue);
hgs
parents: 45
diff changeset
   148
    
hgs
parents: 45
diff changeset
   149
    QVERIFY(testValue == mHourElement->time());
hgs
parents: 45
diff changeset
   150
    
hgs
parents: 45
diff changeset
   151
    //2)
hgs
parents: 45
diff changeset
   152
    testValue = QTime(10,10,10);
hgs
parents: 45
diff changeset
   153
    
hgs
parents: 45
diff changeset
   154
    mHourElement->setTime(testValue);
hgs
parents: 45
diff changeset
   155
    QVERIFY(testValue == mHourElement->time());
hgs
parents: 45
diff changeset
   156
}
hgs
parents: 45
diff changeset
   157
hgs
parents: 45
diff changeset
   158
/*!
hgs
parents: 45
diff changeset
   159
   \brief Test data for \sa testPaint
hgs
parents: 45
diff changeset
   160
   
hgs
parents: 45
diff changeset
   161
   Tested data:
hgs
parents: 45
diff changeset
   162
   1)Hour is eual 0
hgs
parents: 45
diff changeset
   163
   2)Hour is bigger than 0
hgs
parents: 45
diff changeset
   164
   3)Test current time
hgs
parents: 45
diff changeset
   165
 */
hgs
parents: 45
diff changeset
   166
void TestCalenDayHourElement::testPaint_data()
hgs
parents: 45
diff changeset
   167
{
hgs
parents: 45
diff changeset
   168
    QTest::addColumn<QDateTime>("testedValue");
hgs
parents: 45
diff changeset
   169
    QTest::addColumn<QString>("testName");
hgs
parents: 45
diff changeset
   170
    
hgs
parents: 45
diff changeset
   171
    QTest::newRow("hour = 0") << QDateTime(QDate(2010,06,26),QTime(0,10,0)) 
hgs
parents: 45
diff changeset
   172
                              << QString("hour = 0"); 
hgs
parents: 45
diff changeset
   173
    QTest::newRow("hour != 0") << QDateTime(QDate(2010,06,26),QTime(15,15,15)) 
hgs
parents: 45
diff changeset
   174
                               << QString("hour != 0");
hgs
parents: 45
diff changeset
   175
    QTest::newRow("current time") << QDateTime::currentDateTime() 
hgs
parents: 45
diff changeset
   176
                                  << QString("current time");
hgs
parents: 45
diff changeset
   177
}
hgs
parents: 45
diff changeset
   178
hgs
parents: 45
diff changeset
   179
/*!
hgs
parents: 45
diff changeset
   180
   \brief Test painting method
hgs
parents: 45
diff changeset
   181
   
hgs
parents: 45
diff changeset
   182
   It check painting based on given time.
hgs
parents: 45
diff changeset
   183
   \sa testPaint_data
hgs
parents: 45
diff changeset
   184
 */
hgs
parents: 45
diff changeset
   185
void TestCalenDayHourElement::testPaint()
hgs
parents: 45
diff changeset
   186
{
81
hgs
parents: 55
diff changeset
   187
    //1)
55
hgs
parents: 45
diff changeset
   188
    //get data to test
hgs
parents: 45
diff changeset
   189
    QFETCH(QDateTime, testedValue); 
hgs
parents: 45
diff changeset
   190
    QFETCH(QString, testName); 
hgs
parents: 45
diff changeset
   191
    
hgs
parents: 45
diff changeset
   192
    mHourElement->setTime(testedValue.time());
hgs
parents: 45
diff changeset
   193
    
hgs
parents: 45
diff changeset
   194
    //set date to check
hgs
parents: 45
diff changeset
   195
    mContainer->setDateTime(testedValue);
hgs
parents: 45
diff changeset
   196
    
hgs
parents: 45
diff changeset
   197
    QStyleOptionGraphicsItem * option = new QStyleOptionGraphicsItem();
hgs
parents: 45
diff changeset
   198
    //preapre drawed area smaller because of drawing lines on corners
hgs
parents: 45
diff changeset
   199
    option->rect = QRect(10,10,WIDGET_WIDTH-20,WIDGET_HEIGHT/2);
hgs
parents: 45
diff changeset
   200
    mHourElement->resize(WIDGET_WIDTH,WIDGET_HEIGHT);
hgs
parents: 45
diff changeset
   201
    QSize size = mHourElement->size().toSize();
hgs
parents: 45
diff changeset
   202
     
hgs
parents: 45
diff changeset
   203
    //create image that will simulate widget where painting should be done
hgs
parents: 45
diff changeset
   204
    QImage img(size,QImage::Format_RGB32);
hgs
parents: 45
diff changeset
   205
    //create painter which will be used to paint
hgs
parents: 45
diff changeset
   206
    QPainter painter(&img);
hgs
parents: 45
diff changeset
   207
    //fill image with grey color to have better filings with look of "paper"
hgs
parents: 45
diff changeset
   208
    painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::gray));
hgs
parents: 45
diff changeset
   209
    //run paint
hgs
parents: 45
diff changeset
   210
    mHourElement->paint(&painter,option,0);
hgs
parents: 45
diff changeset
   211
     
hgs
parents: 45
diff changeset
   212
#ifdef SAVE_IMAGES
hgs
parents: 45
diff changeset
   213
    //save drawed image
81
hgs
parents: 55
diff changeset
   214
    img.save("c:/unittest/TestCalenDayHourElement_testPaint_" + testName + ".jpg");   
hgs
parents: 55
diff changeset
   215
#endif
hgs
parents: 55
diff changeset
   216
    
hgs
parents: 55
diff changeset
   217
    //2)
hgs
parents: 55
diff changeset
   218
    QDateTime currentDateTime = QDateTime::currentDateTime();
hgs
parents: 55
diff changeset
   219
    int currentHour = currentDateTime.time().hour();
hgs
parents: 55
diff changeset
   220
    mHourElement->setTime(QTime(currentHour + 1, 0 ));
hgs
parents: 55
diff changeset
   221
    //fill image with grey color to have better filings with look of "paper"
hgs
parents: 55
diff changeset
   222
    painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::gray));
hgs
parents: 55
diff changeset
   223
    //run paint
hgs
parents: 55
diff changeset
   224
    mHourElement->paint(&painter,option,0);
hgs
parents: 55
diff changeset
   225
hgs
parents: 55
diff changeset
   226
#ifdef SAVE_IMAGES
hgs
parents: 55
diff changeset
   227
    //save drawed image
hgs
parents: 55
diff changeset
   228
    img.save("c:/unittest/TestCalenDayHourElement_testPaint_" + testName + "2.jpg");
hgs
parents: 55
diff changeset
   229
#endif
hgs
parents: 55
diff changeset
   230
hgs
parents: 55
diff changeset
   231
    //3)
hgs
parents: 55
diff changeset
   232
#ifndef __WINSCW__
hgs
parents: 55
diff changeset
   233
    mHourElement->mContainer = NULL;    
hgs
parents: 55
diff changeset
   234
    //fill image with grey color to have better filings with look of "paper"
hgs
parents: 55
diff changeset
   235
    painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::gray));
hgs
parents: 55
diff changeset
   236
    //run paint
hgs
parents: 55
diff changeset
   237
    mHourElement->paint(&painter,option,0);
hgs
parents: 55
diff changeset
   238
    
hgs
parents: 55
diff changeset
   239
#ifdef SAVE_IMAGES
hgs
parents: 55
diff changeset
   240
    //save drawed image
hgs
parents: 55
diff changeset
   241
    img.save("c:/unittest/TestCalenDayHourElement_testPaint_" + testName + "3.jpg");
hgs
parents: 55
diff changeset
   242
#endif
hgs
parents: 55
diff changeset
   243
hgs
parents: 55
diff changeset
   244
#endif
hgs
parents: 55
diff changeset
   245
}
hgs
parents: 55
diff changeset
   246
hgs
parents: 55
diff changeset
   247
/*!
hgs
parents: 55
diff changeset
   248
 Test function for localChanged method
hgs
parents: 55
diff changeset
   249
 */
hgs
parents: 55
diff changeset
   250
void TestCalenDayHourElement::testLocaleChanged() 
hgs
parents: 55
diff changeset
   251
{
hgs
parents: 55
diff changeset
   252
#ifndef __WINSCW__
hgs
parents: 55
diff changeset
   253
    mHourElement->mTimeTextItem->setText(QString(""));
hgs
parents: 55
diff changeset
   254
    mHourElement->localeChanged();
hgs
parents: 55
diff changeset
   255
    QVERIFY(mHourElement->mTimeTextItem->text() != QString(""));
55
hgs
parents: 45
diff changeset
   256
#endif
hgs
parents: 45
diff changeset
   257
}
hgs
parents: 45
diff changeset
   258
45
hgs
parents:
diff changeset
   259
QTEST_MAIN(TestCalenDayHourElement);
hgs
parents:
diff changeset
   260
#include "unittest_calendayhourelement.moc"