diff -r ef0373b55136 -r 758a864f9613 tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp --- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp Fri Sep 17 08:34:18 2010 +0300 +++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp Mon Oct 04 01:19:32 2010 +0300 @@ -139,6 +139,7 @@ void urlResolution(); void unnamedWhen(); void returnToBase(); + void extendsBug(); }; void tst_qdeclarativestates::initTestCase() @@ -1186,6 +1187,21 @@ QCOMPARE(rect->property("stateString").toString(), QLatin1String("originalState")); } +//QTBUG-12559 +void tst_qdeclarativestates::extendsBug() +{ + QDeclarativeEngine engine; + + QDeclarativeComponent c(&engine, SRCDIR "/data/extendsBug.qml"); + QDeclarativeRectangle *rect = qobject_cast(c.create()); + QVERIFY(rect != 0); + QDeclarativeItemPrivate *rectPrivate = QDeclarativeItemPrivate::get(rect); + QDeclarativeRectangle *greenRect = rect->findChild("greenRect"); + + rectPrivate->setState("b"); + QCOMPARE(greenRect->x(), qreal(100)); + QCOMPARE(greenRect->y(), qreal(100)); +} QTEST_MAIN(tst_qdeclarativestates)