summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/util
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-04-07 01:00:12 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-04-08 20:11:39 +0200
commit8823bb8d306d78dd6a2e121a708dc607beff58c8 (patch)
tree5ca170aa36aa1381b0f31dae6709fd2ce68be344 /tests/auto/widgets/util
parent5422fb79486a1818d6355d75f019fe63120a43d0 (diff)
parent14c55e29794b4f1d6e010fdf7082ef55cbf8f275 (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: examples/opengl/doc/src/cube.qdoc src/corelib/global/qlibraryinfo.cpp src/corelib/text/qbytearray_p.h src/corelib/text/qlocale_data_p.h src/corelib/time/qhijricalendar_data_p.h src/corelib/time/qjalalicalendar_data_p.h src/corelib/time/qromancalendar_data_p.h src/network/ssl/qsslcertificate.h src/widgets/doc/src/graphicsview.qdoc src/widgets/widgets/qcombobox.cpp src/widgets/widgets/qcombobox.h tests/auto/corelib/tools/qscopeguard/tst_qscopeguard.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp tests/benchmarks/corelib/io/qdiriterator/qdiriterator.pro tests/manual/diaglib/debugproxystyle.cpp tests/manual/diaglib/qwidgetdump.cpp tests/manual/diaglib/qwindowdump.cpp tests/manual/diaglib/textdump.cpp util/locale_database/cldr2qlocalexml.py util/locale_database/qlocalexml.py util/locale_database/qlocalexml2cpp.py Resolution of util/locale_database/ are based on: https://codereview.qt-project.org/c/qt/qtbase/+/294250 and src/corelib/{text,time}/*_data_p.h were then regenerated by running those scripts. Updated CMakeLists.txt in each of tests/auto/corelib/serialization/qcborstreamreader/ tests/auto/corelib/serialization/qcborvalue/ tests/auto/gui/kernel/ and generated new ones in each of tests/auto/gui/kernel/qaddpostroutine/ tests/auto/gui/kernel/qhighdpiscaling/ tests/libfuzzer/corelib/text/qregularexpression/optimize/ tests/libfuzzer/gui/painting/qcolorspace/fromiccprofile/ tests/libfuzzer/gui/text/qtextdocument/sethtml/ tests/libfuzzer/gui/text/qtextdocument/setmarkdown/ tests/libfuzzer/gui/text/qtextlayout/beginlayout/ by running util/cmake/pro2cmake.py on their changed .pro files. Changed target name in tests/auto/gui/kernel/qaction/qaction.pro tests/auto/gui/kernel/qaction/qactiongroup.pro tests/auto/gui/kernel/qshortcut/qshortcut.pro to ensure unique target names for CMake Changed tst_QComboBox::currentIndex to not test the currentIndexChanged(QString), as that one does not exist in Qt 6 anymore. Change-Id: I9a85705484855ae1dc874a81f49d27a50b0dcff7
Diffstat (limited to 'tests/auto/widgets/util')
-rw-r--r--tests/auto/widgets/util/qscroller/tst_qscroller.cpp157
1 files changed, 82 insertions, 75 deletions
diff --git a/tests/auto/widgets/util/qscroller/tst_qscroller.cpp b/tests/auto/widgets/util/qscroller/tst_qscroller.cpp
index 8bdd4b4783..5e71c1888d 100644
--- a/tests/auto/widgets/util/qscroller/tst_qscroller.cpp
+++ b/tests/auto/widgets/util/qscroller/tst_qscroller.cpp
@@ -82,8 +82,8 @@ public:
currentPos = se->contentPos();
overshoot = se->overshootDistance();
- if (!qFuzzyCompare( overshoot.x() + 1.0, 1.0 ) ||
- !qFuzzyCompare( overshoot.y() + 1.0, 1.0 ))
+ if (!qFuzzyCompare(overshoot.x() + 1.0, 1.0) ||
+ !qFuzzyCompare(overshoot.y() + 1.0, 1.0))
receivedOvershoot = true;
return true;
}
@@ -116,8 +116,8 @@ public:
~tst_QScroller() { }
private:
- void kineticScroll( tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd);
- void kineticScrollNoTest( tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd);
+ void kineticScroll(tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd);
+ void kineticScrollNoTest(tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd);
private slots:
void staticScrollers();
@@ -135,13 +135,13 @@ private:
Generates touchBegin, touchUpdate and touchEnd events to trigger scrolling.
Tests some in between states but does not wait until scrolling is finished.
*/
-void tst_QScroller::kineticScroll( tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd)
+void tst_QScroller::kineticScroll(tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd)
{
sw->scrollPosition = from;
sw->currentPos= from;
QScroller *s1 = QScroller::scroller(sw);
- QCOMPARE( s1->state(), QScroller::Inactive );
+ QCOMPARE(s1->state(), QScroller::Inactive);
QScrollerProperties sp1 = QScroller::scroller(sw)->scrollerProperties();
@@ -161,7 +161,7 @@ void tst_QScroller::kineticScroll( tst_QScrollerWidget *sw, QPointF from, QPoint
(QList<QTouchEvent::TouchPoint>() << touchPoint));
QApplication::sendEvent(sw, &touchEvent1);
- QCOMPARE( s1->state(), QScroller::Pressed );
+ QCOMPARE(s1->state(), QScroller::Pressed);
// send the touch update far enough to trigger a scroll
QTest::qWait(200); // we need to wait a little or else the speed would be infinite. now we have around 500 pixel per second.
@@ -175,13 +175,13 @@ void tst_QScroller::kineticScroll( tst_QScrollerWidget *sw, QPointF from, QPoint
(QList<QTouchEvent::TouchPoint>() << touchPoint));
QApplication::sendEvent(sw, &touchEvent2);
- QCOMPARE( s1->state(), QScroller::Dragging );
- QCOMPARE( sw->receivedPrepare, true );
+ QCOMPARE(s1->state(), QScroller::Dragging);
+ QCOMPARE(sw->receivedPrepare, true);
- QTRY_COMPARE( sw->receivedFirst, true );
- QCOMPARE( sw->receivedScroll, true );
- QCOMPARE( sw->receivedOvershoot, false );
+ QTRY_COMPARE(sw->receivedFirst, true);
+ QCOMPARE(sw->receivedScroll, true);
+ QCOMPARE(sw->receivedOvershoot, false);
// note that the scrolling goes in a different direction than the mouse move
QPoint calculatedPos = from.toPoint() - touchUpdate - touchStart;
@@ -204,13 +204,13 @@ void tst_QScroller::kineticScroll( tst_QScrollerWidget *sw, QPointF from, QPoint
Generates touchBegin, touchUpdate and touchEnd events to trigger scrolling.
This function does not have any in between tests, it does not expect the scroller to actually scroll.
*/
-void tst_QScroller::kineticScrollNoTest( tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd)
+void tst_QScroller::kineticScrollNoTest(tst_QScrollerWidget *sw, QPointF from, QPoint touchStart, QPoint touchUpdate, QPoint touchEnd)
{
sw->scrollPosition = from;
sw->currentPos = from;
QScroller *s1 = QScroller::scroller(sw);
- QCOMPARE( s1->state(), QScroller::Inactive );
+ QCOMPARE(s1->state(), QScroller::Inactive);
QScrollerProperties sp1 = s1->scrollerProperties();
int fps = 60;
@@ -348,52 +348,57 @@ void tst_QScroller::scrollerProperties()
void tst_QScroller::scrollTo()
{
- {
- tst_QScrollerWidget *sw = new tst_QScrollerWidget();
- sw->scrollArea = QRectF( 0, 0, 1000, 1000 );
- sw->scrollPosition = QPointF( 500, 500 );
-
- QScroller *s1 = QScroller::scroller(sw);
- QCOMPARE( s1->state(), QScroller::Inactive );
-
- // a normal scroll
- s1->scrollTo(QPointF(100,100), 100);
- QTest::qWait(200);
-
- QCOMPARE( sw->receivedPrepare, true );
- QCOMPARE( sw->receivedScroll, true );
- QCOMPARE( sw->receivedFirst, true );
- QCOMPARE( sw->receivedLast, true );
- QCOMPARE( sw->receivedOvershoot, false );
- QVERIFY(qFuzzyCompare( sw->currentPos.x(), 100 ));
- QVERIFY(qFuzzyCompare( sw->currentPos.y(), 100 ));
-
- delete sw;
- }
+ QScopedPointer<tst_QScrollerWidget> sw(new tst_QScrollerWidget);
+ sw->show();
+ QApplication::setActiveWindow(sw.data());
+ if (!QTest::qWaitForWindowExposed(sw.data()) || !QTest::qWaitForWindowActive(sw.data()))
+ QSKIP("Failed to show and activate window");
+
+ sw->scrollArea = QRectF(0, 0, 1000, 1000);
+ sw->scrollPosition = QPointF(500, 500);
+
+ QScroller *s1 = QScroller::scroller(sw.data());
+ QCOMPARE(s1->state(), QScroller::Inactive);
+
+ // a normal scroll
+ s1->scrollTo(QPointF(100,100), 100);
+ QTest::qWait(200);
+
+ QTRY_COMPARE(sw->receivedPrepare, true);
+ QCOMPARE(sw->receivedScroll, true);
+ QCOMPARE(sw->receivedFirst, true);
+ QCOMPARE(sw->receivedLast, true);
+ QCOMPARE(sw->receivedOvershoot, false);
+ QTRY_VERIFY(qFuzzyCompare(sw->currentPos.x(), 100));
+ QVERIFY(qFuzzyCompare(sw->currentPos.y(), 100));
}
void tst_QScroller::scroll()
{
#if QT_CONFIG(gestures) && QT_CONFIG(scroller)
// -- good case. normal scroll
- tst_QScrollerWidget *sw = new tst_QScrollerWidget();
+ QScopedPointer<tst_QScrollerWidget> sw(new tst_QScrollerWidget());
sw->scrollArea = QRectF(0, 0, 1000, 1000);
- QScroller::grabGesture(sw, QScroller::TouchGesture);
+ QScroller::grabGesture(sw.data(), QScroller::TouchGesture);
sw->setGeometry(100, 100, 400, 300);
+ sw->show();
+ QApplication::setActiveWindow(sw.data());
+ if (!QTest::qWaitForWindowExposed(sw.data()) || !QTest::qWaitForWindowActive(sw.data()))
+ QSKIP("Failed to show and activate window");
- QScroller *s1 = QScroller::scroller(sw);
- kineticScroll(sw, QPointF(500, 500), QPoint(0, 0), QPoint(100, 100), QPoint(200, 200));
+ QScroller *s1 = QScroller::scroller(sw.data());
+ kineticScroll(sw.data(), QPointF(500, 500), QPoint(0, 0), QPoint(100, 100), QPoint(200, 200));
// now we should be scrolling
- QTRY_COMPARE( s1->state(), QScroller::Scrolling );
+ QTRY_COMPARE(s1->state(), QScroller::Scrolling);
// wait until finished, check that no further first scroll is sent
sw->receivedFirst = false;
sw->receivedScroll = false;
QTRY_VERIFY(s1->state() != QScroller::Scrolling);
- QCOMPARE( sw->receivedFirst, false );
- QCOMPARE( sw->receivedScroll, true );
- QCOMPARE( sw->receivedLast, true );
+ QCOMPARE(sw->receivedFirst, false);
+ QCOMPARE(sw->receivedScroll, true);
+ QCOMPARE(sw->receivedLast, true);
QVERIFY(sw->currentPos.x() < 400);
QVERIFY(sw->currentPos.y() < 400);
@@ -401,26 +406,28 @@ void tst_QScroller::scroll()
sw->reset();
sw->scrollArea = QRectF(0, 0, 0, 1000);
- kineticScrollNoTest(sw, QPointF(0, 500), QPoint(0, 0), QPoint(100, 0), QPoint(200, 0));
+ kineticScrollNoTest(sw.data(), QPointF(0, 500), QPoint(0, 0), QPoint(100, 0), QPoint(200, 0));
QTRY_COMPARE(s1->state(), QScroller::Inactive);
QCOMPARE(sw->currentPos.x(), 0.0);
QCOMPARE(sw->currentPos.y(), 500.0);
-
- delete sw;
#endif
}
void tst_QScroller::overshoot()
{
#if QT_CONFIG(gestures) && QT_CONFIG(scroller)
- tst_QScrollerWidget *sw = new tst_QScrollerWidget();
+ QScopedPointer<tst_QScrollerWidget> sw(new tst_QScrollerWidget);
sw->scrollArea = QRectF(0, 0, 1000, 1000);
- QScroller::grabGesture(sw, QScroller::TouchGesture);
+ QScroller::grabGesture(sw.data(), QScroller::TouchGesture);
sw->setGeometry(100, 100, 400, 300);
+ sw->show();
+ QApplication::setActiveWindow(sw.data());
+ if (!QTest::qWaitForWindowExposed(sw.data()) || !QTest::qWaitForWindowActive(sw.data()))
+ QSKIP("Failed to show and activate window");
- QScroller *s1 = QScroller::scroller(sw);
+ QScroller *s1 = QScroller::scroller(sw.data());
QScrollerProperties sp1 = s1->scrollerProperties();
sp1.setScrollMetric(QScrollerProperties::OvershootDragResistanceFactor, 0.5);
@@ -431,14 +438,14 @@ void tst_QScroller::overshoot()
sp1.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue(QScrollerProperties::OvershootWhenScrollable));
s1->setScrollerProperties(sp1);
- kineticScrollNoTest(sw, QPointF(500, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
+ kineticScrollNoTest(sw.data(), QPointF(500, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
QTRY_COMPARE(s1->state(), QScroller::Inactive);
//qDebug() << "Overshoot fuzzy: "<<sw->currentPos;
- QVERIFY(qFuzzyCompare( sw->currentPos.x(), 0 ));
- QVERIFY(qFuzzyCompare( sw->currentPos.y(), 500 ));
- QCOMPARE( sw->receivedOvershoot, true );
+ QVERIFY(qFuzzyCompare(sw->currentPos.x(), 0));
+ QVERIFY(qFuzzyCompare(sw->currentPos.y(), 500));
+ QCOMPARE(sw->receivedOvershoot, true);
// -- try to scroll with overshoot (when scrollable bad case)
sw->reset();
@@ -446,14 +453,14 @@ void tst_QScroller::overshoot()
sp1.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue(QScrollerProperties::OvershootWhenScrollable));
s1->setScrollerProperties(sp1);
- kineticScrollNoTest(sw, QPointF(0, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
+ kineticScrollNoTest(sw.data(), QPointF(0, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
QTRY_COMPARE(s1->state(), QScroller::Inactive);
//qDebug() << "Overshoot fuzzy: "<<sw->currentPos;
- QVERIFY(qFuzzyCompare( sw->currentPos.x(), 0 ));
- QVERIFY(qFuzzyCompare( sw->currentPos.y(), 500 ));
- QCOMPARE( sw->receivedOvershoot, false );
+ QVERIFY(qFuzzyCompare(sw->currentPos.x(), 0));
+ QVERIFY(qFuzzyCompare(sw->currentPos.y(), 500));
+ QCOMPARE(sw->receivedOvershoot, false);
// -- try to scroll with overshoot (always on)
sw->reset();
@@ -461,15 +468,15 @@ void tst_QScroller::overshoot()
sp1.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue(QScrollerProperties::OvershootAlwaysOn));
s1->setScrollerProperties(sp1);
- kineticScrollNoTest(sw, QPointF(0, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
+ kineticScrollNoTest(sw.data(), QPointF(0, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
QTRY_COMPARE(s1->state(), QScroller::Inactive);
//qDebug() << "Overshoot fuzzy: "<<sw->currentPos;
- QVERIFY(qFuzzyCompare( sw->currentPos.x(), 0 ));
- QVERIFY(qFuzzyCompare( sw->currentPos.y(), 500 ));
- QCOMPARE( sw->receivedOvershoot, true );
+ QVERIFY(qFuzzyCompare(sw->currentPos.x(), 0));
+ QVERIFY(qFuzzyCompare(sw->currentPos.y(), 500));
+ QCOMPARE(sw->receivedOvershoot, true);
// -- try to scroll with overshoot (always off)
sw->reset();
@@ -477,13 +484,13 @@ void tst_QScroller::overshoot()
sp1.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue(QScrollerProperties::OvershootAlwaysOff));
s1->setScrollerProperties(sp1);
- kineticScrollNoTest(sw, QPointF(500, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
+ kineticScrollNoTest(sw.data(), QPointF(500, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
QTRY_COMPARE(s1->state(), QScroller::Inactive);
- QVERIFY(qFuzzyCompare( sw->currentPos.x(), 0 ));
- QVERIFY(qFuzzyCompare( sw->currentPos.y(), 500 ));
- QCOMPARE( sw->receivedOvershoot, false );
+ QVERIFY(qFuzzyCompare(sw->currentPos.x(), 0));
+ QVERIFY(qFuzzyCompare(sw->currentPos.y(), 500));
+ QCOMPARE(sw->receivedOvershoot, false);
// -- try to scroll with overshoot (always on but max overshoot = 0)
sp1.setScrollMetric(QScrollerProperties::OvershootDragDistanceFactor, 0.0);
@@ -493,39 +500,39 @@ void tst_QScroller::overshoot()
sp1.setScrollMetric(QScrollerProperties::HorizontalOvershootPolicy, QVariant::fromValue(QScrollerProperties::OvershootAlwaysOn));
s1->setScrollerProperties(sp1);
- kineticScrollNoTest(sw, QPointF(500, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
+ kineticScrollNoTest(sw.data(), QPointF(500, 500), QPoint(0, 0), QPoint(400, 0), QPoint(490, 0));
QTRY_COMPARE(s1->state(), QScroller::Inactive);
- QVERIFY(qFuzzyCompare( sw->currentPos.x(), 0 ));
- QVERIFY(qFuzzyCompare( sw->currentPos.y(), 500 ));
- QCOMPARE( sw->receivedOvershoot, false );
-
- delete sw;
+ QVERIFY(qFuzzyCompare(sw->currentPos.x(), 0));
+ QVERIFY(qFuzzyCompare(sw->currentPos.y(), 500));
+ QCOMPARE(sw->receivedOvershoot, false);
#endif
}
void tst_QScroller::multipleWindows()
{
#if QT_CONFIG(gestures) && QT_CONFIG(scroller)
- QScopedPointer<tst_QScrollerWidget> sw1(new tst_QScrollerWidget());
+ QScopedPointer<tst_QScrollerWidget> sw1(new tst_QScrollerWidget);
sw1->scrollArea = QRectF(0, 0, 1000, 1000);
QScroller::grabGesture(sw1.data(), QScroller::TouchGesture);
sw1->setGeometry(100, 100, 400, 300);
+
QScroller *s1 = QScroller::scroller(sw1.data());
kineticScroll(sw1.data(), QPointF(500, 500), QPoint(0, 0), QPoint(100, 100), QPoint(200, 200));
// now we should be scrolling
- QTRY_COMPARE( s1->state(), QScroller::Scrolling );
+ QTRY_COMPARE(s1->state(), QScroller::Scrolling);
// That was fun! Do it again!
QScopedPointer<tst_QScrollerWidget> sw2(new tst_QScrollerWidget());
sw2->scrollArea = QRectF(0, 0, 1000, 1000);
QScroller::grabGesture(sw2.data(), QScroller::TouchGesture);
sw2->setGeometry(100, 100, 400, 300);
+
QScroller *s2 = QScroller::scroller(sw2.data());
kineticScroll(sw2.data(), QPointF(500, 500), QPoint(0, 0), QPoint(100, 100), QPoint(200, 200));
// now we should be scrolling
- QTRY_COMPARE( s2->state(), QScroller::Scrolling );
+ QTRY_COMPARE(s2->state(), QScroller::Scrolling);
// wait for both to stop
QTRY_VERIFY(s1->state() != QScroller::Scrolling);