diff options
Diffstat (limited to 'tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp')
-rw-r--r-- | tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp | 88 |
1 files changed, 59 insertions, 29 deletions
diff --git a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp index 6f24ca8ded..2e64c80b85 100644 --- a/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp +++ b/tests/auto/quick/qquicktextinput/tst_qquicktextinput.cpp @@ -146,7 +146,7 @@ private slots: void cursorRectangle(); void navigation(); void navigation_RTL(); -#if QT_CONFIG(clipboard) +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void copyAndPaste(); void copyAndPasteKeySequence(); void canPasteEmpty(); @@ -181,15 +181,19 @@ private slots: void remove_data(); void remove(); +#if QT_CONFIG(shortcut) void keySequence_data(); void keySequence(); +#endif void undo_data(); void undo(); void redo_data(); void redo(); +#if QT_CONFIG(shortcut) void undo_keypressevents_data(); void undo_keypressevents(); +#endif void clear(); void backspaceSurrogatePairs(); @@ -236,7 +240,9 @@ private: void simulateKey(QWindow *, int key); void simulateKeys(QWindow *window, const QList<Key> &keys); +#if QT_CONFIG(shortcut) void simulateKeys(QWindow *window, const QKeySequence &sequence); +#endif QQmlEngine engine; QStringList standard; @@ -264,6 +270,8 @@ void tst_qquicktextinput::simulateKeys(QWindow *window, const QList<Key> &keys) } } +#if QT_CONFIG(shortcut) + void tst_qquicktextinput::simulateKeys(QWindow *window, const QKeySequence &sequence) { for (int i = 0; i < sequence.count(); ++i) { @@ -281,6 +289,8 @@ QList<Key> &operator <<(QList<Key> &keys, const QKeySequence &sequence) return keys; } +#endif // QT_CONFIG(shortcut) + template <int N> QList<Key> &operator <<(QList<Key> &keys, const char (&characters)[N]) { for (int i = 0; i < N - 1; ++i) { @@ -2063,11 +2073,15 @@ void tst_qquicktextinput::validators() QTest::keyPress(&window, Qt::Key_Comma); QTest::keyRelease(&window, Qt::Key_Comma, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12,")); - QCOMPARE(dblInput->hasAcceptableInput(), true); - QTest::keyPress(&window, Qt::Key_1); - QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); - QTRY_COMPARE(dblInput->text(), QLatin1String("12,")); - QCOMPARE(dblInput->hasAcceptableInput(), true); + int extraSignals = 2; + if (dblInput->hasAcceptableInput()) { + // TODO: old behavior of QDoubleValidator - remove when merged from qtbase + QTest::keyPress(&window, Qt::Key_1); + QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); + QTRY_COMPARE(dblInput->text(), QLatin1String("12,")); + QCOMPARE(dblInput->hasAcceptableInput(), true); + extraSignals = 0; + } dblValidator->setLocaleName(deLocale.name()); QCOMPARE(dblInput->hasAcceptableInput(), true); QTest::keyPress(&window, Qt::Key_1); @@ -2096,84 +2110,84 @@ void tst_qquicktextinput::validators() QTRY_COMPARE(dblInput->text(), QLatin1String("12.")); QCOMPARE(dblInput->hasAcceptableInput(), true); QCOMPARE(dblInput->property("acceptable").toBool(), true); - QCOMPARE(dblSpy.count(), 1); + QCOMPARE(dblSpy.count(), 1 + extraSignals); QTest::keyPress(&window, Qt::Key_1); QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.1")); QCOMPARE(dblInput->hasAcceptableInput(), true); QCOMPARE(dblInput->property("acceptable").toBool(), true); - QCOMPARE(dblSpy.count(), 1); + QCOMPARE(dblSpy.count(), 1 + extraSignals); QTest::keyPress(&window, Qt::Key_1); QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.11")); QCOMPARE(dblInput->hasAcceptableInput(), true); QCOMPARE(dblInput->property("acceptable").toBool(), true); - QCOMPARE(dblSpy.count(), 1); + QCOMPARE(dblSpy.count(), 1 + extraSignals); QTest::keyPress(&window, Qt::Key_1); QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.11")); QCOMPARE(dblInput->hasAcceptableInput(), true); QCOMPARE(dblInput->property("acceptable").toBool(), true); - QCOMPARE(dblSpy.count(), 1); + QCOMPARE(dblSpy.count(), 1 + extraSignals); // Ensure the validator doesn't prevent characters being removed. dblInput->setValidator(intInput->validator()); QCOMPARE(dblInput->text(), QLatin1String("12.11")); QCOMPARE(dblInput->hasAcceptableInput(), false); QCOMPARE(dblInput->property("acceptable").toBool(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); QTest::keyPress(&window, Qt::Key_Backspace); QTest::keyRelease(&window, Qt::Key_Backspace, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.1")); QCOMPARE(dblInput->hasAcceptableInput(), false); QCOMPARE(dblInput->property("acceptable").toBool(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); // Once unacceptable input is in anything goes until it reaches an acceptable state again. QTest::keyPress(&window, Qt::Key_1); QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.11")); QCOMPARE(dblInput->hasAcceptableInput(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); QTest::keyPress(&window, Qt::Key_Backspace); QTest::keyRelease(&window, Qt::Key_Backspace, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.1")); QCOMPARE(dblInput->hasAcceptableInput(), false); QCOMPARE(dblInput->property("acceptable").toBool(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); QTest::keyPress(&window, Qt::Key_Backspace); QTest::keyRelease(&window, Qt::Key_Backspace, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12.")); QCOMPARE(dblInput->hasAcceptableInput(), false); QCOMPARE(dblInput->property("acceptable").toBool(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); QTest::keyPress(&window, Qt::Key_Backspace); QTest::keyRelease(&window, Qt::Key_Backspace, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("12")); QCOMPARE(dblInput->hasAcceptableInput(), false); QCOMPARE(dblInput->property("acceptable").toBool(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); QTest::keyPress(&window, Qt::Key_Backspace); QTest::keyRelease(&window, Qt::Key_Backspace, Qt::NoModifier); QTRY_COMPARE(dblInput->text(), QLatin1String("1")); QCOMPARE(dblInput->hasAcceptableInput(), false); QCOMPARE(dblInput->property("acceptable").toBool(), false); - QCOMPARE(dblSpy.count(), 2); + QCOMPARE(dblSpy.count(), 2 + extraSignals); QTest::keyPress(&window, Qt::Key_1); QTest::keyRelease(&window, Qt::Key_1, Qt::NoModifier); QCOMPARE(dblInput->text(), QLatin1String("11")); QCOMPARE(dblInput->property("acceptable").toBool(), true); QCOMPARE(dblInput->hasAcceptableInput(), true); - QCOMPARE(dblSpy.count(), 3); + QCOMPARE(dblSpy.count(), 3 + extraSignals); // Changing the validator properties will re-evaluate whether the input is acceptable. intValidator->setTop(10); QCOMPARE(dblInput->property("acceptable").toBool(), false); QCOMPARE(dblInput->hasAcceptableInput(), false); - QCOMPARE(dblSpy.count(), 4); + QCOMPARE(dblSpy.count(), 4 + extraSignals); intValidator->setTop(12); QCOMPARE(dblInput->property("acceptable").toBool(), true); QCOMPARE(dblInput->hasAcceptableInput(), true); - QCOMPARE(dblSpy.count(), 5); + QCOMPARE(dblSpy.count(), 5 + extraSignals); QQuickTextInput *strInput = qobject_cast<QQuickTextInput *>(qvariant_cast<QObject *>(window.rootObject()->property("strInput"))); QVERIFY(strInput); @@ -2586,7 +2600,7 @@ void tst_qquicktextinput::navigation_RTL() QVERIFY(input->hasActiveFocus()); } -#if QT_CONFIG(clipboard) +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void tst_qquicktextinput::copyAndPaste() { if (!PlatformQuirks::isClipboardAvailable()) @@ -2684,7 +2698,7 @@ void tst_qquicktextinput::copyAndPaste() } #endif -#if QT_CONFIG(clipboard) +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void tst_qquicktextinput::copyAndPasteKeySequence() { if (!PlatformQuirks::isClipboardAvailable()) @@ -2752,7 +2766,7 @@ void tst_qquicktextinput::copyAndPasteKeySequence() } #endif -#if QT_CONFIG(clipboard) +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void tst_qquicktextinput::canPasteEmpty() { QGuiApplication::clipboard()->clear(); @@ -2768,7 +2782,7 @@ void tst_qquicktextinput::canPasteEmpty() } #endif -#if QT_CONFIG(clipboard) +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void tst_qquicktextinput::canPaste() { QGuiApplication::clipboard()->setText("Some text"); @@ -2784,7 +2798,7 @@ void tst_qquicktextinput::canPaste() } #endif -#if QT_CONFIG(clipboard) +#if QT_CONFIG(clipboard) && QT_CONFIG(shortcut) void tst_qquicktextinput::middleClickPaste() { if (!PlatformQuirks::isClipboardAvailable()) @@ -5098,6 +5112,7 @@ void tst_qquicktextinput::remove() QVERIFY(cursorPositionSpy.count() > 0); } +#if QT_CONFIG(shortcut) void tst_qquicktextinput::keySequence_data() { QTest::addColumn<QString>("text"); @@ -5283,6 +5298,8 @@ void tst_qquicktextinput::keySequence() QCOMPARE(textInput->selectedText(), selectedText); } +#endif // QT_CONFIG(shortcut) + #define NORMAL 0 #define REPLACE_UNTIL_END 1 @@ -5556,6 +5573,8 @@ void tst_qquicktextinput::redo() QCOMPARE(spy.count(), 2); } +#if QT_CONFIG(shortcut) + void tst_qquicktextinput::undo_keypressevents_data() { QTest::addColumn<KeyList>("keys"); @@ -5860,6 +5879,8 @@ void tst_qquicktextinput::undo_keypressevents() QVERIFY(textInput->text().isEmpty()); } +#endif // QT_CONFIG(shortcut) + void tst_qquicktextinput::clear() { QString componentStr = "import QtQuick 2.0\nTextInput { focus: true }"; @@ -6391,8 +6412,20 @@ void tst_qquicktextinput::setInputMask_data() QTest::newRow(QString(insert_mode + "blank=input").toLatin1()) << QString("9999;0") << QString("2004") + << QString("24") << QString("2004") - << QString("2004") + << bool(insert_text); + QTest::newRow(QString(insert_mode + "any_opt").toLatin1()) + << QString("@xxx@") + << QString("@A C@") + << QString("@AC@") + << QString("@A C@") + << bool(insert_text); + QTest::newRow(QString(insert_mode + "any_req").toLatin1()) + << QString("@XXX@") + << QString("@A C@") + << QString("@AC@@") + << QString("@AC@@") << bool(insert_text); } } @@ -6435,9 +6468,6 @@ void tst_qquicktextinput::setInputMask() QTest::keyClick(&window, input.at(i).toLatin1()); } - QEXPECT_FAIL( "keys blank=input", "To eat blanks or not? Known issue. Task 43172", Abort); - QEXPECT_FAIL( "insert blank=input", "To eat blanks or not? Known issue. Task 43172", Abort); - QCOMPARE(textInput->text(), expectedText); QCOMPARE(textInput->displayText(), expectedDisplay); } |