summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-19 10:00:53 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-19 10:03:01 +0100
commit8f569c740a91b98365dcdaee2444038ce4957a76 (patch)
tree749302d8bf9023ae51873a74dc641fd005744502 /tests/auto/widgets
parent465e93aa95d99f799300867b07f81bdd5162c9f1 (diff)
parente8ad49d6cba6521f20b1b08bf65d92fc81c158e4 (diff)
Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts: config.tests/common/atomic64/atomic64.cpp configure src/3rdparty/forkfd/forkfd.c src/corelib/io/forkfd_qt.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp tools/configure/configureapp.cpp Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp23
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp8
-rw-r--r--tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp31
3 files changed, 50 insertions, 12 deletions
diff --git a/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp b/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
index d5769554be..37afa7f0a5 100644
--- a/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
+++ b/tests/auto/widgets/dialogs/qdialog/tst_qdialog.cpp
@@ -51,6 +51,14 @@
QT_FORWARD_DECLARE_CLASS(QDialog)
+// work around function being protected
+class DummyDialog : public QDialog
+{
+public:
+ DummyDialog(): QDialog(0, Qt::X11BypassWindowManagerHint) {}
+ using QDialog::showExtension;
+};
+
class tst_QDialog : public QObject
{
Q_OBJECT
@@ -85,7 +93,7 @@ private slots:
void dialogInGraphicsView();
private:
- QDialog *testWidget;
+ DummyDialog *testWidget;
};
// Testing get/set functions
@@ -111,13 +119,6 @@ void tst_QDialog::getSetCheck()
QCOMPARE(INT_MAX, obj1.result());
}
-// work around function being protected
-class DummyDialog : public QDialog {
-public:
- DummyDialog(): QDialog(0) {}
- void showExtension( bool b ) { QDialog::showExtension( b ); }
-};
-
class ToolDialog : public QDialog
{
public:
@@ -155,7 +156,7 @@ tst_QDialog::tst_QDialog()
void tst_QDialog::initTestCase()
{
// Create the test class
- testWidget = new QDialog(0, Qt::X11BypassWindowManagerHint);
+ testWidget = new DummyDialog;
testWidget->resize(200,200);
testWidget->show();
qApp->setActiveWindow(testWidget);
@@ -200,7 +201,7 @@ void tst_QDialog::showExtension()
QPoint oldPosition = testWidget->pos();
// show
- ((DummyDialog*)testWidget)->showExtension( true );
+ testWidget->showExtension( true );
// while ( testWidget->size() == dlgSize )
// qApp->processEvents();
@@ -209,7 +210,7 @@ void tst_QDialog::showExtension()
QCOMPARE(testWidget->pos(), oldPosition);
// hide extension. back to old size ?
- ((DummyDialog*)testWidget)->showExtension( false );
+ testWidget->showExtension( false );
QCOMPARE( testWidget->size(), dlgSize );
testWidget->setExtension( 0 );
diff --git a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
index 8760dc176c..d8a8ed6b4b 100644
--- a/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicsproxywidget/tst_qgraphicsproxywidget.cpp
@@ -3685,6 +3685,7 @@ void tst_QGraphicsProxyWidget::mapToGlobal() // QTBUG-41135
const QSize size = availableGeometry.size() / 5;
QGraphicsScene scene;
QGraphicsView view(&scene);
+ view.setTransform(QTransform::fromScale(2, 2)); // QTBUG-50136, use transform.
view.setWindowTitle(QTest::currentTestFunction());
view.resize(size);
view.move(availableGeometry.bottomRight() - QPoint(size.width(), size.height()) - QPoint(100, 100));
@@ -3707,10 +3708,15 @@ void tst_QGraphicsProxyWidget::mapToGlobal() // QTBUG-41135
QVERIFY2((viewCenter - embeddedCenterGlobal).manhattanLength() <= 2,
msgPointMismatch(embeddedCenterGlobal, viewCenter).constData());
- // Same test with child centered on embeddedWidget
+ // Same test with child centered on embeddedWidget. The correct
+ // mapping is not implemented yet, but at least make sure
+ // the roundtrip maptoGlobal()/mapFromGlobal() returns the same
+ // point since that is important for mouse event handling (QTBUG-50030,
+ // QTBUG-50136).
const QPoint childCenter = childWidget->rect().center();
const QPoint childCenterGlobal = childWidget->mapToGlobal(childCenter);
QCOMPARE(childWidget->mapFromGlobal(childCenterGlobal), childCenter);
+ QEXPECT_FAIL("", "Not implemented for child widgets of embedded widgets", Continue);
QVERIFY2((viewCenter - childCenterGlobal).manhattanLength() <= 4,
msgPointMismatch(childCenterGlobal, viewCenter).constData());
}
diff --git a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
index 0b22dc7893..ae516639a6 100644
--- a/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp
@@ -166,6 +166,7 @@ private slots:
void updateDelegateOnEditableChange();
void respectChangedOwnershipOfItemView();
void task_QTBUG_39088_inputMethodHints();
+ void task_QTBUG_49831_scrollerNotActivated();
};
class MyAbstractItemDelegate : public QAbstractItemDelegate
@@ -3206,6 +3207,36 @@ void tst_QComboBox::respectChangedOwnershipOfItemView()
QCOMPARE(spy2.count(), 1);
}
+void tst_QComboBox::task_QTBUG_49831_scrollerNotActivated()
+{
+ QStringList modelData;
+ for (int i = 0; i < 1000; i++)
+ modelData << QStringLiteral("Item %1").arg(i);
+ QStringListModel model(modelData);
+
+ QComboBox box;
+ box.setModel(&model);
+ box.setCurrentIndex(500);
+ box.show();
+ QTest::qWaitForWindowShown(&box);
+ QTest::mouseMove(&box, QPoint(5, 5), 100);
+ box.showPopup();
+ QFrame *container = box.findChild<QComboBoxPrivateContainer *>();
+ QVERIFY(container);
+ QTest::qWaitForWindowShown(container);
+
+ QList<QComboBoxPrivateScroller *> scrollers = container->findChildren<QComboBoxPrivateScroller *>();
+ // Not all styles support scrollers. We rely only on those platforms that do to catch any regression.
+ if (!scrollers.isEmpty()) {
+ Q_FOREACH (QComboBoxPrivateScroller *scroller, scrollers) {
+ if (scroller->isVisible()) {
+ QSignalSpy doScrollSpy(scroller, SIGNAL(doScroll(int)));
+ QTest::mouseMove(scroller, QPoint(5, 5), 500);
+ QTRY_VERIFY(doScrollSpy.count() > 0);
+ }
+ }
+ }
+}
QTEST_MAIN(tst_QComboBox)
#include "tst_qcombobox.moc"