##// END OF EJS Templates
qlegend unit test started
sauimone -
r2207:d9d98bcd2ec4
parent child
Show More
@@ -0,0 +1,4
1 !include( ../auto.pri ) {
2 error( "Couldn't find the auto.pri file!" )
3 }
4 SOURCES += tst_qlegend.cpp
@@ -0,0 +1,224
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 <qchartview.h>
23 #include <qlegend.h>
24 #include <qpieseries.h>
25 #include <qpielegendmarker.h>
26 #include <qareaseries.h>
27 #include <qarealegendmarker.h>
28 #include <qlineseries.h>
29 #include <qxylegendmarker.h>
30 #include <qbarseries.h>
31 #include <qbarset.h>
32 #include <qbarlegendmarker.h>
33
34 QTCOMMERCIALCHART_USE_NAMESPACE
35
36 class tst_QLegend : public QObject
37 {
38 Q_OBJECT
39
40 public slots:
41 void initTestCase();
42 void cleanupTestCase();
43 void init();
44 void cleanup();
45
46 private slots:
47 void qlegend();
48 void qpieLegendMarker();
49 void qareaLegendMarker();
50 void qxyLegendMarker();
51 void qbarLegendMarker();
52
53 private:
54
55 QChart *m_chart;
56
57 };
58
59 void tst_QLegend::initTestCase()
60 {
61 }
62
63 void tst_QLegend::cleanupTestCase()
64 {
65 }
66
67 void tst_QLegend::init()
68 {
69 m_chart = new QChart();
70 }
71
72 void tst_QLegend::cleanup()
73 {
74 delete m_chart;
75 m_chart = 0;
76 }
77
78 void tst_QLegend::qlegend()
79 {
80 QVERIFY(m_chart);
81
82 QLegend *legend = m_chart->legend();
83 QVERIFY(legend);
84
85 QList<QLegendMarker*> markers = legend->markers();
86 QVERIFY(markers.count() == 0);
87 }
88
89 void tst_QLegend::qpieLegendMarker()
90 {
91 QVERIFY(m_chart);
92 QLegend *legend = m_chart->legend();
93
94 QPieSeries *series = new QPieSeries();
95 QPieSlice *s1 = new QPieSlice(QString("s1"), 111.0);
96 series->append(s1);
97 m_chart->addSeries(series);
98
99 // Should have one marker
100 QList<QLegendMarker*> markers = legend->markers();
101 QVERIFY(markers.count() == 1);
102 QLegendMarker *m = markers.at(0);
103
104 // Should be piemarker
105 QVERIFY(m->type() == QLegendMarker::LegendMarkerTypePie);
106
107 // Related series and slice must match
108 QPieLegendMarker *pm = qobject_cast<QPieLegendMarker *> (m);
109 QVERIFY(pm);
110 QVERIFY(pm->series() == series);
111 QVERIFY(pm->slice() == s1);
112
113 // Add another slice
114 QPieSlice *s2 = new QPieSlice(QString("s2"), 111.0);
115 series->append(s2);
116
117 markers = legend->markers();
118 QVERIFY(markers.count() == 2);
119 m = markers.at(1);
120
121 QVERIFY(m->type() == QLegendMarker::LegendMarkerTypePie);
122
123 // Related series and slice must match
124 pm = qobject_cast<QPieLegendMarker *> (m);
125 QVERIFY(pm);
126 QVERIFY(pm->series() == series);
127 QVERIFY(pm->slice() == s2);
128 }
129
130 void tst_QLegend::qareaLegendMarker()
131 {
132 QVERIFY(m_chart);
133 QLegend *legend = m_chart->legend();
134 QAreaSeries *series = new QAreaSeries();
135
136 QLineSeries *upper = new QLineSeries();
137 QLineSeries *lower = new QLineSeries();
138
139 upper->append(1,1);
140 lower->append(1,0);
141
142 series->setUpperSeries(upper);
143 series->setLowerSeries(lower);
144
145 m_chart->addSeries(series);
146
147 // Should have one marker
148 QList<QLegendMarker *> markers = legend->markers();
149 QVERIFY(markers.count() == 1);
150 QLegendMarker *m = markers.at(0);
151
152 QVERIFY(m->series() == series);
153 QVERIFY(m->type() == QLegendMarker::LegendMarkerTypeArea);
154
155 QAreaLegendMarker *pm = qobject_cast<QAreaLegendMarker *> (m);
156 QVERIFY(pm);
157 QVERIFY(pm->series() == series);
158 }
159
160 void tst_QLegend::qxyLegendMarker()
161 {
162 QVERIFY(m_chart);
163 QLegend *legend = m_chart->legend();
164
165 QLineSeries *series = new QLineSeries();
166 m_chart->addSeries(series);
167
168 // Should have one marker
169 QList<QLegendMarker *> markers = legend->markers();
170 QVERIFY(markers.count() == 1);
171 QLegendMarker *m = markers.at(0);
172
173 QVERIFY(m->series() == series);
174 QVERIFY(m->type() == QLegendMarker::LegendMarkerTypeXY);
175
176 QXYLegendMarker *pm = qobject_cast<QXYLegendMarker *> (m);
177 QVERIFY(pm);
178 QVERIFY(pm->series() == series);
179 }
180
181 void tst_QLegend::qbarLegendMarker()
182 {
183 QVERIFY(m_chart);
184 QLegend *legend = m_chart->legend();
185
186 QBarSeries *series = new QBarSeries();
187 QBarSet *set0 = new QBarSet(QString("set0"));
188 series->append(set0);
189 m_chart->addSeries(series);
190
191 // Should have one marker
192 QList<QLegendMarker *> markers = legend->markers();
193 QVERIFY(markers.count() == 1);
194 QLegendMarker *m = markers.at(0);
195
196 QVERIFY(m->series() == series);
197 QVERIFY(m->type() == QLegendMarker::LegendMarkerTypeBar);
198
199 QBarLegendMarker *pm = qobject_cast<QBarLegendMarker *> (m);
200 QVERIFY(pm);
201 QVERIFY(pm->series() == series);
202 QVERIFY(pm->barset() == set0);
203
204 // Add another barset
205 QBarSet *set1 = new QBarSet(QString("set0"));
206 series->append(set1);
207
208 markers = legend->markers();
209 QVERIFY(markers.count() == 2);
210 m = markers.at(1);
211
212 QVERIFY(m->series() == series);
213 QVERIFY(m->type() == QLegendMarker::LegendMarkerTypeBar);
214
215 pm = qobject_cast<QBarLegendMarker *> (m);
216 QVERIFY(pm);
217 QVERIFY(pm->series() == series);
218 QVERIFY(pm->barset() == set1);
219 }
220
221 QTEST_MAIN(tst_QLegend)
222
223 #include "tst_qlegend.moc"
224
@@ -24,7 +24,8 SUBDIRS += \
24 qcategoryaxis \
24 qcategoryaxis \
25 qbarcategoryaxis \
25 qbarcategoryaxis \
26 domain \
26 domain \
27 chartdataset
27 chartdataset \
28 qlegend
28
29
29 contains(QT_VERSION, ^4\\.[0-7]\\.[0-3]\\s*$) | contains(QT_VERSION, ^4\\.[0-6]\\..*) {
30 contains(QT_VERSION, ^4\\.[0-7]\\.[0-3]\\s*$) | contains(QT_VERSION, ^4\\.[0-6]\\..*) {
30 warning("QtCommercial.Charts QML API requires at least Qt 4.7.4. You are using $${QT_VERSION} so the QML API is disabled.")
31 warning("QtCommercial.Charts QML API requires at least Qt 4.7.4. You are using $${QT_VERSION} so the QML API is disabled.")
General Comments 0
You need to be logged in to leave comments. Login now