diff options
Diffstat (limited to 'tests/auto/widgets')
7 files changed, 128 insertions, 10 deletions
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro b/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro index e77364c3f0..d180054ca8 100644 --- a/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro +++ b/tests/auto/widgets/dialogs/qfilesystemmodel/qfilesystemmodel.pro @@ -1,11 +1,10 @@ CONFIG += testcase -# This testcase can be slow on Windows and may interfere with other file system tests. +# This testcase can be slow on Windows and OS X, and may interfere with other file system tests. win32:testcase.timeout = 900 +macx:testcase.timeout = 900 QT += widgets widgets-private QT += core-private gui testlib SOURCES += tst_qfilesystemmodel.cpp TARGET = tst_qfilesystemmodel - -mac:CONFIG+=insignificant_test # QTBUG-27890 diff --git a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp index 3e24257736..9353aa0eba 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp @@ -471,6 +471,7 @@ private slots: void QTBUG_16374_crashInDestructor(); void QTBUG_20699_focusScopeCrash(); void QTBUG_30990_rightClickSelection(); + void QTBUG_21618_untransformable_sceneTransform(); private: QList<QGraphicsItem *> paintedItems; @@ -11496,5 +11497,65 @@ void tst_QGraphicsItem::QTBUG_30990_rightClickSelection() QVERIFY(!item2->isSelected()); } +void tst_QGraphicsItem::QTBUG_21618_untransformable_sceneTransform() +{ + QGraphicsScene scene(0, 0, 150, 150); + scene.addRect(-2, -2, 4, 4); + + QGraphicsItem *item1 = scene.addRect(0, 0, 100, 100, QPen(), Qt::red); + item1->setPos(50, 50); + item1->translate(50, 50); + item1->rotate(90); + QGraphicsItem *item2 = scene.addRect(0, 0, 100, 100, QPen(), Qt::green); + item2->setPos(50, 50); + item2->translate(50, 50); + item2->rotate(90); + item2->setFlags(QGraphicsItem::ItemIgnoresTransformations); + + QGraphicsRectItem *item1_topleft = new QGraphicsRectItem(QRectF(-2, -2, 4, 4)); + item1_topleft->setParentItem(item1); + item1_topleft->setBrush(Qt::black); + QGraphicsRectItem *item1_bottomright = new QGraphicsRectItem(QRectF(-2, -2, 4, 4)); + item1_bottomright->setParentItem(item1); + item1_bottomright->setPos(100, 100); + item1_bottomright->setBrush(Qt::yellow); + + QGraphicsRectItem *item2_topleft = new QGraphicsRectItem(QRectF(-2, -2, 4, 4)); + item2_topleft->setParentItem(item2); + item2_topleft->setBrush(Qt::black); + QGraphicsRectItem *item2_bottomright = new QGraphicsRectItem(QRectF(-2, -2, 4, 4)); + item2_bottomright->setParentItem(item2); + item2_bottomright->setPos(100, 100); + item2_bottomright->setBrush(Qt::yellow); + + QCOMPARE(item1->sceneTransform(), item2->sceneTransform()); + QCOMPARE(item1_topleft->sceneTransform(), item2_topleft->sceneTransform()); + QCOMPARE(item1_bottomright->sceneTransform(), item2_bottomright->sceneTransform()); + QCOMPARE(item1->deviceTransform(QTransform()), item2->deviceTransform(QTransform())); + QCOMPARE(item1->deviceTransform(QTransform()).map(QPointF()), QPointF(100, 100)); + QCOMPARE(item2->deviceTransform(QTransform()).map(QPointF()), QPointF(100, 100)); + QCOMPARE(item1->deviceTransform(QTransform()).map(QPointF(100, 100)), QPointF(0, 200)); + QCOMPARE(item2->deviceTransform(QTransform()).map(QPointF(100, 100)), QPointF(0, 200)); + QCOMPARE(item1_topleft->deviceTransform(QTransform()).map(QPointF()), QPointF(100, 100)); + QCOMPARE(item2_topleft->deviceTransform(QTransform()).map(QPointF()), QPointF(100, 100)); + QCOMPARE(item1_bottomright->deviceTransform(QTransform()).map(QPointF()), QPointF(0, 200)); + QCOMPARE(item2_bottomright->deviceTransform(QTransform()).map(QPointF()), QPointF(0, 200)); + + item2->setParentItem(item1); + + QCOMPARE(item2->deviceTransform(QTransform()).map(QPointF()), QPointF(100, 200)); + QCOMPARE(item2->deviceTransform(QTransform()).map(QPointF(100, 100)), QPointF(0, 300)); + QCOMPARE(item2_topleft->deviceTransform(QTransform()).map(QPointF()), QPointF(100, 200)); + QCOMPARE(item2_bottomright->deviceTransform(QTransform()).map(QPointF()), QPointF(0, 300)); + + QTransform tx = QTransform::fromTranslate(100, 0); + QCOMPARE(item1->deviceTransform(tx).map(QPointF()), QPointF(200, 100)); + QCOMPARE(item1->deviceTransform(tx).map(QPointF(100, 100)), QPointF(100, 200)); + QCOMPARE(item2->deviceTransform(tx).map(QPointF()), QPointF(200, 200)); + QCOMPARE(item2->deviceTransform(tx).map(QPointF(100, 100)), QPointF(100, 300)); + QCOMPARE(item2_topleft->deviceTransform(tx).map(QPointF()), QPointF(200, 200)); + QCOMPARE(item2_bottomright->deviceTransform(tx).map(QPointF()), QPointF(100, 300)); +} + QTEST_MAIN(tst_QGraphicsItem) #include "tst_qgraphicsitem.moc" diff --git a/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp b/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp index 3fa3fbe0ee..c17e2523f9 100644 --- a/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp +++ b/tests/auto/widgets/itemviews/qcolumnview/tst_qcolumnview.cpp @@ -440,6 +440,10 @@ void tst_QColumnView::scrollTo() if (level >= 2) { if (!reverse) { QTRY_VERIFY(view.HorizontalOffset() < 0); + if (last <= view.HorizontalOffset()) { + qDebug() << "Test failure. last=" << last + << " ; HorizontalOffset= " << view.HorizontalOffset(); + } QTRY_VERIFY(last > view.HorizontalOffset()); } else { QTRY_VERIFY(view.HorizontalOffset() > 0); @@ -457,10 +461,15 @@ void tst_QColumnView::scrollTo() view.scrollTo(index, QAbstractItemView::EnsureVisible); index = index.parent(); if (start != level) { - if (!reverse) + if (!reverse) { QTRY_VERIFY(last < view.HorizontalOffset()); - else + } else { + if (last <= view.HorizontalOffset()) { + qDebug() << "Test failure. last=" << last + << " ; HorizontalOffset= " << view.HorizontalOffset(); + } QTRY_VERIFY(last > view.HorizontalOffset()); + } } level--; last = view.HorizontalOffset(); diff --git a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp index d7050033f3..3a6fca7146 100644 --- a/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/widgets/util/qcompleter/tst_qcompleter.cpp @@ -608,7 +608,7 @@ void tst_QCompleter::directoryModel_data() #elif defined (Q_OS_MAC) QTest::newRow("()") << "" << "" << "/" << "/"; QTest::newRow("(/a)") << "/a" << "" << "Applications" << "/Applications"; - QTest::newRow("(/d)") << "/d" << "" << "Developer" << "/Developer"; + QTest::newRow("(/u)") << "/u" << "" << "Users" << "/Users"; #else QTest::newRow("()") << "" << "" << "/" << "/"; #if !defined(Q_OS_IRIX) && !defined(Q_OS_AIX) && !defined(Q_OS_HPUX) @@ -1305,10 +1305,15 @@ void tst_QCompleter::task246056_setCompletionPrefix() comboBox.show(); QApplication::setActiveWindow(&comboBox); QVERIFY(QTest::qWaitForWindowActive(&comboBox)); + QSignalSpy spy(comboBox.completer(), SIGNAL(activated(QModelIndex))); QTest::keyPress(&comboBox, 'a'); QTest::keyPress(comboBox.completer()->popup(), Qt::Key_Down); QTest::keyPress(comboBox.completer()->popup(), Qt::Key_Down); QTest::keyPress(comboBox.completer()->popup(), Qt::Key_Enter); // don't crash! + QCOMPARE(spy.count(), 1); + QList<QVariant> arguments = spy.at(0); + QModelIndex index = arguments.at(0).value<QModelIndex>(); + QVERIFY(!index.isValid()); } class task250064_TextEdit : public QTextEdit diff --git a/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp b/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp index ddab98ebc6..7e0e942be5 100644 --- a/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp +++ b/tests/auto/widgets/util/qundogroup/tst_qundogroup.cpp @@ -615,10 +615,15 @@ void tst_QUndoGroup::commandTextFormat() if (QProcess::execute(binDir + "/lrelease -version") != 0) QSKIP("lrelease is missing or broken"); - QVERIFY(!QProcess::execute(binDir + "/lrelease testdata/qundogroup.ts")); + const QString tsFile = QFINDTESTDATA("testdata/qundogroup.ts"); + QVERIFY(!tsFile.isEmpty()); + QVERIFY(!QProcess::execute(binDir + "/lrelease " + tsFile)); QTranslator translator; - QVERIFY(translator.load("testdata/qundogroup.qm")); + + const QString qmFile = QFINDTESTDATA("testdata/qundogroup.qm"); + QVERIFY(!qmFile.isEmpty()); + QVERIFY(translator.load(qmFile)); qApp->installTranslator(&translator); QUndoGroup group; diff --git a/tests/auto/widgets/util/qundostack/tst_qundostack.cpp b/tests/auto/widgets/util/qundostack/tst_qundostack.cpp index 4556816655..6e6c72db5e 100644 --- a/tests/auto/widgets/util/qundostack/tst_qundostack.cpp +++ b/tests/auto/widgets/util/qundostack/tst_qundostack.cpp @@ -2974,10 +2974,14 @@ void tst_QUndoStack::commandTextFormat() if (QProcess::execute(binDir + "/lrelease -version") != 0) QSKIP("lrelease is missing or broken"); - QVERIFY(!QProcess::execute(binDir + "/lrelease testdata/qundostack.ts")); + const QString tsFile = QFINDTESTDATA("testdata/qundostack.ts"); + QVERIFY(!tsFile.isEmpty()); + QVERIFY(!QProcess::execute(binDir + "/lrelease " + tsFile)); QTranslator translator; - QVERIFY(translator.load("testdata/qundostack.qm")); + const QString qmFile = QFINDTESTDATA("testdata/qundostack.qm"); + QVERIFY(!qmFile.isEmpty()); + QVERIFY(translator.load(qmFile)); qApp->installTranslator(&translator); QUndoStack stack; diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp index f26af0e1f4..4631154230 100644 --- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp +++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp @@ -161,6 +161,7 @@ private slots: void task_QTBUG_10491_currentIndexAndModelColumn(); void highlightedSignal(); void itemData(); + void task_QTBUG_31146_popupCompletion(); }; class MyAbstractItemDelegate : public QAbstractItemDelegate @@ -2901,5 +2902,39 @@ void tst_QComboBox::itemData() } } +void tst_QComboBox::task_QTBUG_31146_popupCompletion() +{ + QComboBox comboBox; + comboBox.setEditable(true); + comboBox.setAutoCompletion(true); + comboBox.setInsertPolicy(QComboBox::NoInsert); + comboBox.completer()->setCaseSensitivity(Qt::CaseInsensitive); + comboBox.completer()->setCompletionMode(QCompleter::PopupCompletion); + + comboBox.addItems(QStringList() << QStringLiteral("item") << QStringLiteral("item")); + + comboBox.show(); + comboBox.activateWindow(); + QVERIFY(QTest::qWaitForWindowActive(&comboBox)); + + QCOMPARE(comboBox.currentIndex(), 0); + + comboBox.lineEdit()->selectAll(); + QTest::keyClicks(comboBox.lineEdit(), "item"); + + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Down); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Down); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Enter); + QCOMPARE(comboBox.currentIndex(), 1); + + comboBox.lineEdit()->selectAll(); + QTest::keyClicks(comboBox.lineEdit(), "item"); + + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Up); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Up); + QTest::keyClick(comboBox.completer()->popup(), Qt::Key_Enter); + QCOMPARE(comboBox.currentIndex(), 0); +} + QTEST_MAIN(tst_QComboBox) #include "tst_qcombobox.moc" |