summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qplaintextedit
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-01-27 16:53:48 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2015-02-03 06:24:11 +0000
commitb85b78f17d3d18887b409a3ce9d2f2c71ae68844 (patch)
tree91e454eac7a008a30832b72d361a9c93e6842882 /tests/auto/widgets/widgets/qplaintextedit
parent912f1ebaad29e5a0b8acba48691a565ba56c6b9e (diff)
Suppress Ctrl/Ctrl+Shift keypresses in line/text edits.
Ctrl/Ctrl+Shift should not cause any characters to be input (as opposed to AltGr(Alt+Ctrl) as used on German keyboards). Extend the tests in QLineEdit and QPlainTextEdit to check the modifiers, remove test from QTextEdit since it is handled by QWidgetTextControl. Task-number: QTBUG-35734 Change-Id: Ie0004fac68cf840c68247f27547e84b021355cd2 Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Diffstat (limited to 'tests/auto/widgets/widgets/qplaintextedit')
-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()