summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2019-12-11 01:00:10 +0100
committerEdward Welbourne <edward.welbourne@qt.io>2019-12-11 14:52:25 +0100
commit5b193e3dd47704daf56c8817d0157f66363044c3 (patch)
tree88d81d23ebe62a3decda01c4066599e0c4d81299 /tests/auto/widgets
parentc3a66baff87e8d231aae06ccd1eb5d623587593d (diff)
parenta4a7c1bcf7595e2645c570d9c824532acf524fdf (diff)
Merge "Merge remote-tracking branch 'origin/5.15' into dev"
Diffstat (limited to 'tests/auto/widgets')
-rw-r--r--tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp1
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp54
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp3
-rw-r--r--tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp46
4 files changed, 101 insertions, 3 deletions
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
index 029738652e..afb24bc528 100644
--- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
+++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp
@@ -1380,6 +1380,7 @@ void tst_QFiledialog::clearLineEdit()
fd.setFileMode(QFileDialog::AnyFile);
fd.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&fd));
QLineEdit *lineEdit = fd.findChild<QLineEdit*>("fileNameEdit");
QVERIFY(lineEdit);
QCOMPARE(lineEdit->text(), QLatin1String("foo"));
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 6f8fd5dcbe..dd747a8616 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -60,6 +60,7 @@
#include <QtGui/qpaintengine.h>
#include <QtGui/qbackingstore.h>
#include <QtGui/qguiapplication.h>
+#include <QtGui/qpa/qplatformwindow.h>
#include <QtGui/qscreen.h>
#include <qmenubar.h>
#include <qcompleter.h>
@@ -227,6 +228,7 @@ private slots:
void setFixedSize();
void ensureCreated();
+ void createAndDestroy();
void winIdChangeEvent();
void persistentWinId();
void showNativeChild();
@@ -4250,6 +4252,58 @@ public:
int winIdChangeEventCount() const { return m_winIdList.count(); }
};
+class CreateDestroyWidget : public WinIdChangeWidget
+{
+public:
+ void create() { QWidget::create(); }
+ void destroy() { QWidget::destroy(); }
+};
+
+void tst_QWidget::createAndDestroy()
+{
+ CreateDestroyWidget widget;
+
+ // Create and destroy via QWidget
+ widget.create();
+ QVERIFY(widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 1);
+ QVERIFY(widget.internalWinId());
+
+ widget.destroy();
+ QVERIFY(!widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 2);
+ QVERIFY(!widget.internalWinId());
+
+ // Create via QWidget, destroy via QWindow
+ widget.create();
+ QVERIFY(widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 3);
+ QVERIFY(widget.internalWinId());
+
+ widget.windowHandle()->destroy();
+ QVERIFY(!widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 4);
+ QVERIFY(!widget.internalWinId());
+
+ // Create via QWidget again
+ widget.create();
+ QVERIFY(widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 5);
+ QVERIFY(widget.internalWinId());
+
+ // Destroy via QWindow, create via QWindow
+ widget.windowHandle()->destroy();
+ QVERIFY(widget.windowHandle());
+ QVERIFY(!widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 6);
+ QVERIFY(!widget.internalWinId());
+
+ widget.windowHandle()->create();
+ QVERIFY(widget.testAttribute(Qt::WA_WState_Created));
+ QCOMPARE(widget.winIdChangeEventCount(), 7);
+ QVERIFY(widget.internalWinId());
+}
+
void tst_QWidget::winIdChangeEvent()
{
{
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index c2475be8b4..bf31f12958 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -885,9 +885,6 @@ void tst_QLineEdit::hasAcceptableInputMask()
qApp->sendEvent(testWidget, &lostFocus);
QVERIFY(validInput);
- // at the moment we don't strip the blank character if it is valid input, this makes the test between x vs X useless
- QEXPECT_FAIL( "Any optional and required", "To eat blanks or not? Known issue. Task 43172", Abort);
-
// test requiredMask
testWidget->setInputMask(requiredMask);
validInput = true;
diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
index 336b6ebfd5..a86784f2ec 100644
--- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
+++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
@@ -155,6 +155,7 @@ private slots:
#if QT_CONFIG(scrollbar)
void updateAfterChangeCenterOnScroll();
#endif
+ void updateCursorPositionAfterEdit();
private:
void createSelection();
@@ -1802,5 +1803,50 @@ void tst_QPlainTextEdit::updateAfterChangeCenterOnScroll()
#endif
+void tst_QPlainTextEdit::updateCursorPositionAfterEdit()
+{
+ QPlainTextEdit plaintextEdit;
+ plaintextEdit.setPlainText("some text some text\nsome text some text");
+
+ const auto initialPosition = 1;
+
+ // select some text
+ auto cursor = plaintextEdit.textCursor();
+ cursor.setPosition(initialPosition, QTextCursor::MoveAnchor);
+ cursor.setPosition(initialPosition + 3, QTextCursor::KeepAnchor);
+ plaintextEdit.setTextCursor(cursor);
+ QVERIFY(plaintextEdit.textCursor().hasSelection());
+
+ QTest::keyClick(&plaintextEdit, Qt::Key_Delete);
+ QTest::keyClick(&plaintextEdit, Qt::Key_Down);
+ QTest::keyClick(&plaintextEdit, Qt::Key_Up);
+
+ // Moving the cursor down and up should bring it to the initial position
+ QCOMPARE(plaintextEdit.textCursor().position(), initialPosition);
+
+ // Test the same with backspace
+ cursor = plaintextEdit.textCursor();
+ cursor.setPosition(initialPosition + 3, QTextCursor::KeepAnchor);
+ plaintextEdit.setTextCursor(cursor);
+ QVERIFY(plaintextEdit.textCursor().hasSelection());
+
+ QTest::keyClick(&plaintextEdit, Qt::Key_Backspace);
+ QTest::keyClick(&plaintextEdit, Qt::Key_Down);
+ QTest::keyClick(&plaintextEdit, Qt::Key_Up);
+
+ // Moving the cursor down and up should bring it to the initial position
+ QCOMPARE(plaintextEdit.textCursor().position(), initialPosition);
+
+ // Test insertion
+ const QString txt("txt");
+ QApplication::clipboard()->setText(txt);
+ plaintextEdit.paste();
+ QTest::keyClick(&plaintextEdit, Qt::Key_Down);
+ QTest::keyClick(&plaintextEdit, Qt::Key_Up);
+
+ // The curser should move back to the end of the copied text
+ QCOMPARE(plaintextEdit.textCursor().position(), initialPosition + txt.length());
+}
+
QTEST_MAIN(tst_QPlainTextEdit)
#include "tst_qplaintextedit.moc"