From: Damian Jansen Date: Mon, 24 Oct 2011 05:50:38 +0000 (+1000) Subject: Test for changing font via states X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=31d34d98f192035c42bd1d1c07bf6e297da76220;p=konrad%2Fqtdeclarative.git Test for changing font via states Change-Id: I1bc4bfefb5b4892be53b261d65a50a0cfd5a7d00 Reviewed-by: Yann Bodson --- diff --git a/tests/auto/declarative/qdeclarativefontloader/data/qtbug-20268.qml b/tests/auto/declarative/qdeclarativefontloader/data/qtbug-20268.qml new file mode 100644 index 0000000..0eafdfa --- /dev/null +++ b/tests/auto/declarative/qdeclarativefontloader/data/qtbug-20268.qml @@ -0,0 +1,27 @@ +import QtQuick 2.0 + +Rectangle { + id: test + property variant fontloader: fontloaderelement + height: 100; width: 100 + property bool usename: false + property int statenum: 1 + property alias name: fontloaderelement.name + property alias source: fontloaderelement.source + property alias status: fontloaderelement.status + + FontLoader { + id: fontloaderelement + } + + states: [ + State { name: "start"; when: !usename + PropertyChanges { target: fontloaderelement; source: "tarzeau_ocr_a.ttf" } + }, + State { name: "changefont"; when: usename + PropertyChanges { target: fontloaderelement; name: "Tahoma" } + } + ] + + Text { id: textelement; text: fontloaderelement.name; color: "black" } +} diff --git a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp index 67a040d..9831ac1 100644 --- a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp +++ b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp @@ -46,6 +46,8 @@ #include #include "../shared/util.h" #include "../../declarative/shared/testhttpserver.h" +#include +#include #define SERVER_PORT 14448 @@ -65,6 +67,7 @@ private slots: void redirWebFont(); void failWebFont(); void changeFont(); + void changeFontSourceViaState(); private: QDeclarativeEngine engine; @@ -220,6 +223,26 @@ void tst_qdeclarativefontloader::changeFont() QTRY_COMPARE(fontObject->name(), QString("Daniel")); } +void tst_qdeclarativefontloader::changeFontSourceViaState() +{ + QQuickView canvas(QUrl::fromLocalFile(TESTDATA("qtbug-20268.qml"))); + canvas.show(); + canvas.requestActivateWindow(); + QTest::qWaitForWindowShown(&canvas); + QTRY_COMPARE(&canvas, qGuiApp->focusWindow()); + + QDeclarativeFontLoader *fontObject = qobject_cast(qvariant_cast(canvas.rootObject()->property("fontloader"))); + QVERIFY(fontObject != 0); + QTRY_VERIFY(fontObject->status() == QDeclarativeFontLoader::Ready); + QVERIFY(fontObject->source() != QUrl("")); + QTRY_COMPARE(fontObject->name(), QString("OCRA")); + + canvas.rootObject()->setProperty("usename", true); + QEXPECT_FAIL("", "QTBUG-20268", Abort); + QTRY_VERIFY(fontObject->status() == QDeclarativeFontLoader::Ready); + QCOMPARE(canvas.rootObject()->property("name").toString(), QString("Tahoma")); +} + QTEST_MAIN(tst_qdeclarativefontloader) #include "tst_qdeclarativefontloader.moc"