aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/virtualkeyboardattached
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/virtualkeyboardattached')
-rw-r--r--tests/auto/virtualkeyboardattached/CMakeLists.txt17
-rw-r--r--tests/auto/virtualkeyboardattached/data/inputpanel/inputpanel.qml16
-rw-r--r--tests/auto/virtualkeyboardattached/data/tst_virtualkeyboardattached.qml99
-rw-r--r--tests/auto/virtualkeyboardattached/tst_virtualkeyboardattached.cpp12
4 files changed, 144 insertions, 0 deletions
diff --git a/tests/auto/virtualkeyboardattached/CMakeLists.txt b/tests/auto/virtualkeyboardattached/CMakeLists.txt
new file mode 100644
index 00000000..b3221bd2
--- /dev/null
+++ b/tests/auto/virtualkeyboardattached/CMakeLists.txt
@@ -0,0 +1,17 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+# Collect test data
+file(GLOB_RECURSE test_data_glob
+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/data/*)
+list(APPEND test_data ${test_data_glob})
+
+qt_internal_add_test(tst_virtualkeyboardattached
+ QMLTEST
+ SOURCES
+ tst_virtualkeyboardattached.cpp
+ LIBRARIES
+ Qt::Gui
+ TESTDATA ${test_data}
+)
diff --git a/tests/auto/virtualkeyboardattached/data/inputpanel/inputpanel.qml b/tests/auto/virtualkeyboardattached/data/inputpanel/inputpanel.qml
new file mode 100644
index 00000000..80fe6265
--- /dev/null
+++ b/tests/auto/virtualkeyboardattached/data/inputpanel/inputpanel.qml
@@ -0,0 +1,16 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtTest
+import QtQuick
+import QtQuick.VirtualKeyboard
+import QtQuick.VirtualKeyboard.Settings
+
+InputPanel {
+ id: inputPanel
+ z: 99
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ visible: active
+}
diff --git a/tests/auto/virtualkeyboardattached/data/tst_virtualkeyboardattached.qml b/tests/auto/virtualkeyboardattached/data/tst_virtualkeyboardattached.qml
new file mode 100644
index 00000000..b158f603
--- /dev/null
+++ b/tests/auto/virtualkeyboardattached/data/tst_virtualkeyboardattached.qml
@@ -0,0 +1,99 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtTest
+import QtQuick
+import QtQuick.Window
+import QtQuick.VirtualKeyboard
+
+Rectangle {
+ id: container
+ width: 800
+ height: 640
+ color: "blue"
+
+ TestCase {
+ id: testcase
+ name: "tst_virtualkeyboardattached"
+ when: windowShown
+
+ property var inputPanel: null
+
+ function initTestCase() {
+ var inputPanelComp = Qt.createComponent("inputpanel/inputpanel.qml")
+ compare(inputPanelComp.status, Component.Ready, "Failed to create component: "+inputPanelComp.errorString())
+ inputPanel = inputPanelComp.createObject(container)
+ }
+
+ function cleanupTestCase() {
+ if (inputPanel)
+ inputPanel.destroy()
+ }
+
+ function prepareTest() {
+ var window = container.Window.window
+ verify(window)
+ window.raise()
+ window.requestActivate()
+ tryCompare(window, "active", true)
+ }
+
+ Component {
+ id: textInputWithVirtualKeyboardAttachedComp
+ TextEdit {
+ anchors.fill: parent
+ visible: true
+ focus: true
+ color: "white"
+ VirtualKeyboard.extraDictionaries: ["example"]
+ }
+ }
+
+ function test_virtualKeyboardAttached() {
+ prepareTest()
+
+ container.forceActiveFocus()
+ waitForRendering(container)
+
+ let textInput = textInputWithVirtualKeyboardAttachedComp.createObject(container)
+
+ verify(textInput !== null)
+
+ textInput.forceActiveFocus()
+ waitForRendering(inputPanel)
+
+ verify(inputPanel.visible === true)
+ verify(textInput.activeFocus === true)
+ }
+
+ Component {
+ id: textInputWithEnterKeyActionAttachedComp
+ TextEdit {
+ anchors.fill: parent
+ visible: true
+ focus: true
+ color: "white"
+ EnterKeyAction.actionId: EnterKeyAction.Done
+ EnterKeyAction.label: "hello"
+ EnterKeyAction.enabled: true
+ }
+ }
+
+ function test_enterKeyActionAttached() {
+ prepareTest()
+
+ container.forceActiveFocus()
+ waitForRendering(container)
+
+ let textInput = textInputWithEnterKeyActionAttachedComp.createObject(container)
+
+ verify(textInput !== null)
+
+ textInput.forceActiveFocus()
+ waitForRendering(inputPanel)
+
+ verify(inputPanel.visible === true)
+ verify(textInput.activeFocus === true)
+ }
+ }
+}
diff --git a/tests/auto/virtualkeyboardattached/tst_virtualkeyboardattached.cpp b/tests/auto/virtualkeyboardattached/tst_virtualkeyboardattached.cpp
new file mode 100644
index 00000000..5bf71dfb
--- /dev/null
+++ b/tests/auto/virtualkeyboardattached/tst_virtualkeyboardattached.cpp
@@ -0,0 +1,12 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QtQuickTest/quicktest.h>
+#include <QByteArray>
+#include <QStandardPaths>
+#include <QFileInfo>
+#include <QDir>
+
+static bool s_configEnv = qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
+
+QUICK_TEST_MAIN(virtualkeyboardattached)