--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/views/dayview/tsrc/unittests/unittest_calendaystatusstrip/unittest_calendaystatusstrip.cpp Mon Jun 28 15:22:02 2010 +0530
@@ -0,0 +1,368 @@
+/*
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: Test class for CalenDayContentWidget
+ *
+ */
+
+#include <QtTest/QtTest>
+#include <QGraphicsItem>
+
+#include "calendaystatusstriptest.h"
+
+#include <QPainter>
+#include <QImage>
+#include <QPair>
+
+const qreal WIDGET_WIDTH = 50;
+const qreal WIDGET_HEIGHT = 150;
+
+class TestCalenStatusStrip : public QObject
+{
+Q_OBJECT
+
+public:
+ TestCalenStatusStrip();
+ virtual ~TestCalenStatusStrip();
+
+private slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+
+ void testConstructors();
+ void testSetGetColor();
+ void testSetGetRange();
+ void testSetGetDrawingStyle_data();
+ void testSetGetDrawingStyle();
+ void testStartEndTime();
+ void testCreatingDiagonalLine();
+ void testCalculateStartEndTimePosition_data();
+ void testCalculateStartEndTimePosition();
+ void testCalculateMinuteHegiht();
+ void testPaint();
+
+private:
+ CalenDayStatusStripTest *mStatusStrip;
+};
+
+
+
+
+/*!
+ Constructor
+ */
+TestCalenStatusStrip::TestCalenStatusStrip() :
+ mStatusStrip(NULL)
+{
+
+}
+
+/*!
+ Destructor
+ */
+TestCalenStatusStrip::~TestCalenStatusStrip()
+{
+
+}
+
+/*!
+ Called before testcase
+ */
+void TestCalenStatusStrip::initTestCase()
+{
+}
+
+/*!
+ Called after testcase
+ */
+void TestCalenStatusStrip::cleanupTestCase()
+{
+
+}
+
+/*!
+ Called before every function
+ */
+void TestCalenStatusStrip::init()
+{
+ mStatusStrip = new CalenDayStatusStripTest();
+}
+
+/*!
+ Called after everyfunction
+ */
+void TestCalenStatusStrip::cleanup()
+{
+ if (mStatusStrip) {
+ delete mStatusStrip;
+ mStatusStrip = NULL;
+ }
+}
+
+/*!
+ Test function for constructors
+ 1. Test if content widget is not initialized
+ 2. Test if content widget is correcty created
+ */
+void TestCalenStatusStrip::testConstructors()
+{
+ //1)
+ CalenDayStatusStrip *testStatusStrip = 0;
+ QVERIFY(!testStatusStrip);
+
+ //2)
+ testStatusStrip = new CalenDayStatusStrip();
+ QVERIFY(testStatusStrip);
+ delete testStatusStrip;
+}
+
+/*!
+ Test function for geting and setting color
+ 1. Test setting red color
+ 2. Test change color to blue
+ */
+void TestCalenStatusStrip::testSetGetColor()
+{
+ //1)
+ mStatusStrip->setColor(QColor(Qt::red));
+ QColor testColor = mStatusStrip->color();
+ QCOMPARE(QColor(Qt::red),testColor);
+
+ //2)
+ mStatusStrip->setColor(QColor(Qt::blue));
+ testColor = mStatusStrip->color();
+ QCOMPARE(QColor(Qt::blue),testColor);
+}
+
+/*!
+ Test function for geting and setting range
+ 1. Test setting 5px range
+ 2. Test change range to 1px
+ */
+void TestCalenStatusStrip::testSetGetRange()
+{
+ //1)
+ mStatusStrip->setRange(5);
+ QCOMPARE((qreal)5,mStatusStrip->range());
+
+ //2)
+ mStatusStrip->setRange(1);
+ QCOMPARE((qreal)1,mStatusStrip->range());
+}
+
+/*!
+ Preapre data for \sa testSetGetDrawingStyle
+ Add new enum \sa CalenDayStatusStrip::DrawingStyle
+ 1)OnlyFrame
+ 2)StripWithLines
+ 3)Filled
+ */
+void TestCalenStatusStrip::testSetGetDrawingStyle_data()
+{
+ QTest::addColumn<CalenDayStatusStrip::DrawingStyle>("testedValue");
+ QTest::addColumn<CalenDayStatusStrip::DrawingStyle>("testValue");
+
+ QTest::newRow("OnlyFrame") << CalenDayStatusStrip::OnlyFrame
+ << CalenDayStatusStrip::OnlyFrame;
+ QTest::newRow("StripWithLines") << CalenDayStatusStrip::StripWithLines
+ << CalenDayStatusStrip::StripWithLines;
+ QTest::newRow("Filled") << CalenDayStatusStrip::Filled
+ << CalenDayStatusStrip::Filled;
+}
+
+/*!
+ Test settting and getting drawing style on preapred data
+
+ \sa testSetGetDrawingStyle_data
+ */
+void TestCalenStatusStrip::testSetGetDrawingStyle()
+{
+ //get data to test
+ QFETCH(CalenDayStatusStrip::DrawingStyle, testedValue);
+ QFETCH(CalenDayStatusStrip::DrawingStyle, testValue);
+
+ //set data
+ mStatusStrip->setDrawingStyle(testedValue);
+
+ //check data
+ QCOMPARE(mStatusStrip->drawingStyle(),testValue);
+}
+
+/*!
+ Test setting and getting start and end time of event
+ 1)Set end and start of event
+ 2)Change values
+ */
+void TestCalenStatusStrip::testStartEndTime()
+{
+ QPair<QTime, QTime> startEndTime;
+ startEndTime.first = QTime(12,12,12);
+ startEndTime.second = QTime(15,15,15);
+
+ mStatusStrip->setStartEndTime(startEndTime.first,startEndTime.second);
+
+ QCOMPARE(mStatusStrip->startEndTime().first,startEndTime.first);
+ QCOMPARE(mStatusStrip->startEndTime().second,startEndTime.second);
+
+ startEndTime.first = QTime(1,1,1);
+ startEndTime.second = QTime(5,5,5);
+
+ mStatusStrip->setStartEndTime(startEndTime.first,startEndTime.second);
+
+ QCOMPARE(mStatusStrip->startEndTime().first,startEndTime.first);
+ QCOMPARE(mStatusStrip->startEndTime().second,startEndTime.second);
+}
+
+/*!
+ Test creating polygon to draw diagonal line on widget
+ */
+void TestCalenStatusStrip::testCreatingDiagonalLine()
+{
+ qreal dx = 10;
+ qreal dy = 1;
+ QPointF point(0,60);
+ QVector<QPointF> points;
+
+ points << QPointF(0,60);
+ points << QPointF(0,59);
+ points << QPointF(10,58);
+ points << QPointF(10,59);
+
+ QPolygonF testValue(points);
+ QPolygonF testedValue = mStatusStrip->diagonalLine(point,dx,dy);
+
+ QCOMPARE(testedValue,testValue);
+}
+
+/*!
+ Prepare data for \sa testCalculateStartEndTimePosition
+ Add new start and end time of event.
+ 1)Full time start and end
+ 2)Exactly 30min time start and end
+ 3)More than 30min time start and end
+ 4)time start > 30m and end > 23h30m
+ */
+void TestCalenStatusStrip::testCalculateStartEndTimePosition_data()
+{
+ QTest::addColumn<QTime>("testedStartValue");
+ QTest::addColumn<QTime>("testedEndValue");
+ QTest::addColumn<QTime>("testStartValue");
+ QTest::addColumn<QTime>("testEndValue");
+
+ QTest::newRow("Full time start and end") << QTime(10,00,00)
+ << QTime(11,00,00)
+ << QTime(10,00,00)
+ << QTime(11,00,00);
+ QTest::newRow("Exactly 30min time start and end") << QTime(10,30,00)
+ << QTime(11,30,00)
+ << QTime(10,30,00)
+ << QTime(11,30,00);
+ QTest::newRow("More than 30min time start and end") << QTime(10,40,00)
+ << QTime(12,35,00)
+ << QTime(10,30,00)
+ << QTime(13,00,00);
+ QTest::newRow("time start > 30m and end > 23h30m") << QTime(20,35,00)
+ << QTime(23,35,00)
+ << QTime(20,30,00)
+ << QTime(23,59,00);
+}
+
+/*!
+ Test calculating start and end time drawing of event bubble on prepared data
+ \sa testCalculateStartEndTimePosition_data
+ */
+void TestCalenStatusStrip::testCalculateStartEndTimePosition()
+{
+ //get prepared data
+ QFETCH(QTime, testedStartValue);
+ QFETCH(QTime, testedEndValue);
+ QFETCH(QTime, testStartValue);
+ QFETCH(QTime, testEndValue);
+
+ //run function
+ QPair<QTime,QTime> testStartEndValue
+ = mStatusStrip->calculateStartEndPostion(testedStartValue,
+ testedEndValue);
+ //check data
+ QCOMPARE(testStartEndValue.first,testStartValue);
+ QCOMPARE(testStartEndValue.second,testEndValue);
+}
+
+/*!
+ Test calculating minute height based on widget height and given time.
+ 1)Calculate on given time
+ 2)Change time of event
+ */
+void TestCalenStatusStrip::testCalculateMinuteHegiht()
+{
+ qreal testedValue;
+ qreal testValue;
+ mStatusStrip->resize(WIDGET_WIDTH,WIDGET_HEIGHT);
+
+ //1)
+ testedValue = mStatusStrip->calculateMinuteHeight(QTime(10,00,0),
+ QTime(11,00,0));
+ testValue = WIDGET_HEIGHT / (qreal)60;
+ QCOMPARE(testedValue,testValue);
+
+ //2)
+ testedValue = mStatusStrip->calculateMinuteHeight(QTime(10,00,0),
+ QTime(11,30,0));
+ testValue = WIDGET_HEIGHT / (qreal)90;
+ QCOMPARE(testedValue,testValue);
+}
+
+
+/*!
+ Test drawing widget.
+
+ If there is no SAVE_IMAGES macro defined it will only run this function.
+ If there is macro defined and c:\unittest folder created then image will be
+ created so user can see if it draw in good way.
+ */
+void TestCalenStatusStrip::testPaint()
+{
+ //preapre data needed to draw on widget
+ mStatusStrip->setColor(QColor(Qt::red));
+ QPair<QTime, QTime> startEndTime;
+ startEndTime.first = QTime(10,20,0);
+ startEndTime.second = QTime(15,10,00);
+
+ //set event time
+ mStatusStrip->setStartEndTime(startEndTime.first,startEndTime.second);
+
+ //resize widget to be bigger than (0,0)
+ mStatusStrip->resize(WIDGET_WIDTH,WIDGET_HEIGHT);
+ QSize size = mStatusStrip->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 white color to have better filings with look of "paper"
+ painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::white));
+ //run paint
+ mStatusStrip->paint(&painter,0);
+
+#ifdef SAVE_IMAGES
+ //save drawed image
+ img.save("c:/unittest/TestCalenStatusStrip_testPaint.jpg");
+
+#endif
+
+}
+
+QTEST_MAIN(TestCalenStatusStrip);
+#include "unittest_calendaystatusstrip.moc"