##// END OF EJS Templates
grouped barchart tests
sauimone -
r1181:2dfb3c72c0aa
parent child
Show More
@@ -0,0 +1,6
1 !include( ../auto.pri ) {
2 error( "Couldn't find the auto.pri file!" )
3 }
4 SOURCES += tst_qgroupedbarseries.cpp
5
6 !system_build:mac: QMAKE_POST_LINK += "$$MAC_POST_LINK_PREFIX $$MAC_AUTOTESTS_BIN_DIR"
@@ -0,0 +1,347
1 /****************************************************************************
2 **
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
14 **
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
18 **
19 ****************************************************************************/
20
21 #include <QtTest/QtTest>
22 #include <qgroupedbarseries.h>
23 #include <qbarset.h>
24 #include <qchartview.h>
25 #include <qchart.h>
26
27 QTCOMMERCIALCHART_USE_NAMESPACE
28
29 Q_DECLARE_METATYPE(QBarSet*)
30
31 class tst_QGroupedBarSeries : public QObject
32 {
33 Q_OBJECT
34
35 public slots:
36 void initTestCase();
37 void cleanupTestCase();
38 void init();
39 void cleanup();
40
41 private slots:
42 void qgroupedbarseries_data();
43 void qgroupedbarseries();
44 void type_data();
45 void type();
46 void mouseclicked_data();
47 void mouseclicked();
48 void mousehovered_data();
49 void mousehovered();
50
51 private:
52 QGroupedBarSeries* m_barseries;
53 };
54
55 void tst_QGroupedBarSeries::initTestCase()
56 {
57 qRegisterMetaType<QBarSet*>("QBarSet*");
58 }
59
60 void tst_QGroupedBarSeries::cleanupTestCase()
61 {
62 }
63
64 void tst_QGroupedBarSeries::init()
65 {
66 m_barseries = new QGroupedBarSeries();
67 }
68
69 void tst_QGroupedBarSeries::cleanup()
70 {
71 delete m_barseries;
72 m_barseries = 0;
73 }
74
75 void tst_QGroupedBarSeries::qgroupedbarseries_data()
76 {
77 }
78
79 void tst_QGroupedBarSeries::qgroupedbarseries()
80 {
81 QGroupedBarSeries *barseries = new QGroupedBarSeries();
82 QVERIFY(barseries != 0);
83 }
84
85 void tst_QGroupedBarSeries::type_data()
86 {
87
88 }
89
90 void tst_QGroupedBarSeries::type()
91 {
92 QVERIFY(m_barseries->type() == QAbstractSeries::SeriesTypeGroupedBar);
93 }
94
95 void tst_QGroupedBarSeries::mouseclicked_data()
96 {
97
98 }
99
100 void tst_QGroupedBarSeries::mouseclicked()
101 {
102 QGroupedBarSeries* series = new QGroupedBarSeries();
103 QBarCategories categories;
104 categories << "test1" << "test2" << "test3";
105 series->setCategories(categories);
106
107 QBarSet* set1 = new QBarSet(QString("set 1"));
108 *set1 << 10 << 10 << 10;
109 series->appendBarSet(set1);
110
111 QBarSet* set2 = new QBarSet(QString("set 2"));
112 *set2 << 10 << 10 << 10;
113 series->appendBarSet(set2);
114
115 QSignalSpy setSpy1(set1, SIGNAL(clicked(QString)));
116 QSignalSpy setSpy2(set2, SIGNAL(clicked(QString)));
117 QSignalSpy seriesSpy(series,SIGNAL(clicked(QBarSet*,QString)));
118
119 QChartView view(new QChart());
120 view.resize(400,300);
121 view.chart()->addSeries(series);
122 view.show();
123 QTest::qWaitForWindowShown(&view);
124
125 //====================================================================================
126 // barset 1, category test1
127 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(100,180));
128 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
129
130 QCOMPARE(setSpy1.count(), 1);
131 QCOMPARE(setSpy2.count(), 0);
132 QCOMPARE(seriesSpy.count(), 1);
133 QList<QVariant> setSpyArg = setSpy1.takeFirst();
134 QVERIFY(setSpyArg.at(0).type() == QVariant::String);
135 QVERIFY(setSpyArg.at(0).toString().compare(QString("test1")) == 0);
136
137 QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
138 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set1);
139
140 //====================================================================================
141 // barset 1, category test2
142 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(190,180));
143 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
144
145 QCOMPARE(setSpy1.count(), 1);
146 QCOMPARE(setSpy2.count(), 0);
147 QCOMPARE(seriesSpy.count(), 1);
148 setSpyArg = setSpy1.takeFirst();
149 QVERIFY(setSpyArg.at(0).type() == QVariant::String);
150 QVERIFY(setSpyArg.at(0).toString().compare(QString("test2")) == 0);
151
152 seriesSpyArg = seriesSpy.takeFirst();
153 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set1);
154
155 //====================================================================================
156 // barset 1, category test3
157 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(280,180));
158 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
159
160 QCOMPARE(setSpy1.count(), 1);
161 QCOMPARE(setSpy2.count(), 0);
162 QCOMPARE(seriesSpy.count(), 1);
163 setSpyArg = setSpy1.takeFirst();
164 QVERIFY(setSpyArg.at(0).type() == QVariant::String);
165 QVERIFY(setSpyArg.at(0).toString().compare(QString("test3")) == 0);
166
167 seriesSpyArg = seriesSpy.takeFirst();
168 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set1);
169
170 //====================================================================================
171 // barset 2, category test1
172 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(130,180));
173 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
174
175 QCOMPARE(setSpy1.count(), 0);
176 QCOMPARE(setSpy2.count(), 1);
177 QCOMPARE(seriesSpy.count(), 1);
178 setSpyArg = setSpy2.takeFirst();
179 QVERIFY(setSpyArg.at(0).type() == QVariant::String);
180 QVERIFY(setSpyArg.at(0).toString().compare(QString("test1")) == 0);
181
182 seriesSpyArg = seriesSpy.takeFirst();
183 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set2);
184
185 //====================================================================================
186 // barset 2, category test2
187 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(220,180));
188 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
189
190 QCOMPARE(setSpy1.count(), 0);
191 QCOMPARE(setSpy2.count(), 1);
192 QCOMPARE(seriesSpy.count(), 1);
193 setSpyArg = setSpy2.takeFirst();
194 QVERIFY(setSpyArg.at(0).type() == QVariant::String);
195 QVERIFY(setSpyArg.at(0).toString().compare(QString("test2")) == 0);
196
197 seriesSpyArg = seriesSpy.takeFirst();
198 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set2);
199
200 //====================================================================================
201 // barset 2, category test3
202 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(310,180));
203 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
204
205 QCOMPARE(setSpy1.count(), 0);
206 QCOMPARE(setSpy2.count(), 1);
207 QCOMPARE(seriesSpy.count(), 1);
208 setSpyArg = setSpy2.takeFirst();
209 QVERIFY(setSpyArg.at(0).type() == QVariant::String);
210 QVERIFY(setSpyArg.at(0).toString().compare(QString("test3")) == 0);
211
212 seriesSpyArg = seriesSpy.takeFirst();
213 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set2);
214
215 //====================================================================================
216 // no event cases
217 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(1,1)); // Outside of both sets
218 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(1,1)); // Right mouse button outside and inside sets
219 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(100,180)); // barset 1, category test1
220 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(190,180)); // barset 1, category test2
221 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(280,180)); // barset 1, category test3
222 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(130,180)); // barset 2, category test1
223 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(220,180)); // barset 2, category test2
224 QTest::mouseClick(view.viewport(), Qt::RightButton, 0, QPoint(310,180)); // barset 2, category test3
225
226 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
227 QCOMPARE(setSpy1.count(), 0);
228 QCOMPARE(setSpy2.count(), 0);
229 QCOMPARE(seriesSpy.count(), 0);
230 }
231
232 void tst_QGroupedBarSeries::mousehovered_data()
233 {
234
235 }
236
237 void tst_QGroupedBarSeries::mousehovered()
238 {
239 QGroupedBarSeries* series = new QGroupedBarSeries();
240 QBarCategories categories;
241 categories << "test1" << "test2" << "test3";
242 series->setCategories(categories);
243
244 QBarSet* set1 = new QBarSet(QString("set 1"));
245 *set1 << 10 << 10 << 10;
246 series->appendBarSet(set1);
247
248 QBarSet* set2 = new QBarSet(QString("set 2"));
249 *set2 << 10 << 10 << 10;
250 series->appendBarSet(set2);
251
252 QSignalSpy setSpy1(set1, SIGNAL(hovered(bool)));
253 QSignalSpy setSpy2(set2, SIGNAL(hovered(bool)));
254 QSignalSpy seriesSpy(series,SIGNAL(hovered(QBarSet*,bool)));
255
256 QChartView view(new QChart());
257 view.resize(400,300);
258 view.chart()->addSeries(series);
259 view.show();
260 QTest::qWaitForWindowShown(&view);
261
262 //this is hack since view does not get events otherwise
263 view.setMouseTracking(true);
264
265 //=======================================================================
266 // move mouse to left border
267 QTest::mouseMove(view.viewport(), QPoint(0, 180));
268
269 QVERIFY(setSpy1.count() == 0);
270 QVERIFY(setSpy2.count() == 0);
271 QVERIFY(seriesSpy.count() == 0);
272
273 //=======================================================================
274 // move mouse on top of set1
275 QTest::mouseMove(view.viewport(), QPoint(100,180));
276
277 QVERIFY(setSpy1.count() == 1);
278 QVERIFY(setSpy2.count() == 0);
279 QVERIFY(seriesSpy.count() == 1);
280
281 QList<QVariant> setSpyArg = setSpy1.takeFirst();
282 QVERIFY(setSpyArg.at(0).type() == QVariant::Bool);
283 QVERIFY(setSpyArg.at(0).toBool() == true);
284
285 QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
286 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set1);
287
288 //=======================================================================
289 // move mouse from top of set1 to top of set2
290 QTest::mouseMove(view.viewport(), QPoint(130,180));
291
292 QVERIFY(setSpy1.count() == 1);
293 QVERIFY(setSpy2.count() == 1);
294 QVERIFY(seriesSpy.count() == 2);
295
296 // should leave set1
297 setSpyArg = setSpy1.takeFirst();
298 QVERIFY(setSpyArg.at(0).type() == QVariant::Bool);
299 QVERIFY(setSpyArg.at(0).toBool() == false);
300
301 // should enter set2
302 setSpyArg = setSpy2.takeFirst();
303 QVERIFY(setSpyArg.at(0).type() == QVariant::Bool);
304 QVERIFY(setSpyArg.at(0).toBool() == true);
305
306 // should leave set1
307 seriesSpyArg = seriesSpy.takeFirst();
308 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set1);
309 QVERIFY(seriesSpyArg.at(1).type() == QVariant::Bool);
310 QVERIFY(seriesSpyArg.at(1).toBool() == false);
311
312 // should enter set2
313 seriesSpyArg = seriesSpy.takeFirst();
314 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set2);
315 QVERIFY(seriesSpyArg.at(1).type() == QVariant::Bool);
316 QVERIFY(seriesSpyArg.at(1).toBool() == true);
317
318 //=======================================================================
319 // move mouse from top of set2 to background
320 QTest::mouseMove(view.viewport(), QPoint(160,180));
321
322 QVERIFY(setSpy1.count() == 0);
323 QVERIFY(setSpy2.count() == 1);
324 QVERIFY(seriesSpy.count() == 1);
325
326 // should leave set2 (event via set)
327 setSpyArg = setSpy2.takeFirst();
328 QVERIFY(setSpyArg.at(0).type() == QVariant::Bool);
329 QVERIFY(setSpyArg.at(0).toBool() == false);
330
331 // should leave set2 (event via series)
332 seriesSpyArg = seriesSpy.takeFirst();
333 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(0)), set2);
334 QVERIFY(seriesSpyArg.at(1).type() == QVariant::Bool);
335 QVERIFY(seriesSpyArg.at(1).toBool() == false);
336 }
337
338
339 /*
340 bool setModel(QAbstractItemModel *model);
341 void setModelMapping(int categories, int bottomBoundary, int topBoundary, Qt::Orientation orientation = Qt::Vertical);
342 void setModelMappingRange(int first, int count = -1);
343 */
344 QTEST_MAIN(tst_QGroupedBarSeries)
345
346 #include "tst_qgroupedbarseries.moc"
347
@@ -3,7 +3,7
3 }
3 }
4
4
5 TEMPLATE = subdirs
5 TEMPLATE = subdirs
6 SUBDIRS += qchartview qchart qlineseries qbarset qbarseries qstackedbarseries qpercentbarseries qpieslice qpieseries
6 SUBDIRS += qchartview qchart qlineseries qbarset qbarseries qstackedbarseries qpercentbarseries qgropuedbarseries qpieslice qpieseries
7
7
8 test_private:{
8 test_private:{
9 SUBDIRS += chartdataset domain
9 SUBDIRS += chartdataset domain
General Comments 0
You need to be logged in to leave comments. Login now