aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qtquick2/qquickaccessible/tst_qquickaccessible.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qtquick2/qquickaccessible/tst_qquickaccessible.cpp')
-rw-r--r--tests/auto/qtquick2/qquickaccessible/tst_qquickaccessible.cpp410
1 files changed, 0 insertions, 410 deletions
diff --git a/tests/auto/qtquick2/qquickaccessible/tst_qquickaccessible.cpp b/tests/auto/qtquick2/qquickaccessible/tst_qquickaccessible.cpp
deleted file mode 100644
index 2e1c2b883c..0000000000
--- a/tests/auto/qtquick2/qquickaccessible/tst_qquickaccessible.cpp
+++ /dev/null
@@ -1,410 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the QtDeclarative module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-
-#include <QtTest/QtTest>
-#include "QtTest/qtestaccessible.h"
-
-#include <QtGui/qaccessible.h>
-
-#include <QtQuick/qquickview.h>
-#include <QtQuick/qquickitem.h>
-
-#include <QtDeclarative/qdeclarativeengine.h>
-#include <QtDeclarative/qdeclarativeproperty.h>
-#include <QtQuick/private/qquickaccessibleattached_p.h>
-
-#include "../../shared/util.h"
-
-
-typedef QSharedPointer<QAccessibleInterface> QAI;
-
-#define EXPECT(cond) \
- do { \
- if (!errorAt && !(cond)) { \
- errorAt = __LINE__; \
- qWarning("level: %d, middle: %d, role: %d (%s)", treelevel, middle, iface->role(), #cond); \
- } \
- } while (0)
-
-static int verifyHierarchy(QAccessibleInterface *iface)
-{
- int errorAt = 0;
- static int treelevel = 0; // for error diagnostics
- QAccessibleInterface *middleChild, *if2;
- middleChild = 0;
- ++treelevel;
- int middle = iface->childCount()/2 + 1;
- if (iface->childCount() >= 2) {
- middleChild = iface->child(middle - 1);
- }
- for (int i = 0; i < iface->childCount() && !errorAt; ++i) {
- if2 = iface->child(i);
- EXPECT(if2 != 0);
- // navigate Ancestor...
- QAccessibleInterface *parent = if2->parent();
- EXPECT(iface->object() == parent->object());
- delete parent;
-
- // verify children...
- if (!errorAt)
- errorAt = verifyHierarchy(if2);
- delete if2;
- }
- delete middleChild;
-
- --treelevel;
- return errorAt;
-}
-
-
-//TESTED_FILES=
-
-class tst_QQuickAccessible : public QDeclarativeDataTest
-{
- Q_OBJECT
-public:
- tst_QQuickAccessible();
- virtual ~tst_QQuickAccessible();
-
-private slots:
- void commonTests_data();
- void commonTests();
-
- void declarativeAttachedProperties();
- void basicPropertiesTest();
- void hitTest();
- void checkableTest();
-};
-
-tst_QQuickAccessible::tst_QQuickAccessible()
-{
-
-}
-
-tst_QQuickAccessible::~tst_QQuickAccessible()
-{
-
-}
-
-void tst_QQuickAccessible::commonTests_data()
-{
- QTest::addColumn<QString>("accessibleRoleFileName");
-
- QTest::newRow("StaticText") << SRCDIR "/data/statictext.qml";
- QTest::newRow("PushButton") << SRCDIR "/data/pushbutton.qml";
-}
-
-void tst_QQuickAccessible::commonTests()
-{
- QFETCH(QString, accessibleRoleFileName);
-
- qDebug() << "testing" << accessibleRoleFileName;
-
- QQuickView *view = new QQuickView();
-// view->setFixedSize(240,320);
- view->setSource(QUrl::fromLocalFile(accessibleRoleFileName));
- view->show();
-// view->setFocus();
- QVERIFY(view->rootObject() != 0);
-
- QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(view);
- QVERIFY(iface);
-
- delete iface;
- delete view;
-}
-
-
-
-QString eventName(const int ev)
-{
- switch (ev) {
- case 0x0001: return "SoundPlayed";
- case 0x0002: return "Alert";
- case 0x0003: return "ForegroundChanged";
- case 0x0004: return "MenuStart";
- case 0x0005: return "MenuEnd";
- case 0x0006: return "PopupMenuStart";
- case 0x0007: return "PopupMenuEnd";
- case 0x000C: return "ContextHelpStart";
- case 0x000D: return "ContextHelpEnd";
- case 0x000E: return "DragDropStart";
- case 0x000F: return "DragDropEnd";
- case 0x0010: return "DialogStart";
- case 0x0011: return "DialogEnd";
- case 0x0012: return "ScrollingStart";
- case 0x0013: return "ScrollingEnd";
- case 0x0018: return "MenuCommand";
- case 0x8000: return "ObjectCreated";
- case 0x8001: return "ObjectDestroyed";
- case 0x8002: return "ObjectShow";
- case 0x8003: return "ObjectHide";
- case 0x8004: return "ObjectReorder";
- case 0x8005: return "Focus";
- case 0x8006: return "Selection";
- case 0x8007: return "SelectionAdd";
- case 0x8008: return "SelectionRemove";
- case 0x8009: return "SelectionWithin";
- case 0x800A: return "StateChanged";
- case 0x800B: return "LocationChanged";
- case 0x800C: return "NameChanged";
- case 0x800D: return "DescriptionChanged";
- case 0x800E: return "ValueChanged";
- case 0x800F: return "ParentChanged";
- case 0x80A0: return "HelpChanged";
- case 0x80B0: return "DefaultActionChanged";
- case 0x80C0: return "AcceleratorChanged";
- default: return "Unknown Event";
- }
-}
-
-void tst_QQuickAccessible::declarativeAttachedProperties()
-{
- {
- QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine);
- component.setData("import QtQuick 2.0\nItem {\n"
- "}", QUrl());
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QObject *attachedObject = QQuickAccessibleAttached::attachedProperties(object);
- QCOMPARE(attachedObject, static_cast<QObject*>(0));
- delete object;
- }
-
- // Attached property
- {
- QObject parent;
- QQuickAccessibleAttached *attachedObj = new QQuickAccessibleAttached(&parent);
-
- attachedObj->name();
-
- QVariant pp = attachedObj->property("name");
- QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine);
- component.setData("import QtQuick 2.0\nItem {\n"
- "Accessible.role: Accessible.Button\n"
- "}", QUrl());
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QObject *attachedObject = QQuickAccessibleAttached::attachedProperties(object);
- QVERIFY(attachedObject);
- if (attachedObject) {
- QVariant p = attachedObject->property("role");
- QCOMPARE(p.isNull(), false);
- QCOMPARE(p.toInt(), int(QAccessible::PushButton));
- p = attachedObject->property("name");
- QCOMPARE(p.isNull(), true);
- p = attachedObject->property("description");
- QCOMPARE(p.isNull(), true);
- }
- delete object;
- }
-
- // Attached property
- {
- QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine);
- component.setData("import QtQuick 2.0\nItem {\n"
- "Accessible.role: Accessible.Button\n"
- "Accessible.name: \"Donald\"\n"
- "Accessible.description: \"Duck\"\n"
- "}", QUrl());
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QObject *attachedObject = QQuickAccessibleAttached::attachedProperties(object);
- QVERIFY(attachedObject);
- if (attachedObject) {
- QVariant p = attachedObject->property("role");
- QCOMPARE(p.isNull(), false);
- QCOMPARE(p.toInt(), int(QAccessible::PushButton));
- p = attachedObject->property("name");
- QCOMPARE(p.isNull(), false);
- QCOMPARE(p.toString(), QLatin1String("Donald"));
- p = attachedObject->property("description");
- QCOMPARE(p.isNull(), false);
- QCOMPARE(p.toString(), QLatin1String("Duck"));
- }
- delete object;
- }
-}
-
-
-void tst_QQuickAccessible::basicPropertiesTest()
-{
- QAI app = QAI(QAccessible::queryAccessibleInterface(qApp));
- QCOMPARE(app->childCount(), 0);
-
- QQuickView *canvas = new QQuickView();
- canvas->setSource(testFileUrl("statictext.qml"));
- canvas->show();
- QCOMPARE(app->childCount(), 1);
-
- QAI iface = QAI(QAccessible::queryAccessibleInterface(canvas));
- QVERIFY(iface.data());
- QCOMPARE(iface->childCount(), 1);
-
- QAI item = QAI(iface->child(0));
- QVERIFY(item.data());
- QCOMPARE(item->childCount(), 2);
- QCOMPARE(item->rect().size(), QSize(400, 400));
- QCOMPARE(item->role(), QAccessible::Pane);
- QCOMPARE(iface->indexOfChild(item.data()), 0);
-
- QAI text = QAI(item->child(0));
- QVERIFY(text.data());
- QCOMPARE(text->childCount(), 0);
-
- QCOMPARE(text->text(QAccessible::Name), QLatin1String("Hello Accessibility"));
- QCOMPARE(text->rect().size(), QSize(200, 50));
- QCOMPARE(text->rect().x(), item->rect().x() + 100);
- QCOMPARE(text->rect().y(), item->rect().y() + 20);
- QCOMPARE(text->role(), QAccessible::StaticText);
- QCOMPARE(item->indexOfChild(text.data()), 0);
-
- QAI text2 = QAI(item->child(1));
- QVERIFY(text2.data());
- QCOMPARE(text2->childCount(), 0);
-
- QCOMPARE(text2->text(QAccessible::Name), QLatin1String("The Hello 2 accessible text"));
- QCOMPARE(text2->rect().size(), QSize(100, 40));
- QCOMPARE(text2->rect().x(), item->rect().x() + 100);
- QCOMPARE(text2->rect().y(), item->rect().y() + 40);
- QCOMPARE(text2->role(), QAccessible::StaticText);
- QCOMPARE(item->indexOfChild(text2.data()), 1);
-
- QCOMPARE(iface->indexOfChild(text2.data()), -1);
- QCOMPARE(text2->indexOfChild(item.data()), -1);
-
- delete canvas;
-}
-
-QAI topLevelChildAt(QAccessibleInterface *iface, int x, int y)
-{
- QAI child = QAI(iface->childAt(x, y));
- if (!child)
- return QAI();
-
- QAI childOfChild;
- while (childOfChild = QAI(child->childAt(x, y))) {
- child = childOfChild;
- }
- return child;
-}
-
-void tst_QQuickAccessible::hitTest()
-{
- QQuickView *canvas = new QQuickView;
- canvas->setSource(testFileUrl("hittest.qml"));
- canvas->show();
-
- QAI iface = QAI(QAccessible::queryAccessibleInterface(canvas));
- QVERIFY(iface.data());
- QAI rootItem = QAI(iface->child(0));
- QRect rootRect = rootItem->rect();
-
- // hit the root item
- QAI itemHit(iface->childAt(rootRect.x() + 200, rootRect.y() + 50));
- QVERIFY(itemHit);
- QCOMPARE(rootRect, itemHit->rect());
-
- // hit rect1
- QAI rect1(rootItem->child(1));
- QRect rect1Rect = rect1->rect();
- itemHit = QAI(rootItem->childAt(rect1Rect.x() + 10, rect1Rect.y() + 10));
- QVERIFY(itemHit);
- QCOMPARE(rect1Rect, itemHit->rect());
- QCOMPARE(itemHit->text(QAccessible::Name), QLatin1String("rect1"));
-
- // should also work from top level (app)
- QAI app(QAccessible::queryAccessibleInterface(qApp));
- QAI itemHit2(topLevelChildAt(app.data(), rect1Rect.x() + 10, rect1Rect.y() + 10));
- QVERIFY(itemHit2);
- QCOMPARE(itemHit2->rect(), rect1Rect);
- QCOMPARE(itemHit2->text(QAccessible::Name), QLatin1String("rect1"));
-
- // hit rect201
- QAI rect2(rootItem->child(2));
- QAI rect20(rect2->child(1));
- QAI rect201(rect20->child(2));
- QVERIFY(rect201);
-
- QRect rect201Rect = rect201->rect();
- itemHit = QAI(iface->childAt(rect201Rect.x() + 20, rect201Rect.y() + 20));
- QVERIFY(itemHit);
- QCOMPARE(itemHit->rect(), rect201Rect);
- QCOMPARE(itemHit->text(QAccessible::Name), QLatin1String("rect201"));
-
- delete canvas;
-}
-
-void tst_QQuickAccessible::checkableTest()
-{
- QQuickView *canvas = new QQuickView();
- canvas->setSource(testFileUrl("checkbuttons.qml"));
- canvas->show();
-
- QAI iface = QAI(QAccessible::queryAccessibleInterface(canvas));
- QVERIFY(iface.data());
- QAI root = QAI(iface->child(0));
-
- QAI button1 = QAI(root->child(0));
- QCOMPARE(button1->role(), QAccessible::Button);
- QVERIFY(!(button1->state().checked));
- QAI button2 = QAI(root->child(1));
- QVERIFY(!(button2->state().checked));
- QAI button3 = QAI(root->child(2));
- QVERIFY(button3->state().checked);
-
- QAI checkBox1 = QAI(root->child(3));
- QCOMPARE(checkBox1->role(), QAccessible::CheckBox);
- QVERIFY((checkBox1->state().checked));
- QAI checkBox2 = QAI(root->child(4));
- QVERIFY(!(checkBox2->state().checked));
-}
-
-QTEST_MAIN(tst_QQuickAccessible)
-
-#include "tst_qquickaccessible.moc"