calendarui/views/dayview/tsrc/unittests/unittest_calendayhourelement/unittest_calendayhourelement.cpp
--- a/calendarui/views/dayview/tsrc/unittests/unittest_calendayhourelement/unittest_calendayhourelement.cpp Mon Jul 12 02:32:28 2010 +0530
+++ b/calendarui/views/dayview/tsrc/unittests/unittest_calendayhourelement/unittest_calendayhourelement.cpp Mon Jul 26 13:54:38 2010 +0530
@@ -11,13 +11,22 @@
*
* Contributors:
*
- * Description: Test class for CalenDayContentWidget
+ * Description: Test class for TestCalenDayHourElement
*
*/
#include <QGraphicsItem>
#include <QtTest/QtTest>
-#include "calendayhourelement.h"
+#include "calendayhourelementtest.h"
+#include "calendayhourscrollarea.h"
+
+#include <QPainter>
+#include <QImage>
+#include <QPair>
+#include <QDateTime>
+
+const qreal WIDGET_WIDTH = 50;
+const qreal WIDGET_HEIGHT = 150;
class TestCalenDayHourElement : public QObject
{
@@ -34,9 +43,13 @@
void cleanup();
void testConstructors();
+ void testSetGetTime();
+ void testPaint_data();
+ void testPaint();
private:
- CalenDayHourElement *mHourElement;
+ CalenDayHourElementTest *mHourElement;
+ CalenDayHourScrollArea *mContainer;
QTime mTime;
};
@@ -77,7 +90,9 @@
*/
void TestCalenDayHourElement::init()
{
- mHourElement = new CalenDayHourElement(mTime);
+ mTime = QTime(12,0,0);
+ mContainer = new CalenDayHourScrollArea();
+ mHourElement = new CalenDayHourElementTest(mTime,mContainer);
}
/*!
@@ -99,15 +114,101 @@
void TestCalenDayHourElement::testConstructors()
{
//1)
- CalenDayHourElement *testHourElement = 0;
+ CalenDayHourElementTest *testHourElement = 0;
QVERIFY(!testHourElement);
- testHourElement = new CalenDayHourElement(mTime);
+ testHourElement = new CalenDayHourElementTest(mTime,mContainer);
QVERIFY(testHourElement);
delete testHourElement;
}
+/*!
+ \brief It test is setting and getting of time works good.
+
+ 0)Test if time from constructor works good
+ 1)Test set new time
+ 2)Change time and test new
+ */
+void TestCalenDayHourElement::testSetGetTime()
+{
+ //0)
+ QVERIFY(mTime == mHourElement->time());
+
+ QTime testValue(15,15,15);
+ //1)
+ mHourElement->setTime(testValue);
+
+ QVERIFY(testValue == mHourElement->time());
+
+ //2)
+ testValue = QTime(10,10,10);
+
+ mHourElement->setTime(testValue);
+ QVERIFY(testValue == mHourElement->time());
+}
+
+/*!
+ \brief Test data for \sa testPaint
+
+ Tested data:
+ 1)Hour is eual 0
+ 2)Hour is bigger than 0
+ 3)Test current time
+ */
+void TestCalenDayHourElement::testPaint_data()
+{
+ QTest::addColumn<QDateTime>("testedValue");
+ QTest::addColumn<QString>("testName");
+
+ QTest::newRow("hour = 0") << QDateTime(QDate(2010,06,26),QTime(0,10,0))
+ << QString("hour = 0");
+ QTest::newRow("hour != 0") << QDateTime(QDate(2010,06,26),QTime(15,15,15))
+ << QString("hour != 0");
+ QTest::newRow("current time") << QDateTime::currentDateTime()
+ << QString("current time");
+}
+
+/*!
+ \brief Test painting method
+
+ It check painting based on given time.
+ \sa testPaint_data
+ */
+void TestCalenDayHourElement::testPaint()
+{
+
+ //get data to test
+ QFETCH(QDateTime, testedValue);
+ QFETCH(QString, testName);
+
+ mHourElement->setTime(testedValue.time());
+
+ //set date to check
+ mContainer->setDateTime(testedValue);
+
+ QStyleOptionGraphicsItem * option = new QStyleOptionGraphicsItem();
+ //preapre drawed area smaller because of drawing lines on corners
+ option->rect = QRect(10,10,WIDGET_WIDTH-20,WIDGET_HEIGHT/2);
+ mHourElement->resize(WIDGET_WIDTH,WIDGET_HEIGHT);
+ QSize size = mHourElement->size().toSize();
+
+ //create image that will simulate widget where painting should be done
+ QImage img(size,QImage::Format_RGB32);
+ //create painter which will be used to paint
+ QPainter painter(&img);
+ //fill image with grey color to have better filings with look of "paper"
+ painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::gray));
+ //run paint
+ mHourElement->paint(&painter,option,0);
+
+#ifdef SAVE_IMAGES
+ //save drawed image
+ img.save("c:/unittest/TestCalenDayHourElement_testPaint_" + testName + ".jpg");
+
+#endif
+}
+
QTEST_MAIN(TestCalenDayHourElement);
#include "unittest_calendayhourelement.moc"