@@ -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 | 24 | qcategoryaxis \ |
|
25 | 25 | qbarcategoryaxis \ |
|
26 | 26 | domain \ |
|
27 | chartdataset | |
|
27 | chartdataset \ | |
|
28 | qlegend | |
|
28 | 29 | |
|
29 | 30 | contains(QT_VERSION, ^4\\.[0-7]\\.[0-3]\\s*$) | contains(QT_VERSION, ^4\\.[0-6]\\..*) { |
|
30 | 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