calendarui/views/dayview/tsrc/unittests/unittest_calendayeventspane/unittest_calendayeventspane.cpp
changeset 55 2c54b51f39c4
parent 45 b6db4fd4947b
--- a/calendarui/views/dayview/tsrc/unittests/unittest_calendayeventspane/unittest_calendayeventspane.cpp	Mon Jul 12 02:32:28 2010 +0530
+++ b/calendarui/views/dayview/tsrc/unittests/unittest_calendayeventspane/unittest_calendayeventspane.cpp	Mon Jul 26 13:54:38 2010 +0530
@@ -18,8 +18,16 @@
 #include <QtTest/QtTest>
 #include <QPen>
 
+#include <QPainter>
+#include <QImage>
+#include <QGraphicsScene>
+#include <hbstyleloader.h>
+
 #include "calendayeventspane.h"
 
+const qreal WIDGET_WIDTH = 300;
+const qreal WIDGET_HEIGHT = 1000;
+
 class TestCalenEventsPane : public QObject
 {
 Q_OBJECT
@@ -35,6 +43,8 @@
     void cleanup();
 
     void testConstructors();
+    void testSetGetTopLineDrawing();
+    void testContentDrawing();
 
 private:
     CalenDayEventsPane *mEventsPane;
@@ -62,6 +72,11 @@
  */
 void TestCalenEventsPane::initTestCase()
 {
+    HbStyleLoader::registerFilePath(":/calendayhourelement.css");
+    HbStyleLoader::registerFilePath(":/calendayhourelement.widgetml");
+    HbStyleLoader::registerFilePath(":/calendayitem.css");
+    HbStyleLoader::registerFilePath(":/calendayitem.widgetml");
+    HbStyleLoader::registerFilePath(":/calendayeventspane.css");
 }
 
 /*!
@@ -108,5 +123,70 @@
     delete testEventsPane;
 }
 
+/*!
+   Test setting and getting info about top line drawing
+   1. Test first set of value
+   2. Test change value
+ */
+void TestCalenEventsPane::testSetGetTopLineDrawing()
+{
+    //1)
+    mEventsPane->setDrawTopLine(true);
+    QCOMPARE(mEventsPane->isTopLineDrawed(),true);
+    //2)
+    mEventsPane->setDrawTopLine(false);
+    QCOMPARE(mEventsPane->isTopLineDrawed(),false);
+}
+
+/*!
+   Test drawing content of widget
+   1. Test without top line draw
+   2. Test with top line draw
+ */
+void TestCalenEventsPane::testContentDrawing()
+{
+    mEventsPane->resize(WIDGET_WIDTH,WIDGET_HEIGHT);
+    QGraphicsScene scene;
+    scene.addItem(mEventsPane);
+    
+    //resize widget to be bigger than (0,0)
+    QSize size = mEventsPane->size().toSize();
+    QRect viewRectangle(0,10,size.width(),size.height()-20);
+    //create image that will simulate widget where painting should be done
+    QPixmap img(size);
+    //create painter which will be used to paint
+    QPainter painter;    
+    
+    //1)
+    mEventsPane->setDrawTopLine(false);
+    painter.begin(&img);
+    painter.setViewport(viewRectangle);
+    painter.setRenderHint(QPainter::Antialiasing);
+    //fill image with white color to have better filings with look of "paper"
+    painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::white));
+    scene.render(&painter);
+    painter.end();
+#ifdef SAVE_IMAGES
+    //save drawed image
+    img.save("c:/unittest/TestCalenEventsPane_testContentDrawing_false.png");
+#endif
+    
+    //2)
+    mEventsPane->setDrawTopLine(true);
+    painter.begin(&img);
+    painter.setViewport(viewRectangle);
+    painter.setRenderHint(QPainter::Antialiasing);
+    //fill image with white color to have better filings with look of "paper"
+    painter.fillRect(0,0,size.width(),size.height(),QColor(Qt::white));
+    scene.render(&painter);
+    painter.end();
+#ifdef SAVE_IMAGES
+    //save drawed image
+    img.save("c:/unittest/TestCalenEventsPane_testContentDrawing_true.png");
+#endif  
+   
+    scene.removeItem(mEventsPane);
+}
+
 QTEST_MAIN(TestCalenEventsPane);
 #include "unittest_calendayeventspane.moc"