summaryrefslogtreecommitdiffstats
path: root/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp
diff options
context:
space:
mode:
authorTitta Heikkala <titta.heikkala@digia.com>2013-08-19 09:22:45 +0300
committerTitta Heikkala <titta.heikkala@digia.com>2013-08-19 10:58:59 +0300
commit1aa9b23ddd5da2633164b973b037e8c71a2c515f (patch)
tree33e29d43983689566562d44a3b49783bf667f9c3 /tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp
parentd8e784e0dd829c1e5b9c95a6afd8545ca050f1d2 (diff)
Add hovered signal with index for bar charts
Added hovered signal for bar charts including the hovered bar inside the set. The hovered bar is identified by the index. Documentation and tests are updated accordingly. Task-number: QTRD-2161 Change-Id: I96c9d86975441274a697dec794b22e906fb44243 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp')
-rw-r--r--tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp261
1 files changed, 261 insertions, 0 deletions
diff --git a/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp b/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp
index 384cc3bf..17223458 100644
--- a/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp
+++ b/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp
@@ -253,6 +253,9 @@ void tst_QStackedBarSeries::mousehovered()
QList<QBarSet*> barSets = series->barSets();
QSignalSpy seriesSpy(series,SIGNAL(hovered(bool,QBarSet*)));
+ QSignalSpy seriesIndexSpy(series, SIGNAL(hovered(bool, int, QBarSet*)));
+ QSignalSpy setIndexSpy1(set1, SIGNAL(hovered(bool, int)));
+ QSignalSpy setIndexSpy2(set2, SIGNAL(hovered(bool, int)));
QChartView view(new QChart());
view.resize(400,300);
@@ -305,21 +308,37 @@ void tst_QStackedBarSeries::mousehovered()
QTest::mouseMove(view.viewport(), QPoint(0, layout.at(0).center().y()));
QCoreApplication::processEvents(QEventLoop::AllEvents, 10000);
TRY_COMPARE(seriesSpy.count(), 0);
+ TRY_COMPARE(seriesIndexSpy.count(), 0);
//=======================================================================
// move mouse on top of set1
QTest::mouseMove(view.viewport(), layout.at(0).center().toPoint());
TRY_COMPARE(seriesSpy.count(), 1);
+ TRY_COMPARE(seriesIndexSpy.count(), 1);
+ TRY_COMPARE(setIndexSpy1.count(), 1);
+ TRY_COMPARE(setIndexSpy2.count(), 0);
QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
QVERIFY(seriesSpyArg.at(0).toBool() == true);
+ QList<QVariant> seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == true);
+
+ QList<QVariant> setIndexSpyArg = setIndexSpy1.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == true);
+
//=======================================================================
// move mouse from top of set1 to top of set2
QTest::mouseMove(view.viewport(), layout.at(1).center().toPoint());
TRY_COMPARE(seriesSpy.count(), 2);
+ TRY_COMPARE(seriesIndexSpy.count(), 2);
+ TRY_COMPARE(setIndexSpy1.count(), 1);
+ TRY_COMPARE(setIndexSpy2.count(), 1);
// should leave set1
seriesSpyArg = seriesSpy.takeFirst();
@@ -327,22 +346,264 @@ void tst_QStackedBarSeries::mousehovered()
QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
QVERIFY(seriesSpyArg.at(0).toBool() == false);
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == false);
+
+ setIndexSpyArg = setIndexSpy1.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == false);
+
// should enter set2
seriesSpyArg = seriesSpy.takeFirst();
QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
QVERIFY(seriesSpyArg.at(0).toBool() == true);
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == true);
+
+ setIndexSpyArg = setIndexSpy2.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == true);
+
//=======================================================================
// move mouse from top of set2 to background
QTest::mouseMove(view.viewport(), QPoint(layout.at(1).center().x(), 0));
TRY_COMPARE(seriesSpy.count(), 1);
+ TRY_COMPARE(seriesIndexSpy.count(), 1);
+ TRY_COMPARE(setIndexSpy1.count(), 0);
+ TRY_COMPARE(setIndexSpy2.count(), 1);
// should leave set2
seriesSpyArg = seriesSpy.takeFirst();
QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
QVERIFY(seriesSpyArg.at(0).toBool() == false);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == false);
+
+ setIndexSpyArg = setIndexSpy2.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == false);
+
+//=======================================================================
+// move mouse on top of set1, bar0 to check the index (hover into set1)
+ QTest::mouseMove(view.viewport(), layout.at(0).center().toPoint());
+
+ TRY_COMPARE(seriesSpy.count(), 1);
+ TRY_COMPARE(seriesIndexSpy.count(), 1);
+ TRY_COMPARE(setIndexSpy1.count(), 1);
+ TRY_COMPARE(setIndexSpy2.count(), 0);
+
+ //should enter set1, bar0
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == true);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0);
+
+ setIndexSpyArg = setIndexSpy1.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 0);
+
+//=======================================================================
+// move mouse on top of set2, bar0 to check the index (hover out set1,
+// hover in set2)
+ QTest::mouseMove(view.viewport(), layout.at(1).center().toPoint());
+
+ TRY_COMPARE(seriesSpy.count(), 2);
+ TRY_COMPARE(seriesIndexSpy.count(), 2);
+ TRY_COMPARE(setIndexSpy1.count(), 1);
+ TRY_COMPARE(setIndexSpy2.count(), 1);
+
+ //should leave set1, bar0
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == false);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0);
+
+ setIndexSpyArg = setIndexSpy1.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 0);
+
+ //should enter set2, bar0
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == true);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0);
+
+ setIndexSpyArg = setIndexSpy2.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 0);
+
+//=======================================================================
+// move mouse on top of set1, bar1 to check the index (hover out set2,
+// hover in set1)
+ QTest::mouseMove(view.viewport(), layout.at(2).center().toPoint());
+
+ TRY_COMPARE(seriesSpy.count(), 2);
+ TRY_COMPARE(seriesIndexSpy.count(), 2);
+ TRY_COMPARE(setIndexSpy1.count(), 1);
+ TRY_COMPARE(setIndexSpy2.count(), 1);
+
+ //should leave set2, bar0
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == false);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0);
+
+ setIndexSpyArg = setIndexSpy2.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 0);
+
+ //should enter set1, bar1
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == true);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1);
+
+ setIndexSpyArg = setIndexSpy1.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 1);
+
+//=======================================================================
+// move mouse between set1 and set2 (hover out set1)
+ QTest::mouseMove(view.viewport(), QPoint((layout.at(3).right() + layout.at(4).left()) /2,
+ layout.at(2).top()));
+
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+ TRY_COMPARE(seriesSpy.count(), 1);
+ TRY_COMPARE(seriesIndexSpy.count(), 1);
+ TRY_COMPARE(setIndexSpy1.count(), 1);
+ TRY_COMPARE(setIndexSpy2.count(), 0);
+
+ //should leave set1, bar1
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == false);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1);
+
+ setIndexSpyArg = setIndexSpy1.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 1);
+
+//=======================================================================
+// move mouse on top of set2, bar1 to check the index (hover in set2)
+ QTest::mouseMove(view.viewport(), layout.at(3).center().toPoint());
+
+ TRY_COMPARE(seriesSpy.count(), 1);
+ TRY_COMPARE(seriesIndexSpy.count(), 1);
+ TRY_COMPARE(setIndexSpy1.count(), 0);
+ TRY_COMPARE(setIndexSpy2.count(), 1);
+
+ //should enter set2, bar1
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == true);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1);
+
+ setIndexSpyArg = setIndexSpy2.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == true);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 1);
+
+//=======================================================================
+// move mouse between set1 and set2 (hover out set2)
+ QTest::mouseMove(view.viewport(), QPoint((layout.at(3).right() + layout.at(4).left()) /2,
+ layout.at(2).top()));
+
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+ TRY_COMPARE(seriesSpy.count(), 1);
+ TRY_COMPARE(seriesIndexSpy.count(), 1);
+ TRY_COMPARE(setIndexSpy1.count(), 0);
+ TRY_COMPARE(setIndexSpy2.count(), 1);
+
+ //should leave set1, bar1
+ seriesSpyArg = seriesSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2);
+ QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesSpyArg.at(0).toBool() == false);
+
+ seriesIndexSpyArg = seriesIndexSpy.takeFirst();
+ QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2);
+ QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(seriesIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1);
+
+ setIndexSpyArg = setIndexSpy2.takeFirst();
+ QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool);
+ QVERIFY(setIndexSpyArg.at(0).toBool() == false);
+ QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int);
+ QVERIFY(setIndexSpyArg.at(1).toInt() == 1);
}
QTEST_MAIN(tst_QStackedBarSeries)