Add tst_QWidget::restoreGeometryFromInvalidArray()

Remove out randomly placed testing of invalid byte arrays in
tst_QWidget::saveRestoreGeometry().
Add a separate, data driven test.

Change-Id: I14928537b2dc2b16cbba4a06e39a39d065b8bc14
Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de>
This commit is contained in:
Axel Spoerl 2024-11-29 14:52:08 +01:00
parent bc80707387
commit 39678d3686

View File

@ -219,6 +219,8 @@ private slots:
void lower();
void stackUnder();
void testContentsPropagation();
void restoreGeometryFromInvalidArray_data();
void restoreGeometryFromInvalidArray();
void saveRestoreGeometry();
void restoreVersion1Geometry_data();
void restoreVersion1Geometry();
@ -4302,6 +4304,24 @@ void tst_QWidget::testContentsPropagation()
saveGeometry() and restoreGeometry() works.
*/
void tst_QWidget::restoreGeometryFromInvalidArray_data()
{
QTest::addColumn<QByteArray>("array");
QTest::addRow("empty") << QByteArray();
QTest::addRow("one") << QByteArray("a");
QTest::addRow("two") << QByteArray("ab");
QTest::addRow("three") << QByteArray("abc");
QTest::addRow("four") << QByteArray("abca");
QTest::addRow("many") << QByteArray("lksdfkj938ao18lkjo8wqdfmkfsdfjlkm");
}
void tst_QWidget::restoreGeometryFromInvalidArray()
{
QFETCH(const QByteArray, array);
QWidget widget;
QVERIFY(!widget.restoreGeometry(array));
}
void tst_QWidget::saveRestoreGeometry()
{
#ifdef Q_OS_MACOS
@ -4335,20 +4355,6 @@ void tst_QWidget::saveRestoreGeometry()
widget.setWindowFlags(Qt::X11BypassWindowManagerHint);
widget.setWindowTitle(QLatin1String(QTest::currentTestFunction()));
const QByteArray empty;
const QByteArray one("a");
const QByteArray two("ab");
const QByteArray three("abc");
const QByteArray four("abca");
const QByteArray garbage("abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc");
QVERIFY(!widget.restoreGeometry(empty));
QVERIFY(!widget.restoreGeometry(one));
QVERIFY(!widget.restoreGeometry(two));
QVERIFY(!widget.restoreGeometry(three));
QVERIFY(!widget.restoreGeometry(four));
QVERIFY(!widget.restoreGeometry(garbage));
QVERIFY(widget.restoreGeometry(savedGeometry));
widget.showNormal();
QVERIFY(QTest::qWaitForWindowExposed(&widget));