modifiers = Qt.NoModifier
if (delay == undefined)
delay = -1
- if (!qtest_events.keyPress(key, modifiers, delay))
- qtest_fail("window not shown", 2)
+ if (typeof(key) == "string" && key.length == 1) {
+ if (!qtest_events.keyPressChar(key, modifiers, delay))
+ qtest_fail("window not shown", 2)
+ } else {
+ if (!qtest_events.keyPress(key, modifiers, delay))
+ qtest_fail("window not shown", 2)
+ }
}
function keyRelease(key, modifiers, delay) {
modifiers = Qt.NoModifier
if (delay == undefined)
delay = -1
- if (!qtest_events.keyRelease(key, modifiers, delay))
- qtest_fail("window not shown", 2)
+ if (typeof(key) == "string" && key.length == 1) {
+ if (!qtest_events.keyReleaseChar(key, modifiers, delay))
+ qtest_fail("window not shown", 2)
+ } else {
+ if (!qtest_events.keyRelease(key, modifiers, delay))
+ qtest_fail("window not shown", 2)
+ }
}
function keyClick(key, modifiers, delay) {
modifiers = Qt.NoModifier
if (delay == undefined)
delay = -1
- if (!qtest_events.keyClick(key, modifiers, delay))
- qtest_fail("window not shown", 2)
+ if (typeof(key) == "string" && key.length == 1) {
+ if (!qtest_events.keyClickChar(key, modifiers, delay))
+ qtest_fail("window not shown", 2)
+ } else {
+ if (!qtest_events.keyClick(key, modifiers, delay))
+ qtest_fail("window not shown", 2)
+ }
}
function mousePress(item, x, y, button, modifiers, delay) {
The keyPress(), keyRelease(), and keyClick() methods can be used
to simulate keyboard events within unit tests. The events are
- delivered to the currently focused QML item.
+ delivered to the currently focused QML item. You can pass either
+ a Qt.Key enum value or a latin1 char (string of length one)
\code
Rectangle {
function test_key_click() {
keyClick(Qt.Key_Left)
+ keyClick("a")
...
}
}
return true;
}
+bool QuickTestEvent::keyPressChar(const QString &character, int modifiers, int delay)
+{
+ QTEST_ASSERT(character.length() == 1);
+ QWindow *window = eventWindow();
+ if (!window)
+ return false;
+ QTest::keyPress(window, character[0].toLatin1(), Qt::KeyboardModifiers(modifiers), delay);
+ return true;
+}
+
+bool QuickTestEvent::keyReleaseChar(const QString &character, int modifiers, int delay)
+{
+ QTEST_ASSERT(character.length() == 1);
+ QWindow *window = eventWindow();
+ if (!window)
+ return false;
+ QTest::keyRelease(window, character[0].toLatin1(), Qt::KeyboardModifiers(modifiers), delay);
+ return true;
+}
+
+bool QuickTestEvent::keyClickChar(const QString &character, int modifiers, int delay)
+{
+ QTEST_ASSERT(character.length() == 1);
+ QWindow *window = eventWindow();
+ if (!window)
+ return false;
+ QTest::keyClick(window, character[0].toLatin1(), Qt::KeyboardModifiers(modifiers), delay);
+ return true;
+}
+
namespace QTest {
extern int Q_TESTLIB_EXPORT defaultMouseDelay();
};
bool keyRelease(int key, int modifiers, int delay);
bool keyClick(int key, int modifiers, int delay);
+ bool keyPressChar(const QString &character, int modifiers, int delay);
+ bool keyReleaseChar(const QString &character, int modifiers, int delay);
+ bool keyClickChar(const QString &character, int modifiers, int delay);
+
bool mousePress(QObject *item, qreal x, qreal y, int button,
int modifiers, int delay);
bool mouseRelease(QObject *item, qreal x, qreal y, int button,
}
TextEdit {
+ id: txtentry2
+ text: ""
+ height: 20
+ width: 50
+ }
+
+ TextEdit {
id: txtfunctions
text: "The quick brown fox jumped over the lazy dog"
height: 20
compare(txtentry.text, "hello world")
}
+ function test_textentry_char() {
+ txtentry2.focus = true;
+ compare(txtentry2.text, "")
+ keyClick("h")
+ keyClick("e")
+ keyClick("l")
+ keyClick("l")
+ keyClick("o")
+ keyClick(" ")
+ keyClick("W")
+ keyClick("o")
+ keyClick("r")
+ keyClick("l")
+ keyClick("d")
+ compare(txtentry2.text, "hello World")
+ }
+
function test_functions() {
compare(txtfunctions.getText(4,9), "quick")
txtfunctions.select(4,9);