tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
child 37 758a864f9613
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -48,6 +48,10 @@
 #include <private/qdeclarativetext_p.h>
 #include <QtDeclarative/private/qdeclarativefocusscope_p.h>
 
+#ifdef Q_OS_SYMBIAN
+// In Symbian OS test data is located in applications private dir
+#define SRCDIR "."
+#endif
 
 class tst_qdeclarativefocusscope : public QObject
 {
@@ -64,6 +68,7 @@
     void noFocus();
     void textEdit();
     void forceFocus();
+    void noParentFocus();
 };
 
 /*
@@ -93,7 +98,7 @@
     QDeclarativeView *view = new QDeclarativeView;
     view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test.qml"));
 
-    QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+    QDeclarativeFocusScope *item0 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item0"));
     QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
     QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
     QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
@@ -113,22 +118,22 @@
 
     QVERIFY(view->hasFocus());
     QVERIFY(view->scene()->hasFocus());
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == true);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == true);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Right);
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == true);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == true);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Down);
-    QVERIFY(item0->wantsFocus() == false);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == true);
+    QVERIFY(item0->hasActiveFocus() == false);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == true);
 
     delete view;
 }
@@ -161,16 +166,11 @@
     QVERIFY(view->hasFocus());
     QVERIFY(view->scene()->hasFocus());
 
-    QVERIFY(item1->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->wantsFocus() == true);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->wantsFocus() == true);
-    QVERIFY(item3->hasFocus() == false);
-    QVERIFY(item4->wantsFocus() == true);
-    QVERIFY(item4->hasFocus() == false);
-    QVERIFY(item5->wantsFocus() == true);
-    QVERIFY(item5->hasFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == true);
+    QVERIFY(item2->hasActiveFocus() == true);
+    QVERIFY(item3->hasActiveFocus() == true);
+    QVERIFY(item4->hasActiveFocus() == true);
+    QVERIFY(item5->hasActiveFocus() == true);
     delete view;
 }
 
@@ -199,22 +199,22 @@
 
     QVERIFY(view->hasFocus());
     QVERIFY(view->scene()->hasFocus());
-    QVERIFY(item0->wantsFocus() == false);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == false);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Right);
-    QVERIFY(item0->wantsFocus() == false);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == false);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Down);
-    QVERIFY(item0->wantsFocus() == false);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == false);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     delete view;
 }
@@ -224,7 +224,7 @@
     QDeclarativeView *view = new QDeclarativeView;
     view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test5.qml"));
 
-    QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+    QDeclarativeFocusScope *item0 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item0"));
     QDeclarativeTextEdit *item1 = findItem<QDeclarativeTextEdit>(view->rootObject(), QLatin1String("item1"));
     QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
     QDeclarativeTextEdit *item3 = findItem<QDeclarativeTextEdit>(view->rootObject(), QLatin1String("item3"));
@@ -244,32 +244,32 @@
 
     QVERIFY(view->hasFocus());
     QVERIFY(view->scene()->hasFocus());
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == true);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == true);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Right);
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == true);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == true);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Right);
     QTest::keyClick(view, Qt::Key_Right);
     QTest::keyClick(view, Qt::Key_Right);
     QTest::keyClick(view, Qt::Key_Right);
     QTest::keyClick(view, Qt::Key_Right);
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == true);
-    QVERIFY(item3->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == true);
+    QVERIFY(item3->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_Down);
-    QVERIFY(item0->wantsFocus() == false);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->hasFocus() == true);
+    QVERIFY(item0->hasActiveFocus() == false);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == true);
 
     delete view;
 }
@@ -279,10 +279,10 @@
     QDeclarativeView *view = new QDeclarativeView;
     view->setSource(QUrl::fromLocalFile(SRCDIR "/data/forcefocus.qml"));
 
-    QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+    QDeclarativeFocusScope *item0 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item0"));
     QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
     QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
-    QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+    QDeclarativeFocusScope *item3 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item3"));
     QDeclarativeRectangle *item4 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item4"));
     QDeclarativeRectangle *item5 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item5"));
     QVERIFY(item0 != 0);
@@ -303,32 +303,46 @@
 
     QVERIFY(view->hasFocus());
     QVERIFY(view->scene()->hasFocus());
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == true);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->wantsFocus() == false);
-    QVERIFY(item4->hasFocus() == false);
-    QVERIFY(item5->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == true);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
+    QVERIFY(item4->hasActiveFocus() == false);
+    QVERIFY(item5->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_4);
-    QVERIFY(item0->wantsFocus() == true);
-    QVERIFY(item1->hasFocus() == true);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->wantsFocus() == false);
-    QVERIFY(item4->hasFocus() == false);
-    QVERIFY(item5->hasFocus() == false);
+    QVERIFY(item0->hasActiveFocus() == true);
+    QVERIFY(item1->hasActiveFocus() == true);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == false);
+    QVERIFY(item4->hasActiveFocus() == false);
+    QVERIFY(item5->hasActiveFocus() == false);
 
     QTest::keyClick(view, Qt::Key_5);
-    QVERIFY(item0->wantsFocus() == false);
-    QVERIFY(item1->hasFocus() == false);
-    QVERIFY(item2->hasFocus() == false);
-    QVERIFY(item3->wantsFocus() == true);
-    QVERIFY(item4->hasFocus() == false);
-    QVERIFY(item5->hasFocus() == true);
+    QVERIFY(item0->hasActiveFocus() == false);
+    QVERIFY(item1->hasActiveFocus() == false);
+    QVERIFY(item2->hasActiveFocus() == false);
+    QVERIFY(item3->hasActiveFocus() == true);
+    QVERIFY(item4->hasActiveFocus() == false);
+    QVERIFY(item5->hasActiveFocus() == true);
 
     delete view;
 }
 
+void tst_qdeclarativefocusscope::noParentFocus()
+{
+    QDeclarativeView *view = new QDeclarativeView;
+    view->setSource(QUrl::fromLocalFile(SRCDIR "/data/chain.qml"));
+    QVERIFY(view->rootObject());
+
+    QVERIFY(view->rootObject()->property("focus1") == true);
+    QVERIFY(view->rootObject()->property("focus2") == false);
+    QVERIFY(view->rootObject()->property("focus3") == true);
+    QVERIFY(view->rootObject()->property("focus4") == true);
+    QVERIFY(view->rootObject()->property("focus5") == true);
+
+    delete view;
+}
 
 QTEST_MAIN(tst_qdeclarativefocusscope)