@@ -167,25 +167,19 bool QBarSeries::removeBarSets(QList<QBarSet* > sets) | |||
|
167 | 167 | { |
|
168 | 168 | Q_D(QBarSeries); |
|
169 | 169 | |
|
170 | foreach (QBarSet* set, sets) { | |
|
171 | if ((set == 0) || (!d->m_barSets.contains(set))) { | |
|
172 | // Fail if any of the sets is null or isn't in m_barSets | |
|
173 | return false; | |
|
174 | } | |
|
175 | if (sets.count(set) != 1) { | |
|
176 | // Also fail if same set is more than once in given list. | |
|
177 | return false; | |
|
178 | } | |
|
179 | } | |
|
180 | ||
|
170 | bool setsRemoved = false; | |
|
181 | 171 | foreach (QBarSet* set, sets) { |
|
182 | 172 | if (d->m_barSets.contains(set)) { |
|
183 | 173 | d->m_barSets.removeOne(set); |
|
184 | 174 | QObject::disconnect(set->d_ptr.data(), SIGNAL(updatedBars()), d, SLOT(barsetChanged())); |
|
175 | setsRemoved = true; | |
|
185 | 176 | } |
|
186 | 177 | } |
|
187 | emit d->restructuredBars(); | |
|
188 | return true; | |
|
178 | ||
|
179 | if (setsRemoved) { | |
|
180 | emit d->restructuredBars(); | |
|
181 | } | |
|
182 | return setsRemoved; | |
|
189 | 183 | } |
|
190 | 184 | |
|
191 | 185 | /*! |
@@ -167,15 +167,32 void tst_QBarSeries::appendBarSet() | |||
|
167 | 167 | { |
|
168 | 168 | QVERIFY(m_barseries->barsetCount() == 0); |
|
169 | 169 | |
|
170 | bool ret = false; | |
|
171 | ||
|
172 | // Try adding barset | |
|
170 | 173 | QBarSet *barset = new QBarSet("testset"); |
|
171 | m_barseries->appendBarSet(barset); | |
|
174 | ret = m_barseries->appendBarSet(barset); | |
|
172 | 175 | |
|
176 | QVERIFY(ret == true); | |
|
173 | 177 | QVERIFY(m_barseries->barsetCount() == 1); |
|
174 | 178 | |
|
179 | // Try adding another set | |
|
175 | 180 | QBarSet *barset2 = new QBarSet("testset2"); |
|
176 | m_barseries->appendBarSet(barset2); | |
|
181 | ret = m_barseries->appendBarSet(barset2); | |
|
182 | ||
|
183 | QVERIFY(ret == true); | |
|
184 | QVERIFY(m_barseries->barsetCount() == 2); | |
|
177 | 185 | |
|
186 | // Try adding same set again | |
|
187 | ret = m_barseries->appendBarSet(barset2); | |
|
188 | QVERIFY(ret == false); | |
|
178 | 189 | QVERIFY(m_barseries->barsetCount() == 2); |
|
190 | ||
|
191 | // Try adding null set | |
|
192 | ret = m_barseries->appendBarSet(0); | |
|
193 | QVERIFY(ret == false); | |
|
194 | QVERIFY(m_barseries->barsetCount() == 2); | |
|
195 | ||
|
179 | 196 | } |
|
180 | 197 | |
|
181 | 198 | void tst_QBarSeries::removeBarSet_data() |
@@ -187,10 +204,24 void tst_QBarSeries::removeBarSet() | |||
|
187 | 204 | int count = m_testSets.count(); |
|
188 | 205 | QVERIFY(m_barseries_with_sets->barsetCount() == count); |
|
189 | 206 | |
|
207 | // Try to remove null pointer (should not remove, should not crash) | |
|
208 | bool ret = false; | |
|
209 | ret = m_barseries_with_sets->removeBarSet(0); | |
|
210 | QVERIFY(ret == false); | |
|
211 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |
|
212 | ||
|
213 | // Try to remove invalid pointer (should not remove, should not crash) | |
|
214 | ret = m_barseries_with_sets->removeBarSet((QBarSet*) (m_testSets.at(0) + 1) ); | |
|
215 | QVERIFY(ret == false); | |
|
216 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |
|
217 | ||
|
190 | 218 | // remove some sets |
|
191 | m_barseries_with_sets->removeBarSet(m_testSets.at(2)); | |
|
192 | m_barseries_with_sets->removeBarSet(m_testSets.at(3)); | |
|
193 |
m_barseries_with_sets->removeBarSet(m_testSets.at( |
|
|
219 | ret = m_barseries_with_sets->removeBarSet(m_testSets.at(2)); | |
|
220 | QVERIFY(ret == true); | |
|
221 | ret = m_barseries_with_sets->removeBarSet(m_testSets.at(3)); | |
|
222 | QVERIFY(ret == true); | |
|
223 | ret = m_barseries_with_sets->removeBarSet(m_testSets.at(4)); | |
|
224 | QVERIFY(ret == true); | |
|
194 | 225 | |
|
195 | 226 | QVERIFY(m_barseries_with_sets->barsetCount() == 2); |
|
196 | 227 | |
@@ -199,11 +230,13 void tst_QBarSeries::removeBarSet() | |||
|
199 | 230 | QVERIFY(verifysets.at(0) == m_testSets.at(0)); |
|
200 | 231 | QVERIFY(verifysets.at(1) == m_testSets.at(1)); |
|
201 | 232 | |
|
202 | // Try removing all sets again | |
|
233 | // Try removing all sets again (should be ok, even if some sets have already been removed) | |
|
234 | ret = false; | |
|
203 | 235 | for (int i=0; i<count; i++) { |
|
204 | m_barseries_with_sets->removeBarSet(m_testSets.at(i)); | |
|
236 | ret |= m_barseries_with_sets->removeBarSet(m_testSets.at(i)); | |
|
205 | 237 | } |
|
206 | 238 | |
|
239 | QVERIFY(ret == true); | |
|
207 | 240 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
208 | 241 | } |
|
209 | 242 | |
@@ -222,7 +255,37 void tst_QBarSeries::appendBarSets() | |||
|
222 | 255 | sets.append(new QBarSet("testset")); |
|
223 | 256 | } |
|
224 | 257 | |
|
225 | m_barseries->appendBarSets(sets); | |
|
258 | // Append new sets (should succeed, count should match the count of sets) | |
|
259 | bool ret = false; | |
|
260 | ret = m_barseries->appendBarSets(sets); | |
|
261 | QVERIFY(ret == true); | |
|
262 | QVERIFY(m_barseries->barsetCount() == count); | |
|
263 | ||
|
264 | // Append same sets again (should fail, count should remain same) | |
|
265 | ret = m_barseries->appendBarSets(sets); | |
|
266 | QVERIFY(ret == false); | |
|
267 | QVERIFY(m_barseries->barsetCount() == count); | |
|
268 | ||
|
269 | // Try append empty list (should succeed, but count should remain same) | |
|
270 | QList<QBarSet*> invalidList; | |
|
271 | ret = m_barseries->appendBarSets(invalidList); | |
|
272 | QVERIFY(ret == true); | |
|
273 | QVERIFY(m_barseries->barsetCount() == count); | |
|
274 | ||
|
275 | // Try append list with one new and one existing set (should fail, count remains same) | |
|
276 | invalidList.append(new QBarSet("ok set")); | |
|
277 | invalidList.append(sets.at(0)); | |
|
278 | ret = m_barseries->appendBarSets(invalidList); | |
|
279 | QVERIFY(ret == false); | |
|
280 | QVERIFY(m_barseries->barsetCount() == count); | |
|
281 | ||
|
282 | // Try append list with null pointers (should fail, count remains same) | |
|
283 | QList<QBarSet*> invalidList2; | |
|
284 | invalidList2.append(0); | |
|
285 | invalidList2.append(0); | |
|
286 | invalidList2.append(0); | |
|
287 | ret = m_barseries->appendBarSets(invalidList2); | |
|
288 | QVERIFY(ret == false); | |
|
226 | 289 | QVERIFY(m_barseries->barsetCount() == count); |
|
227 | 290 | } |
|
228 | 291 | |
@@ -236,21 +299,36 void tst_QBarSeries::removeBarSets() | |||
|
236 | 299 | int count = m_testSets.count(); |
|
237 | 300 | QVERIFY(m_barseries_with_sets->barsetCount() == count); |
|
238 | 301 | |
|
239 | // Try removing empty list of sets | |
|
240 | QList<QBarSet*> empty; | |
|
241 | m_barseries_with_sets->removeBarSets(empty); | |
|
302 | // Try removing empty list of sets (should return false, since no barsets were removed) | |
|
303 | bool ret = false; | |
|
304 | QList<QBarSet*> invalidList; | |
|
305 | ret = m_barseries_with_sets->removeBarSets(invalidList); | |
|
306 | QVERIFY(ret == false); | |
|
307 | QVERIFY(m_barseries_with_sets->barsetCount() == count); | |
|
308 | ||
|
309 | // Add some null pointers to list | |
|
310 | invalidList.append(0); | |
|
311 | invalidList.append(0); | |
|
312 | invalidList.append(0); | |
|
313 | ||
|
314 | // Try removing null pointers from list (should return false, should not crash, should not remove anything) | |
|
315 | ret = m_barseries_with_sets->removeBarSets(invalidList); | |
|
316 | QVERIFY(ret == false); | |
|
242 | 317 | QVERIFY(m_barseries_with_sets->barsetCount() == count); |
|
243 | 318 | |
|
244 | // remove all sets | |
|
245 | m_barseries_with_sets->removeBarSets(m_testSets); | |
|
319 | // remove all sets (should return true, since sets were removed) | |
|
320 | ret = m_barseries_with_sets->removeBarSets(m_testSets); | |
|
321 | QVERIFY(ret == true); | |
|
246 | 322 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
247 | 323 | |
|
248 | // Try removing empty list again | |
|
249 |
m_barseries_with_sets->removeBarSets( |
|
|
324 | // Try removing invalid list again (should return false, since no barsets were removed) | |
|
325 | ret = m_barseries_with_sets->removeBarSets(invalidList); | |
|
326 | QVERIFY(ret == false); | |
|
250 | 327 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
251 | 328 | |
|
252 | // remove all sets again | |
|
253 | m_barseries_with_sets->removeBarSets(m_testSets); | |
|
329 | // remove all sets again (should return false, since barsets were already removed) | |
|
330 | ret = m_barseries_with_sets->removeBarSets(m_testSets); | |
|
331 | QVERIFY(ret == false); | |
|
254 | 332 | QVERIFY(m_barseries_with_sets->barsetCount() == 0); |
|
255 | 333 | } |
|
256 | 334 |
General Comments 0
You need to be logged in to leave comments.
Login now