summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/other/qaccessibility/tst_qaccessibility.cpp93
1 files changed, 84 insertions, 9 deletions
diff --git a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
index a72dac1b81..fbbf45ad58 100644
--- a/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/other/qaccessibility/tst_qaccessibility.cpp
@@ -1475,7 +1475,7 @@ void tst_QAccessibility::spinBoxTest()
QTestAccessibility::clearEvents();
QTest::keyPress(spinBox, Qt::Key_Up);
QTest::qWait(200);
- QAccessibleEvent expectedEvent(QAccessible::ValueChanged, spinBox);
+ QAccessibleValueChangeEvent expectedEvent(spinBox->value(), spinBox);
QVERIFY(QTestAccessibility::containsEvent(&expectedEvent));
delete spinBox;
QTestAccessibility::clearEvents();
@@ -1695,8 +1695,10 @@ void tst_QAccessibility::mdiSubWindowTest()
void tst_QAccessibility::lineEditTest()
{
+ QWidget *toplevel = new QWidget;
+ {
QLineEdit *le = new QLineEdit;
- QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(le);
+ QAIPtr iface(QAccessible::queryAccessibleInterface(le));
QVERIFY(iface);
le->show();
@@ -1727,7 +1729,6 @@ void tst_QAccessibility::lineEditTest()
QVERIFY(!(iface->state().passwordEdit));
QCOMPARE(iface->text(QAccessible::Value), secret);
- QWidget *toplevel = new QWidget;
le->setParent(toplevel);
toplevel->show();
QApplication::processEvents();
@@ -1754,20 +1755,23 @@ void tst_QAccessibility::lineEditTest()
iface->setText(QAccessible::Value, QLatin1String("This text is not a number"));
QCOMPARE(le->text(), QLatin1String("500"));
- delete iface;
delete le;
delete le2;
- QTestAccessibility::clearEvents();
+ }
- // IA2
+ {
+ // Text interface to get the current text
QString cite = "I always pass on good advice. It is the only thing to do with it. It is never of any use to oneself. --Oscar Wilde";
QLineEdit *le3 = new QLineEdit(cite, toplevel);
- iface = QAccessible::queryAccessibleInterface(le3);
+ le3->show();
+ QAIPtr iface(QAccessible::queryAccessibleInterface(le3));
QAccessibleTextInterface* textIface = iface->textInterface();
le3->deselect();
+ QTestAccessibility::clearEvents();
le3->setCursorPosition(3);
QCOMPARE(textIface->cursorPosition(), 3);
- QAccessibleEvent caretEvent(QAccessible::TextCaretMoved, le3);
+
+ QAccessibleTextCursorEvent caretEvent(3, le3);
QTRY_VERIFY(QTestAccessibility::containsEvent(&caretEvent));
QCOMPARE(textIface->selectionCount(), 0);
QTestAccessibility::clearEvents();
@@ -1813,7 +1817,78 @@ void tst_QAccessibility::lineEditTest()
QCOMPARE(textIface->textAtOffset(5, QAccessible2::LineBoundary,&start,&end), cite);
QCOMPARE(textIface->textAtOffset(5, QAccessible2::NoBoundary,&start,&end), cite);
- delete iface;
+ QTestAccessibility::clearEvents();
+ }
+
+ {
+ // Test events: cursor movement, selection, text changes
+ QString text = "Hello, world";
+ QLineEdit *lineEdit = new QLineEdit(text, toplevel);
+ lineEdit->show();
+ QTestAccessibility::clearEvents();
+ // cursor
+ lineEdit->setCursorPosition(5);
+ QAccessibleTextCursorEvent cursorEvent(5, lineEdit);
+ QVERIFY_EVENT(&cursorEvent);
+ lineEdit->setCursorPosition(0);
+ cursorEvent.setCursorPosition(0);
+ QVERIFY_EVENT(&cursorEvent);
+
+ // selection
+ lineEdit->setSelection(2, 4);
+
+ QAccessibleTextSelectionEvent sel(2, 2+4, lineEdit);
+ QVERIFY_EVENT(&sel);
+
+ lineEdit->selectAll();
+ sel.setSelection(0, lineEdit->text().length());
+ sel.setCursorPosition(lineEdit->text().length());
+ QVERIFY_EVENT(&sel);
+
+ lineEdit->setSelection(10, -4);
+ QCOMPARE(lineEdit->cursorPosition(), 6);
+ QAccessibleTextSelectionEvent sel2(6, 10, lineEdit);
+ sel2.setCursorPosition(6);
+ QVERIFY_EVENT(&sel2);
+
+ lineEdit->deselect();
+ QAccessibleTextSelectionEvent sel3(-1, -1, lineEdit);
+ sel3.setCursorPosition(6);
+ QVERIFY_EVENT(&sel3);
+
+ // editing
+ lineEdit->clear();
+ // FIXME: improve redundant updates
+ QAccessibleTextRemoveEvent remove(0, text, lineEdit);
+ QVERIFY_EVENT(&remove);
+
+ QAccessibleTextSelectionEvent noSel(-1, -1, lineEdit);
+ QVERIFY_EVENT(&noSel);
+ QAccessibleTextCursorEvent cursor(0, lineEdit);
+ QVERIFY_EVENT(&cursor);
+
+ lineEdit->setText("foo");
+ qDebug() << QTestAccessibility::events();
+ cursorEvent.setCursorPosition(3);
+ QVERIFY_EVENT(&cursorEvent);
+
+ QAccessibleTextInsertEvent e(0, "foo", lineEdit);
+ QVERIFY(QTestAccessibility::containsEvent(&e));
+
+ lineEdit->setText("bar");
+ QAccessibleTextUpdateEvent update(0, "foo", "bar", lineEdit);
+ QVERIFY(QTestAccessibility::containsEvent(&update));
+
+// QTestEventList keys;
+// keys.addKeyClick('D');
+// keys.addKeyClick('E');
+// keys.addKeyClick(Qt::Key_Left);
+// keys.addKeyClick(Qt::Key_Left);
+// keys.addKeyClick('C');
+// keys.addKeyClick('O');
+// keys.simulate(lineEdit);
+// FIXME: Test key press events...
+ }
delete toplevel;
QTestAccessibility::clearEvents();
}