summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/widgets')
-rw-r--r--tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp66
-rw-r--r--tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp2
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp45
-rw-r--r--tests/auto/widgets/widgets/qmenu/BLACKLIST2
-rw-r--r--tests/auto/widgets/widgets/qmenubar/BLACKLIST2
5 files changed, 117 insertions, 0 deletions
diff --git a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
index 9c549365ff..38b473e5ae 100644
--- a/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
+++ b/tests/auto/widgets/widgets/qdialogbuttonbox/tst_qdialogbuttonbox.cpp
@@ -90,6 +90,7 @@ private slots:
// void buttons();
void testDelete();
+ void testSignalEmissionAfterDelete_QTBUG_45835();
void testRemove();
void testMultipleAdd();
void testStandardButtonMapping_data();
@@ -111,6 +112,7 @@ private:
tst_QDialogButtonBox::tst_QDialogButtonBox()
{
+ qRegisterMetaType<QAbstractButton *>();
}
tst_QDialogButtonBox::~tst_QDialogButtonBox()
@@ -414,6 +416,70 @@ void tst_QDialogButtonBox::testDelete()
QCOMPARE(buttonBox.buttons().count(), 0);
}
+class ObjectDeleter : public QObject
+{
+ Q_OBJECT
+public slots:
+ void deleteButton(QAbstractButton *button)
+ {
+ delete button;
+ }
+
+ void deleteSender()
+ {
+ delete sender();
+ }
+};
+
+void tst_QDialogButtonBox::testSignalEmissionAfterDelete_QTBUG_45835()
+{
+ {
+ QDialogButtonBox buttonBox;
+ QCOMPARE(buttonBox.buttons().count(), 0);
+
+ QSignalSpy buttonClickedSpy(&buttonBox, &QDialogButtonBox::clicked);
+ QVERIFY(buttonClickedSpy.isValid());
+
+ QSignalSpy buttonBoxAcceptedSpy(&buttonBox, &QDialogButtonBox::accepted);
+ QVERIFY(buttonBoxAcceptedSpy.isValid());
+
+ QPushButton *button = buttonBox.addButton("Test", QDialogButtonBox::AcceptRole);
+ QCOMPARE(buttonBox.buttons().count(), 1);
+
+ ObjectDeleter objectDeleter;
+ connect(&buttonBox, &QDialogButtonBox::clicked, &objectDeleter, &ObjectDeleter::deleteButton);
+
+ button->click();
+
+ QCOMPARE(buttonBox.buttons().count(), 0);
+ QCOMPARE(buttonClickedSpy.count(), 1);
+ QCOMPARE(buttonBoxAcceptedSpy.count(), 1);
+ }
+
+ {
+ QPointer<QDialogButtonBox> buttonBox(new QDialogButtonBox);
+ QCOMPARE(buttonBox->buttons().count(), 0);
+
+ QSignalSpy buttonClickedSpy(buttonBox.data(), &QDialogButtonBox::clicked);
+ QVERIFY(buttonClickedSpy.isValid());
+
+ QSignalSpy buttonBoxAcceptedSpy(buttonBox.data(), &QDialogButtonBox::accepted);
+ QVERIFY(buttonBoxAcceptedSpy.isValid());
+
+ QPushButton *button = buttonBox->addButton("Test", QDialogButtonBox::AcceptRole);
+ QCOMPARE(buttonBox->buttons().count(), 1);
+
+ ObjectDeleter objectDeleter;
+ connect(buttonBox.data(), &QDialogButtonBox::clicked, &objectDeleter, &ObjectDeleter::deleteSender);
+
+ button->click();
+
+ QVERIFY(buttonBox.isNull());
+ QCOMPARE(buttonClickedSpy.count(), 1);
+ QCOMPARE(buttonBoxAcceptedSpy.count(), 0);
+ }
+}
+
void tst_QDialogButtonBox::testMultipleAdd()
{
// Add a button into the thing multiple times.
diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
index ade9f72543..2bbc2e05b7 100644
--- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
+++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
@@ -764,6 +764,8 @@ void tst_QDockWidget::restoreDockWidget()
restoreWindow.show();
QVERIFY(QTest::qWaitForWindowExposed(&restoreWindow));
QTRY_VERIFY(dock->isFloating());
+ if (!QGuiApplication::platformName().compare("xcb", Qt::CaseInsensitive))
+ QSKIP("Skip due to Window manager positioning issues", Abort);
QTRY_COMPARE(dock->pos(), dockPos);
}
}
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index 9417541040..adedc601a9 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -304,6 +304,7 @@ private slots:
void undoRedoAndEchoModes();
void clearButton();
+ void clearButtonVisibleAfterSettingText_QTBUG_45518();
void sideWidgets();
void shouldShowPlaceholderText_data();
@@ -4273,6 +4274,50 @@ void tst_QLineEdit::clearButton()
QVERIFY(!clearButton->isEnabled());
}
+void tst_QLineEdit::clearButtonVisibleAfterSettingText_QTBUG_45518()
+{
+#ifndef QT_BUILD_INTERNAL
+ QSKIP("This test requires a developer build");
+#else
+ QLineEdit edit;
+ edit.setMinimumWidth(200);
+ centerOnScreen(&edit);
+ QLineEditIconButton *clearButton;
+ clearButton = edit.findChild<QLineEditIconButton *>();
+ QVERIFY(!clearButton);
+
+ edit.setText(QStringLiteral("some text"));
+ edit.show();
+ QVERIFY(QTest::qWaitForWindowActive(&edit));
+
+ QVERIFY(!edit.isClearButtonEnabled());
+
+ clearButton = edit.findChild<QLineEditIconButton *>();
+ QVERIFY(!clearButton);
+
+ edit.setClearButtonEnabled(true);
+ QVERIFY(edit.isClearButtonEnabled());
+
+ clearButton = edit.findChild<QLineEditIconButton *>();
+ QVERIFY(clearButton);
+ QVERIFY(clearButton->isVisible());
+
+ QTRY_VERIFY(clearButton->opacity() > 0);
+ QTRY_COMPARE(clearButton->cursor().shape(), Qt::ArrowCursor);
+
+ QTest::mouseClick(clearButton, Qt::LeftButton, 0, clearButton->rect().center());
+ QTRY_COMPARE(edit.text(), QString());
+
+ QTRY_COMPARE(clearButton->opacity(), qreal(0));
+ QTRY_COMPARE(clearButton->cursor().shape(), clearButton->parentWidget()->cursor().shape());
+
+ edit.setClearButtonEnabled(false);
+ QVERIFY(!edit.isClearButtonEnabled());
+ clearButton = edit.findChild<QLineEditIconButton *>();
+ QVERIFY(!clearButton);
+#endif // QT_BUILD_INTERNAL
+}
+
void tst_QLineEdit::sideWidgets()
{
QWidget testWidget;
diff --git a/tests/auto/widgets/widgets/qmenu/BLACKLIST b/tests/auto/widgets/widgets/qmenu/BLACKLIST
new file mode 100644
index 0000000000..de49d5ff45
--- /dev/null
+++ b/tests/auto/widgets/widgets/qmenu/BLACKLIST
@@ -0,0 +1,2 @@
+[task258920_mouseBorder]
+osx
diff --git a/tests/auto/widgets/widgets/qmenubar/BLACKLIST b/tests/auto/widgets/widgets/qmenubar/BLACKLIST
index 53ea4a9148..424ab2ceed 100644
--- a/tests/auto/widgets/widgets/qmenubar/BLACKLIST
+++ b/tests/auto/widgets/widgets/qmenubar/BLACKLIST
@@ -2,3 +2,5 @@
ubuntu-14.04
[taskQTBUG4965_escapeEaten]
ubuntu-14.04
+[task256322_highlight]
+osx