summaryrefslogtreecommitdiffstats
path: root/tests/auto/qpieseries/tst_qpieseries.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qpieseries/tst_qpieseries.cpp')
-rw-r--r--tests/auto/qpieseries/tst_qpieseries.cpp136
1 files changed, 136 insertions, 0 deletions
diff --git a/tests/auto/qpieseries/tst_qpieseries.cpp b/tests/auto/qpieseries/tst_qpieseries.cpp
index ce7e8d54..9d975c5a 100644
--- a/tests/auto/qpieseries/tst_qpieseries.cpp
+++ b/tests/auto/qpieseries/tst_qpieseries.cpp
@@ -57,6 +57,9 @@ private slots:
void hoverSignal();
void sliceSeries();
void destruction();
+ void pressedSignal();
+ void releasedSignal();
+ void doubleClickedSignal();
private:
void verifyCalculatedData(const QPieSeries &series, bool *ok);
@@ -652,6 +655,139 @@ QList<QPoint> tst_qpieseries::slicePoints(QRectF rect)
return points;
}
+void tst_qpieseries::pressedSignal()
+{
+ // NOTE:
+ // This test is the same as tst_qpieslice::pressedSignal()
+ // Just for different signals.
+
+ SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
+
+ // add some slices
+ QPieSlice *s1 = m_series->append("slice 1", 1);
+ QPieSlice *s2 = m_series->append("slice 2", 1);
+ QPieSlice *s3 = m_series->append("slice 3", 1);
+ QPieSlice *s4 = m_series->append("slice 4", 1);
+ QSignalSpy clickSpy(m_series, SIGNAL(pressed(QPieSlice*)));
+
+ // add series to the chart
+ m_view->chart()->legend()->setVisible(false);
+ m_view->chart()->addSeries(m_series);
+ m_view->show();
+ QTest::qWaitForWindowShown(m_view);
+
+ // test maximum size
+ m_series->setPieSize(1.0);
+ QRectF pieRect = m_view->chart()->plotArea();
+ QList<QPoint> points = slicePoints(pieRect);
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(0));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(1));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(2));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(3));
+ TRY_COMPARE(clickSpy.count(), 4);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(0).at(0)), s1);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(1).at(0)), s2);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(2).at(0)), s3);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(3).at(0)), s4);
+ clickSpy.clear();
+
+ // test half size
+ m_series->setPieSize(0.5);
+ m_series->setVerticalPosition(0.25);
+ m_series->setHorizontalPosition(0.25);
+ pieRect = QRectF(m_view->chart()->plotArea().topLeft(), m_view->chart()->plotArea().center());
+ points = slicePoints(pieRect);
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(0));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(1));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(2));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(3));
+ TRY_COMPARE(clickSpy.count(), 4);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(0).at(0)), s1);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(1).at(0)), s2);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(2).at(0)), s3);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(3).at(0)), s4);
+}
+
+void tst_qpieseries::releasedSignal()
+{
+ // NOTE:
+ // This test is the same as tst_qpieslice::pressedSignal()
+ // Just for different signals.
+
+ SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
+
+ // add some slices
+ QPieSlice *s1 = m_series->append("slice 1", 1);
+ QPieSlice *s2 = m_series->append("slice 2", 1);
+ QPieSlice *s3 = m_series->append("slice 3", 1);
+ QPieSlice *s4 = m_series->append("slice 4", 1);
+ QSignalSpy clickSpy(m_series, SIGNAL(released(QPieSlice*)));
+
+ // add series to the chart
+ m_view->chart()->legend()->setVisible(false);
+ m_view->chart()->addSeries(m_series);
+ m_view->show();
+ QTest::qWaitForWindowShown(m_view);
+
+ // test maximum size
+ m_series->setPieSize(1.0);
+ QRectF pieRect = m_view->chart()->plotArea();
+ QList<QPoint> points = slicePoints(pieRect);
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(0));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(1));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(2));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(3));
+ TRY_COMPARE(clickSpy.count(), 4);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(0).at(0)), s1);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(1).at(0)), s2);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(2).at(0)), s3);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(3).at(0)), s4);
+ clickSpy.clear();
+
+ // test half size
+ m_series->setPieSize(0.5);
+ m_series->setVerticalPosition(0.25);
+ m_series->setHorizontalPosition(0.25);
+ pieRect = QRectF(m_view->chart()->plotArea().topLeft(), m_view->chart()->plotArea().center());
+ points = slicePoints(pieRect);
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(0));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(1));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(2));
+ QTest::mouseClick(m_view->viewport(), Qt::LeftButton, 0, points.at(3));
+ TRY_COMPARE(clickSpy.count(), 4);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(0).at(0)), s1);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(1).at(0)), s2);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(2).at(0)), s3);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(3).at(0)), s4);
+}
+
+void tst_qpieseries::doubleClickedSignal()
+{
+ // NOTE:
+ // This test is the same as tst_qpieslice::pressedSignal()
+ // Just for different signals.
+
+ SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
+
+ // add some slices
+ QPieSlice *s1 = m_series->append("slice 1", 1);
+ QSignalSpy clickSpy(m_series, SIGNAL(doubleClicked(QPieSlice*)));
+
+ // add series to the chart
+ m_view->chart()->legend()->setVisible(false);
+ m_view->chart()->addSeries(m_series);
+ m_view->show();
+ QTest::qWaitForWindowShown(m_view);
+
+ // test maximum size
+ m_series->setPieSize(1.0);
+ QRectF pieRect = m_view->chart()->plotArea();
+ QList<QPoint> points = slicePoints(pieRect);
+ QTest::mouseDClick(m_view->viewport(), Qt::LeftButton, 0, points.at(0));
+ TRY_COMPARE(clickSpy.count(), 1);
+ QCOMPARE(qvariant_cast<QPieSlice*>(clickSpy.at(0).at(0)), s1);
+}
+
QTEST_MAIN(tst_qpieseries)
#include "tst_qpieseries.moc"