summaryrefslogtreecommitdiffstats
path: root/tests/auto/qsplineseries/tst_qsplineseries.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qsplineseries/tst_qsplineseries.cpp')
-rw-r--r--tests/auto/qsplineseries/tst_qsplineseries.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/tests/auto/qsplineseries/tst_qsplineseries.cpp b/tests/auto/qsplineseries/tst_qsplineseries.cpp
index b72ac81d..8041d28b 100644
--- a/tests/auto/qsplineseries/tst_qsplineseries.cpp
+++ b/tests/auto/qsplineseries/tst_qsplineseries.cpp
@@ -35,6 +35,9 @@ public slots:
private slots:
void qsplineseries_data();
void qsplineseries();
+ void pressedSignal();
+ void releasedSignal();
+ void doubleClickedSignal();
protected:
void pointsVisible_data();
};
@@ -95,6 +98,98 @@ void tst_QSplineSeries::qsplineseries()
QTest::qWaitForWindowShown(m_view);
}
+void tst_QSplineSeries::pressedSignal()
+{
+ SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
+
+ QPointF splinePoint(4, 12);
+ QSplineSeries *splineSeries = new QSplineSeries();
+ splineSeries->append(QPointF(2, 1));
+ splineSeries->append(splinePoint);
+ splineSeries->append(QPointF(6, 12));
+
+ QChartView view;
+ view.chart()->legend()->setVisible(false);
+ view.chart()->addSeries(splineSeries);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QSignalSpy seriesSpy(splineSeries, SIGNAL(pressed(QPointF)));
+
+ QPointF checkPoint = view.chart()->mapToPosition(splinePoint);
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, checkPoint.toPoint());
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+ QCOMPARE(seriesSpy.count(), 1);
+ QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
+ // checkPoint is QPointF and for the mouseClick it it's changed to QPoint
+ // this causes small distinction in decimals so we round it before comparing
+ QPointF signalPoint = qvariant_cast<QPointF>(seriesSpyArg.at(0));
+ QCOMPARE(qRound(signalPoint.x()), qRound(splinePoint.x()));
+ QCOMPARE(qRound(signalPoint.y()), qRound(splinePoint.y()));
+}
+
+void tst_QSplineSeries::releasedSignal()
+{
+ SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
+
+ QPointF splinePoint(4, 12);
+ QSplineSeries *splineSeries = new QSplineSeries();
+ splineSeries->append(QPointF(2, 20));
+ splineSeries->append(splinePoint);
+ splineSeries->append(QPointF(6, 12));
+
+ QChartView view;
+ view.chart()->legend()->setVisible(false);
+ view.chart()->addSeries(splineSeries);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QSignalSpy seriesSpy(splineSeries, SIGNAL(released(QPointF)));
+
+ QPointF checkPoint = view.chart()->mapToPosition(splinePoint);
+ QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, checkPoint.toPoint());
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+ QCOMPARE(seriesSpy.count(), 1);
+ QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
+ // checkPoint is QPointF and for the mouseClick it it's changed to QPoint
+ // this causes small distinction in decimals so we round it before comparing
+ QPointF signalPoint = qvariant_cast<QPointF>(seriesSpyArg.at(0));
+ QCOMPARE(qRound(signalPoint.x()), qRound(splinePoint.x()));
+ QCOMPARE(qRound(signalPoint.y()), qRound(splinePoint.y()));
+}
+
+void tst_QSplineSeries::doubleClickedSignal()
+{
+ SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
+
+ QPointF splinePoint(4, 12);
+ QSplineSeries *splineSeries = new QSplineSeries();
+ splineSeries->append(QPointF(2, 20));
+ splineSeries->append(splinePoint);
+ splineSeries->append(QPointF(6, 12));
+
+ QChartView view;
+ view.chart()->legend()->setVisible(false);
+ view.chart()->addSeries(splineSeries);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ QSignalSpy seriesSpy(splineSeries, SIGNAL(doubleClicked(QPointF)));
+
+ QPointF checkPoint = view.chart()->mapToPosition(splinePoint);
+ QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, checkPoint.toPoint());
+ QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
+
+ QCOMPARE(seriesSpy.count(), 1);
+ QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
+ // checkPoint is QPointF and for the mouseClick it it's changed to QPoint
+ // this causes small distinction in decimals so we round it before comparing
+ QPointF signalPoint = qvariant_cast<QPointF>(seriesSpyArg.at(0));
+ QCOMPARE(qRound(signalPoint.x()), qRound(splinePoint.x()));
+ QCOMPARE(qRound(signalPoint.y()), qRound(splinePoint.y()));
+}
QTEST_MAIN(tst_QSplineSeries)
#include "tst_qsplineseries.moc"