diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-10-13 00:01:17 +0200 |
---|---|---|
committer | Mitch Curtis <mitch.curtis@theqtcompany.com> | 2015-10-13 10:17:31 +0000 |
commit | d6715402095508ec750ecdc6e886610a6c9872e3 (patch) | |
tree | 82c8e5bef890de467f84ba166ff51d8941c49f7b /tests/auto/applicationwindow | |
parent | cf761c2571bab871eb890c5825a944e209ae46d8 (diff) |
Enable tst_applicationwindow
The issue was fixed by 2f902694656d67d671d9a8616060d598a478e7b7.
Change-Id: I5f4cb0ca8d968ce02f7e9e36070e34b3d887e9c0
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'tests/auto/applicationwindow')
-rw-r--r-- | tests/auto/applicationwindow/tst_applicationwindow.cpp | 324 |
1 files changed, 160 insertions, 164 deletions
diff --git a/tests/auto/applicationwindow/tst_applicationwindow.cpp b/tests/auto/applicationwindow/tst_applicationwindow.cpp index bdb55ce7..e654437d 100644 --- a/tests/auto/applicationwindow/tst_applicationwindow.cpp +++ b/tests/auto/applicationwindow/tst_applicationwindow.cpp @@ -52,173 +52,169 @@ class tst_applicationwindow : public QQmlDataTest public: private slots: - // TODO: tests fail if a couple have already run. stack trace points to - // QQuickThemeData construction (possibly something to do with it being - // global static?) commenting out color: Theme.backgroundColor in - // ApplicationWindow.qml is a workaround. -// void qmlCreation(); -// void activeFocusOnTab1(); -// void activeFocusOnTab2(); -// void defaultFocus(); + void qmlCreation(); + void activeFocusOnTab1(); + void activeFocusOnTab2(); + void defaultFocus(); void implicitFill(); }; -//void tst_applicationwindow::qmlCreation() -//{ -// QQmlEngine engine; -// QQmlComponent component(&engine); -// component.loadUrl(testFileUrl("basicapplicationwindow.qml")); -// QObject* created = component.create(); -// QScopedPointer<QObject> cleanup(created); -// QVERIFY(created); - -// QQuickWindow* window = qobject_cast<QQuickWindow*>(created); -// QVERIFY(window); -// QVERIFY(!window->isVisible()); - -// QCOMPARE(created->property("title"), QVariant("Test Application Window")); - -// QQuickItem* statusBar = qvariant_cast<QQuickItem*>(created->property("statusBar")); -// QVERIFY(!statusBar); - -// QQuickItem* header = qvariant_cast<QQuickItem*>(created->property("header")); -// QVERIFY(!header); - -// QQuickItem* footer = qvariant_cast<QQuickItem*>(created->property("footer")); -// QVERIFY(!footer); -//} - -//void tst_applicationwindow::activeFocusOnTab1() -//{ -// QQmlEngine engine; -// QQmlComponent component(&engine); -// component.loadUrl(testFileUrl("activefocusontab.qml")); -// QObject* created = component.create(); -// QScopedPointer<QObject> cleanup(created); -// QVERIFY(created); - -// QQuickWindow* window = qobject_cast<QQuickWindow*>(created); -// QVERIFY(window); -// window->show(); -// window->requestActivate(); -// QVERIFY(QTest::qWaitForWindowActive(window)); -// QVERIFY(QGuiApplication::focusWindow() == window); - -// QQuickItem* contentItem = window->contentItem(); -// QVERIFY(contentItem); -// QVERIFY(contentItem->hasActiveFocus()); - -// QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub1"); -// QVERIFY(item); -// QVERIFY(!item->hasActiveFocus()); - -// // Tab: contentItem->sub1 -// QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1); -// QGuiApplication::sendEvent(window, &key); -// QVERIFY(key.isAccepted()); - -// item = findItem<QQuickItem>(window->contentItem(), "sub1"); -// QVERIFY(item); -// QVERIFY(item->hasActiveFocus()); - -// // Tab: sub1->sub2 -// key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1); -// QGuiApplication::sendEvent(window, &key); -// QVERIFY(key.isAccepted()); - -// item = findItem<QQuickItem>(window->contentItem(), "sub2"); -// QVERIFY(item); -// QVERIFY(item->hasActiveFocus()); - -// // Tab: sub2->sub1 -// key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1); -// QGuiApplication::sendEvent(window, &key); -// QVERIFY(key.isAccepted()); - -// item = findItem<QQuickItem>(window->contentItem(), "sub1"); -// QVERIFY(item); -// QVERIFY(item->hasActiveFocus()); -//} - -//void tst_applicationwindow::activeFocusOnTab2() -//{ -// QQmlEngine engine; -// QQmlComponent component(&engine); -// component.loadUrl(testFileUrl("activefocusontab.qml")); -// QObject* created = component.create(); -// QScopedPointer<QObject> cleanup(created); -// QVERIFY(created); - -// QQuickWindow* window = qobject_cast<QQuickWindow*>(created); -// QVERIFY(window); -// window->show(); -// window->requestActivate(); -// QVERIFY(QTest::qWaitForWindowActive(window)); -// QVERIFY(QGuiApplication::focusWindow() == window); - -// QQuickItem* contentItem = window->contentItem(); -// QVERIFY(contentItem); -// QVERIFY(contentItem->hasActiveFocus()); - -// QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub2"); -// QVERIFY(item); -// QVERIFY(!item->hasActiveFocus()); - -// // BackTab: contentItem->sub2 -// QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1); -// QGuiApplication::sendEvent(window, &key); -// QVERIFY(key.isAccepted()); - -// item = findItem<QQuickItem>(window->contentItem(), "sub2"); -// QVERIFY(item); -// QVERIFY(item->hasActiveFocus()); - -// // BackTab: sub2->sub1 -// key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1); -// QGuiApplication::sendEvent(window, &key); -// QVERIFY(key.isAccepted()); - -// item = findItem<QQuickItem>(window->contentItem(), "sub1"); -// QVERIFY(item); -// QVERIFY(item->hasActiveFocus()); - -// // BackTab: sub1->sub2 -// key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1); -// QGuiApplication::sendEvent(window, &key); -// QVERIFY(key.isAccepted()); - -// item = findItem<QQuickItem>(window->contentItem(), "sub2"); -// QVERIFY(item); -// QVERIFY(item->hasActiveFocus()); -//} - -//void tst_applicationwindow::defaultFocus() -//{ -// QQmlEngine engine; -// QQmlComponent component(&engine); -// component.loadUrl(testFileUrl("defaultFocus.qml")); -// QObject* created = component.create(); -// QScopedPointer<QObject> cleanup(created); -// Q_UNUSED(cleanup); -// QVERIFY(created); - -// QQuickWindow* window = qobject_cast<QQuickWindow*>(created); -// QVERIFY(window); -// window->show(); -// window->requestActivate(); -// QVERIFY(QTest::qWaitForWindowActive(window)); -// QVERIFY(QGuiApplication::focusWindow() == window); - -// QQuickItem* contentItem = window->contentItem(); -// QVERIFY(contentItem); -// QVERIFY(contentItem->hasActiveFocus()); - -// // A single item in an ApplicationWindow with focus: true should receive focus. -// QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "item"); -// QVERIFY(item); -// QVERIFY(item->hasFocus()); -// QVERIFY(item->hasActiveFocus()); -//} +void tst_applicationwindow::qmlCreation() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("basicapplicationwindow.qml")); + QObject* created = component.create(); + QScopedPointer<QObject> cleanup(created); + QVERIFY(created); + + QQuickWindow* window = qobject_cast<QQuickWindow*>(created); + QVERIFY(window); + QVERIFY(!window->isVisible()); + + QCOMPARE(created->property("title"), QVariant("Test Application Window")); + + QQuickItem* statusBar = qvariant_cast<QQuickItem*>(created->property("statusBar")); + QVERIFY(!statusBar); + + QQuickItem* header = qvariant_cast<QQuickItem*>(created->property("header")); + QVERIFY(!header); + + QQuickItem* footer = qvariant_cast<QQuickItem*>(created->property("footer")); + QVERIFY(!footer); +} + +void tst_applicationwindow::activeFocusOnTab1() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("activefocusontab.qml")); + QObject* created = component.create(); + QScopedPointer<QObject> cleanup(created); + QVERIFY(created); + + QQuickWindow* window = qobject_cast<QQuickWindow*>(created); + QVERIFY(window); + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window)); + QVERIFY(QGuiApplication::focusWindow() == window); + + QQuickItem* contentItem = window->contentItem(); + QVERIFY(contentItem); + QVERIFY(contentItem->hasActiveFocus()); + + QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub1"); + QVERIFY(item); + QVERIFY(!item->hasActiveFocus()); + + // Tab: contentItem->sub1 + QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1); + QGuiApplication::sendEvent(window, &key); + QVERIFY(key.isAccepted()); + + item = findItem<QQuickItem>(window->contentItem(), "sub1"); + QVERIFY(item); + QVERIFY(item->hasActiveFocus()); + + // Tab: sub1->sub2 + key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1); + QGuiApplication::sendEvent(window, &key); + QVERIFY(key.isAccepted()); + + item = findItem<QQuickItem>(window->contentItem(), "sub2"); + QVERIFY(item); + QVERIFY(item->hasActiveFocus()); + + // Tab: sub2->sub1 + key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1); + QGuiApplication::sendEvent(window, &key); + QVERIFY(key.isAccepted()); + + item = findItem<QQuickItem>(window->contentItem(), "sub1"); + QVERIFY(item); + QVERIFY(item->hasActiveFocus()); +} + +void tst_applicationwindow::activeFocusOnTab2() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("activefocusontab.qml")); + QObject* created = component.create(); + QScopedPointer<QObject> cleanup(created); + QVERIFY(created); + + QQuickWindow* window = qobject_cast<QQuickWindow*>(created); + QVERIFY(window); + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window)); + QVERIFY(QGuiApplication::focusWindow() == window); + + QQuickItem* contentItem = window->contentItem(); + QVERIFY(contentItem); + QVERIFY(contentItem->hasActiveFocus()); + + QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "sub2"); + QVERIFY(item); + QVERIFY(!item->hasActiveFocus()); + + // BackTab: contentItem->sub2 + QKeyEvent key(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1); + QGuiApplication::sendEvent(window, &key); + QVERIFY(key.isAccepted()); + + item = findItem<QQuickItem>(window->contentItem(), "sub2"); + QVERIFY(item); + QVERIFY(item->hasActiveFocus()); + + // BackTab: sub2->sub1 + key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1); + QGuiApplication::sendEvent(window, &key); + QVERIFY(key.isAccepted()); + + item = findItem<QQuickItem>(window->contentItem(), "sub1"); + QVERIFY(item); + QVERIFY(item->hasActiveFocus()); + + // BackTab: sub1->sub2 + key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::ShiftModifier, "", false, 1); + QGuiApplication::sendEvent(window, &key); + QVERIFY(key.isAccepted()); + + item = findItem<QQuickItem>(window->contentItem(), "sub2"); + QVERIFY(item); + QVERIFY(item->hasActiveFocus()); +} + +void tst_applicationwindow::defaultFocus() +{ + QQmlEngine engine; + QQmlComponent component(&engine); + component.loadUrl(testFileUrl("defaultFocus.qml")); + QObject* created = component.create(); + QScopedPointer<QObject> cleanup(created); + Q_UNUSED(cleanup); + QVERIFY(created); + + QQuickWindow* window = qobject_cast<QQuickWindow*>(created); + QVERIFY(window); + window->show(); + window->requestActivate(); + QVERIFY(QTest::qWaitForWindowActive(window)); + QVERIFY(QGuiApplication::focusWindow() == window); + + QQuickItem* contentItem = window->contentItem(); + QVERIFY(contentItem); + QVERIFY(contentItem->hasActiveFocus()); + + // A single item in an ApplicationWindow with focus: true should receive focus. + QQuickItem* item = findItem<QQuickItem>(window->contentItem(), "item"); + QVERIFY(item); + QVERIFY(item->hasFocus()); + QVERIFY(item->hasActiveFocus()); +} void tst_applicationwindow::implicitFill() { |