##// END OF EJS Templates
barseries test fix
sauimone -
r1598:c12edccc36d7
parent child
Show More
@@ -1,277 +1,277
1 1 /****************************************************************************
2 2 **
3 3 ** Copyright (C) 2012 Digia Plc
4 4 ** All rights reserved.
5 5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 6 **
7 7 ** This file is part of the Qt Commercial Charts Add-on.
8 8 **
9 9 ** $QT_BEGIN_LICENSE$
10 10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 11 ** accordance with the Qt Commercial License Agreement provided with the
12 12 ** Software or, alternatively, in accordance with the terms contained in
13 13 ** a written agreement between you and Digia.
14 14 **
15 15 ** If you have questions regarding the use of this file, please use
16 16 ** contact form at http://qt.digia.com
17 17 ** $QT_END_LICENSE$
18 18 **
19 19 ****************************************************************************/
20 20
21 21 #include <QtTest/QtTest>
22 22 #include <qbarseries.h>
23 23 #include <qbarset.h>
24 24 #include <qchartview.h>
25 25 #include <qchart.h>
26 26 #include <QBarModelMapper>
27 27 #include <QStandardItemModel>
28 28 #include "tst_definitions.h"
29 29
30 30 QTCOMMERCIALCHART_USE_NAMESPACE
31 31
32 32 Q_DECLARE_METATYPE(QBarSet*)
33 33
34 34 class tst_QGroupedBarSeries : public QObject
35 35 {
36 36 Q_OBJECT
37 37
38 38 public slots:
39 39 void initTestCase();
40 40 void cleanupTestCase();
41 41 void init();
42 42 void cleanup();
43 43
44 44 private slots:
45 45 void qgroupedbarseries_data();
46 46 void qgroupedbarseries();
47 47 void type_data();
48 48 void type();
49 49 void mouseclicked_data();
50 50 void mouseclicked();
51 51 void mousehovered_data();
52 52 void mousehovered();
53 53
54 54 private:
55 55 QBarSeries* m_barseries;
56 56 };
57 57
58 58 void tst_QGroupedBarSeries::initTestCase()
59 59 {
60 60 qRegisterMetaType<QBarSet*>("QBarSet*");
61 61 }
62 62
63 63 void tst_QGroupedBarSeries::cleanupTestCase()
64 64 {
65 65 }
66 66
67 67 void tst_QGroupedBarSeries::init()
68 68 {
69 69 m_barseries = new QBarSeries();
70 70 }
71 71
72 72 void tst_QGroupedBarSeries::cleanup()
73 73 {
74 74 delete m_barseries;
75 75 m_barseries = 0;
76 76 }
77 77
78 78 void tst_QGroupedBarSeries::qgroupedbarseries_data()
79 79 {
80 80 }
81 81
82 82 void tst_QGroupedBarSeries::qgroupedbarseries()
83 83 {
84 84 QBarSeries *barseries = new QBarSeries();
85 85 QVERIFY(barseries != 0);
86 86 }
87 87
88 88 void tst_QGroupedBarSeries::type_data()
89 89 {
90 90
91 91 }
92 92
93 93 void tst_QGroupedBarSeries::type()
94 94 {
95 QVERIFY(m_barseries->type() == QAbstractSeries::SeriesTypeGroupedBar);
95 QVERIFY(m_barseries->type() == QAbstractSeries::SeriesTypeBar);
96 96 }
97 97
98 98 void tst_QGroupedBarSeries::mouseclicked_data()
99 99 {
100 100
101 101 }
102 102
103 103 void tst_QGroupedBarSeries::mouseclicked()
104 104 {
105 105 QBarSeries* series = new QBarSeries();
106 106
107 107 QBarSet* set1 = new QBarSet(QString("set 1"));
108 108 *set1 << 10 << 10 << 10;
109 109 series->append(set1);
110 110
111 111 QBarSet* set2 = new QBarSet(QString("set 2"));
112 112 *set2 << 10 << 10 << 10;
113 113 series->append(set2);
114 114
115 115 QSignalSpy seriesSpy(series,SIGNAL(clicked(int, QBarSet*)));
116 116
117 117 QChartView view(new QChart());
118 118 view.resize(400,300);
119 119 view.chart()->addSeries(series);
120 120 view.show();
121 121 QTest::qWaitForWindowShown(&view);
122 122
123 123 //====================================================================================
124 124 // barset 1, category test1
125 125 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(95,143));
126 126 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
127 127
128 128 QCOMPARE(seriesSpy.count(), 1);
129 129
130 130 QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
131 131 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
132 132 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Int);
133 133 QVERIFY(seriesSpyArg.at(0).toInt() == 0);
134 134
135 135 //====================================================================================
136 136 // barset 1, category test2
137 137 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(187,143));
138 138 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
139 139
140 140 QCOMPARE(seriesSpy.count(), 1);
141 141
142 142 seriesSpyArg = seriesSpy.takeFirst();
143 143 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
144 144 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Int);
145 145 QVERIFY(seriesSpyArg.at(0).toInt() == 1);
146 146
147 147 //====================================================================================
148 148 // barset 1, category test3
149 149 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(280,143));
150 150 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
151 151
152 152 QCOMPARE(seriesSpy.count(), 1);
153 153
154 154 seriesSpyArg = seriesSpy.takeFirst();
155 155 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
156 156 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Int);
157 157 QVERIFY(seriesSpyArg.at(0).toInt() == 2);
158 158
159 159 //====================================================================================
160 160 // barset 2, category test1
161 161 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(118,143));
162 162 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
163 163
164 164 QCOMPARE(seriesSpy.count(), 1);
165 165
166 166 seriesSpyArg = seriesSpy.takeFirst();
167 167 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
168 168 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Int);
169 169 QVERIFY(seriesSpyArg.at(0).toInt() == 0);
170 170
171 171 //====================================================================================
172 172 // barset 2, category test2
173 173 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(210,143));
174 174 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
175 175
176 176 QCOMPARE(seriesSpy.count(), 1);
177 177
178 178 seriesSpyArg = seriesSpy.takeFirst();
179 179 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
180 180 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Int);
181 181 QVERIFY(seriesSpyArg.at(0).toInt() == 1);
182 182
183 183 //====================================================================================
184 184 // barset 2, category test3
185 185 QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, QPoint(303,143));
186 186 QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
187 187
188 188 QCOMPARE(seriesSpy.count(), 1);
189 189
190 190 seriesSpyArg = seriesSpy.takeFirst();
191 191 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
192 192 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Int);
193 193 QVERIFY(seriesSpyArg.at(0).toInt() == 2);
194 194 }
195 195
196 196 void tst_QGroupedBarSeries::mousehovered_data()
197 197 {
198 198
199 199 }
200 200
201 201 void tst_QGroupedBarSeries::mousehovered()
202 202 {
203 203 QBarSeries* series = new QBarSeries();
204 204
205 205 QBarSet* set1 = new QBarSet(QString("set 1"));
206 206 *set1 << 10 << 10 << 10;
207 207 series->append(set1);
208 208
209 209 QBarSet* set2 = new QBarSet(QString("set 2"));
210 210 *set2 << 10 << 10 << 10;
211 211 series->append(set2);
212 212
213 213 QSignalSpy seriesSpy(series,SIGNAL(hovered(bool, QBarSet*)));
214 214
215 215 QChartView view(new QChart());
216 216 view.resize(400,300);
217 217 view.chart()->addSeries(series);
218 218 view.show();
219 219 QTest::qWaitForWindowShown(&view);
220 220
221 221 //this is hack since view does not get events otherwise
222 222 view.setMouseTracking(true);
223 223
224 224 //=======================================================================
225 225 // move mouse to left border
226 226 qDebug() << "move mouse to left border";
227 227 QTest::mouseMove(view.viewport(), QPoint(0, 143));
228 228 QCoreApplication::processEvents(QEventLoop::AllEvents, 10000);
229 229 TRY_COMPARE(seriesSpy.count(), 0);
230 230
231 231 //=======================================================================
232 232 // move mouse on top of set1
233 233 qDebug() << "move mouse on top of set1";
234 234 QTest::mouseMove(view.viewport(), QPoint(95,143));
235 235 TRY_COMPARE(seriesSpy.count(), 1);
236 236
237 237 QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
238 238 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
239 239 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
240 240 QVERIFY(seriesSpyArg.at(0).toBool() == true);
241 241
242 242 //=======================================================================
243 243 // move mouse from top of set1 to top of set2
244 244 qDebug() << "move mouse from top of set1 to top of set2";
245 245 QTest::mouseMove(view.viewport(), QPoint(118,143));
246 246 TRY_COMPARE(seriesSpy.count(), 2);
247 247
248 248 // should leave set1
249 249 seriesSpyArg = seriesSpy.takeFirst();
250 250 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
251 251 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
252 252 QVERIFY(seriesSpyArg.at(0).toBool() == false);
253 253
254 254 // should enter set2
255 255 seriesSpyArg = seriesSpy.takeFirst();
256 256 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
257 257 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
258 258 QVERIFY(seriesSpyArg.at(0).toBool() == true);
259 259
260 260 //=======================================================================
261 261 // move mouse from top of set2 to background
262 262 qDebug() << "move mouse from top of set2 to background";
263 263
264 264 QTest::mouseMove(view.viewport(), QPoint(118,0));
265 265 TRY_COMPARE(seriesSpy.count(), 1);
266 266
267 267 // should leave set2
268 268 seriesSpyArg = seriesSpy.takeFirst();
269 269 QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
270 270 QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
271 271 QVERIFY(seriesSpyArg.at(0).toBool() == false);
272 272 }
273 273
274 274 QTEST_MAIN(tst_QGroupedBarSeries)
275 275
276 276 #include "tst_qgroupedbarseries.moc"
277 277
General Comments 0
You need to be logged in to leave comments. Login now