summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-10 09:32:16 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-02-10 09:42:25 +0100
commitfc35f714340d5361231506dfbead132122f59460 (patch)
treefd80498d9417c87b386a011f5849f1e4e48ad3fa /tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
parent6389160f04322449c34bd1ecfe53983e3b588943 (diff)
parent0d990b9ca117514fe83f53b39f25d6272304f2fb (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts: src/3rdparty/harfbuzz-ng/harfbuzz-ng.pro src/gui/image/qimage_conversions.cpp src/gui/opengl/qopenglextensions_p.h src/gui/text/qtextengine.cpp src/network/ssl/qsslsocket_openssl.cpp src/plugins/platforms/eglfs/qeglfshooks_stub.cpp src/plugins/platforms/eglfs/qeglfsscreen.cpp src/plugins/platforms/eglfs/qeglfswindow.cpp src/plugins/platforms/windows/qwindowsfontdatabase.cpp src/plugins/platforms/windows/qwindowsfontdatabase_ft.cpp src/plugins/platforms/windows/qwindowsnativeinterface.cpp src/plugins/platforms/windows/qwindowsscreen.cpp src/plugins/platforms/windows/qwindowswindow.cpp src/plugins/platforms/windows/qwindowswindow.h src/plugins/platforms/xcb/qxcbdrag.h src/widgets/itemviews/qabstractitemview.cpp src/widgets/kernel/qwidget.cpp src/widgets/util/qsystemtrayicon_p.h tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp Thanks to Friedemann Kleint for resolving the qwindowsfontdatabase.cpp conflicts. Change-Id: I937232c30523d5121c195d947d92aec6f129b03e
Diffstat (limited to 'tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp')
-rw-r--r--tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
index cf495e2238..390b99c6e7 100644
--- a/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
+++ b/tests/auto/widgets/widgets/qplaintextedit/tst_qplaintextedit.cpp
@@ -99,7 +99,8 @@ private slots:
#ifndef QT_NO_CLIPBOARD
void copyAndSelectAllInReadonly();
#endif
- void ctrlAltInput();
+ void charWithAltOrCtrlModifier_data();
+ void charWithAltOrCtrlModifier();
void noPropertiesOnDefaultTextEditCharFormat();
void setPlainTextShouldEmitTextChangedOnce();
void overwriteMode();
@@ -691,10 +692,34 @@ void tst_QPlainTextEdit::copyAndSelectAllInReadonly()
}
#endif
-void tst_QPlainTextEdit::ctrlAltInput()
+Q_DECLARE_METATYPE(Qt::KeyboardModifiers)
+
+// Test how QWidgetTextControlPrivate (used in QPlainTextEdit, QTextEdit)
+// handles input with modifiers.
+void tst_QPlainTextEdit::charWithAltOrCtrlModifier_data()
+{
+ QTest::addColumn<Qt::KeyboardModifiers>("modifiers");
+ QTest::addColumn<bool>("textExpected");
+
+ QTest::newRow("no-modifiers") << Qt::KeyboardModifiers() << true;
+ // Ctrl, Ctrl+Shift: No text (QTBUG-35734)
+ QTest::newRow("ctrl") << Qt::KeyboardModifiers(Qt::ControlModifier)
+ << false;
+ QTest::newRow("ctrl-shift") << Qt::KeyboardModifiers(Qt::ShiftModifier | Qt::ControlModifier)
+ << false;
+ QTest::newRow("alt") << Qt::KeyboardModifiers(Qt::AltModifier) << true;
+ // Alt-Ctrl (Alt-Gr on German keyboards, Task 129098): Expect text
+ QTest::newRow("alt-ctrl") << (Qt::AltModifier | Qt::ControlModifier) << true;
+}
+
+void tst_QPlainTextEdit::charWithAltOrCtrlModifier()
{
- QTest::keyClick(ed, Qt::Key_At, Qt::ControlModifier | Qt::AltModifier);
- QCOMPARE(ed->toPlainText(), QString("@"));
+ QFETCH(Qt::KeyboardModifiers, modifiers);
+ QFETCH(bool, textExpected);
+
+ QTest::keyClick(ed, Qt::Key_At, modifiers);
+ const QString expectedText = textExpected ? QLatin1String("@") : QString();
+ QCOMPARE(ed->toPlainText(), expectedText);
}
void tst_QPlainTextEdit::noPropertiesOnDefaultTextEditCharFormat()