summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-09-01 11:35:12 +0200
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-09-01 11:35:53 +0200
commit2dfc786c26663a2d555a8c8152c5ff95a3b0672e (patch)
treefbf4d41dc1836ffa607e70e2348102066a83855c /tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
parentd444bbf110e83c72d0657203896ad3c8a4cb5107 (diff)
parent1812bb968c49d50745ab2b10787320205c54f946 (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Diffstat (limited to 'tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp')
-rw-r--r--tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
index 0094a1112b..c7fba1c871 100644
--- a/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/widgets/widgets/qlineedit/tst_qlineedit.cpp
@@ -244,6 +244,7 @@ private slots:
#ifndef QT_NO_CLIPBOARD
void cut();
+ void cutWithoutSelection();
#endif
void maxLengthAndInputMask();
void returnPressedKeyEvent();
@@ -2977,7 +2978,37 @@ void tst_QLineEdit::cut()
testWidget->cut();
QCOMPARE(testWidget->text(), QString("Abcdefg defg hijklmno"));
}
-#endif
+
+void tst_QLineEdit::cutWithoutSelection()
+{
+ enum { selectionLength = 1 };
+
+ if (QKeySequence(QKeySequence::Cut).toString() != QLatin1String("Ctrl+X"))
+ QSKIP("Platform with non-standard keybindings");
+ QClipboard *clipboard = QGuiApplication::clipboard();
+ if (!PlatformClipboard::isAvailable()
+ || !QGuiApplication::platformName().compare("xcb", Qt::CaseInsensitive)) { // Avoid unstable X11 clipboard
+ clipboard = Q_NULLPTR;
+ }
+
+ if (clipboard)
+ clipboard->clear();
+ const QString origText = QStringLiteral("test");
+ QLineEdit lineEdit(origText);
+ lineEdit.setCursorPosition(0);
+ QVERIFY(!lineEdit.hasSelectedText());
+ QTest::keyClick(&lineEdit, Qt::Key_X, Qt::ControlModifier);
+ QCOMPARE(lineEdit.text(), origText); // No selection, unmodified.
+ if (clipboard)
+ QVERIFY(clipboard->text().isEmpty());
+ lineEdit.setSelection(0, selectionLength);
+ QTest::keyClick(&lineEdit, Qt::Key_X, Qt::ControlModifier);
+ QCOMPARE(lineEdit.text(), origText.right(origText.size() - selectionLength));
+ if (clipboard)
+ QCOMPARE(clipboard->text(), origText.left(selectionLength));
+}
+
+#endif // !QT_NO_CLIPBOARD
class InputMaskValidator : public QValidator
{