aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquickaccessible/data/hittest.qml1
-rw-r--r--tests/auto/quick/qquickaccessible/data/ignored.qml127
-rw-r--r--tests/auto/quick/qquickaccessible/qquickaccessible.pro9
-rw-r--r--tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp33
4 files changed, 166 insertions, 4 deletions
diff --git a/tests/auto/quick/qquickaccessible/data/hittest.qml b/tests/auto/quick/qquickaccessible/data/hittest.qml
index 97eb6013a1..f081f5476e 100644
--- a/tests/auto/quick/qquickaccessible/data/hittest.qml
+++ b/tests/auto/quick/qquickaccessible/data/hittest.qml
@@ -41,6 +41,7 @@ Rectangle {
height: 480
color: "white"
Accessible.name: "root"
+ Accessible.role: Accessible.Client
Rectangle {
id: header
color: "#c0c0c0"
diff --git a/tests/auto/quick/qquickaccessible/data/ignored.qml b/tests/auto/quick/qquickaccessible/data/ignored.qml
new file mode 100644
index 0000000000..1caf6ccb56
--- /dev/null
+++ b/tests/auto/quick/qquickaccessible/data/ignored.qml
@@ -0,0 +1,127 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the QtQml module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+
+import QtQuick 2.0
+import "widgets"
+
+
+Rectangle {
+ id: page
+ width: 640
+ height: 480
+ function col(str) {
+ return Qt.hsla((str.charCodeAt(0)-65)/9, 1.0, 0.5, 1)
+ }
+ color: col(Accessible.name)
+ Accessible.name: "A"
+ Accessible.role: Accessible.StaticText
+
+ Rectangle {
+ id: b
+ width: 20
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ color: col(Accessible.name)
+ Accessible.name: "B"
+ Accessible.role: Accessible.StaticText
+ }
+
+ Rectangle {
+ x: 20
+ width: 80
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ color: col(Accessible.name)
+ Accessible.ignored: true
+ Accessible.name: "C"
+ Accessible.role: Accessible.StaticText
+
+ Rectangle {
+ width: 20
+ color: col(Accessible.name)
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ Accessible.name: "E"
+ Accessible.role: Accessible.StaticText
+ }
+
+ Rectangle {
+ x: 20
+ width: 20
+ color: col(Accessible.name)
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ Accessible.name: "F"
+ Accessible.role: Accessible.StaticText
+ }
+
+ Rectangle {
+ x: 40
+ width: 20
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ color: col(Accessible.name)
+ Accessible.ignored: true
+ Accessible.name: "G"
+ Accessible.role: Accessible.StaticText
+ Rectangle {
+ width: 20
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ color: col(Accessible.name)
+ Accessible.name: "I"
+ Accessible.role: Accessible.StaticText
+ }
+ }
+ Rectangle {
+ x: 60
+ width: 20
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ color: col(Accessible.name)
+ Accessible.name: "H"
+ Accessible.role: Accessible.StaticText
+ }
+ }
+
+ Rectangle {
+ x: 100
+ width: 20
+ height: parent.height/2
+ anchors.verticalCenter: parent.verticalCenter
+ color: col(Accessible.name)
+ Accessible.name: "D"
+ Accessible.role: Accessible.StaticText
+ }
+}
diff --git a/tests/auto/quick/qquickaccessible/qquickaccessible.pro b/tests/auto/quick/qquickaccessible/qquickaccessible.pro
index 99c3834147..bdbe2e3fb4 100644
--- a/tests/auto/quick/qquickaccessible/qquickaccessible.pro
+++ b/tests/auto/quick/qquickaccessible/qquickaccessible.pro
@@ -10,10 +10,11 @@ include (../../shared/util.pri)
TESTDATA = data/*
-OTHER_FILES += data/checkbuttons.qml
-OTHER_FILES += data/hittest.qml
-OTHER_FILES += data/pushbutton.qml
-OTHER_FILES += data/statictext.qml
+OTHER_FILES += data/checkbuttons.qml \
+ data/hittest.qml \
+ data/pushbutton.qml \
+ data/statictext.qml \
+ data/ignored.qml \
CONFIG += parallel_test
diff --git a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp
index c514f96d24..921c81ae89 100644
--- a/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp
+++ b/tests/auto/quick/qquickaccessible/tst_qquickaccessible.cpp
@@ -106,6 +106,7 @@ private slots:
void basicPropertiesTest();
void hitTest();
void checkableTest();
+ void ignoredTest();
};
tst_QQuickAccessible::tst_QQuickAccessible()
@@ -456,6 +457,38 @@ void tst_QQuickAccessible::checkableTest()
QTestAccessibility::clearEvents();
}
+void tst_QQuickAccessible::ignoredTest()
+{
+ QScopedPointer<QQuickView> window(new QQuickView());
+ window->setSource(testFileUrl("ignored.qml"));
+ window->show();
+ window->requestActivate();
+ QVERIFY(QTest::qWaitForWindowActive(window.data()));
+
+ QQuickItem *contentItem = window->contentItem();
+ QVERIFY(contentItem);
+ QQuickItem *rootItem = contentItem->childItems().first();
+ QVERIFY(rootItem);
+
+ // the window becomes active
+ QAccessible::State activatedChange;
+ activatedChange.active = true;
+
+ QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(window.data());
+ QVERIFY(iface);
+ QAccessibleInterface *rectangleA = iface->child(0);
+
+ QCOMPARE(rectangleA->role(), QAccessible::StaticText);
+ QCOMPARE(rectangleA->text(QAccessible::Name), QLatin1String("A"));
+ static const char *expected = "BEFIHD";
+ // check if node "C" and "G" is skipped and that the order is as expected.
+ for (int i = 0; i < rectangleA->childCount(); ++i) {
+ QAccessibleInterface *child = rectangleA->child(i);
+ QCOMPARE(child->text(QAccessible::Name), QString(QLatin1Char(expected[i])));
+ }
+ QTestAccessibility::clearEvents();
+}
+
QTEST_MAIN(tst_QQuickAccessible)
#include "tst_qquickaccessible.moc"