summaryrefslogtreecommitdiff
path: root/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@digia.com>2012-09-24 12:17:45 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2012-09-24 12:21:30 +0200
commit3c42ca4138d6ba01ace3974437039f2a1cf790ff (patch)
tree123ccc742ce1313eabb05ef331fe006c09e8e096 /tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
parenta81389356edf2b0d1281930ed4d2d6da91e5dede (diff)
downloadqt-creator-3c42ca4138d6ba01ace3974437039f2a1cf790ff.tar.gz
Tests.QmlDesigner: adding testQtQuick20BasicRectangle
Basic test for Qt Quick 2.0. This time using Rectangle (different prototype chain). Change-Id: I5500fa5d1a6e2d049404944be81f0b5657cefe3c Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp')
-rw-r--r--tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp108
1 files changed, 108 insertions, 0 deletions
diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
index b2f7a4f169..10454482b0 100644
--- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp
@@ -1322,6 +1322,114 @@ void tst_TestCore::testBasicStates()
// QCOMPARE(rect2Instance.property("x").toInt(), 0);
}
+void tst_TestCore::testBasicStatesQtQuick20()
+{
+ char qmlString[] = "import QtQuick 2.0\n"
+ "Rectangle {\n"
+ "id: root;\n"
+ "Rectangle {\n"
+ "id: rect1;\n"
+ "}\n"
+ "Rectangle {\n"
+ "id: rect2;\n"
+ "}\n"
+ "states: [\n"
+ "State {\n"
+ "name: \"state1\"\n"
+ "PropertyChanges {\n"
+ "target: rect1\n"
+ "}\n"
+ "PropertyChanges {\n"
+ "target: rect2\n"
+ "}\n"
+ "}\n"
+ ","
+ "State {\n"
+ "name: \"state2\"\n"
+ "PropertyChanges {\n"
+ "target: rect1\n"
+ "}\n"
+ "PropertyChanges {\n"
+ "target: rect2;\n"
+ "x: 10;\n"
+ "}\n"
+ "}\n"
+ "]\n"
+ "}\n";
+
+ Exception::setShouldAssert(true);
+
+ QPlainTextEdit textEdit;
+ textEdit.setPlainText(qmlString);
+ NotIndentingTextEditModifier textModifier(&textEdit);
+
+ QScopedPointer<Model> model(Model::create("QtQuick.Item"));
+ QVERIFY(model.data());
+
+ QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView());
+ testRewriterView->setTextModifier(&textModifier);
+ model->attachView(testRewriterView.data());
+
+ ModelNode rootModelNode(testRewriterView->rootModelNode());
+ QVERIFY(rootModelNode.isValid());
+ QCOMPARE(rootModelNode.type(), QString("QtQuick.Rectangle"));
+ QCOMPARE(rootModelNode.majorVersion(), 2);
+ QCOMPARE(rootModelNode.majorQtQuickVersion(), 2);
+
+ qDebug() << rootModelNode.nodeListProperty("states").toModelNodeList().first().metaInfo().majorVersion();
+ qDebug() << rootModelNode.nodeListProperty("states").toModelNodeList().first().metaInfo().typeName();
+
+ QSKIP("No qml2puppet", SkipAll);
+
+ QScopedPointer<TestView> view(new TestView(model.data()));
+ QVERIFY(view.data());
+ model->attachView(view.data());
+
+ QVERIFY(rootModelNode.hasProperty("data"));
+
+ QVERIFY(rootModelNode.property("data").isNodeListProperty());
+
+ QCOMPARE(rootModelNode.nodeListProperty("data").toModelNodeList().count(), 2);
+
+ ModelNode rect1 = rootModelNode.nodeListProperty("data").toModelNodeList().first();
+ ModelNode rect2 = rootModelNode.nodeListProperty("data").toModelNodeList().last();
+
+ QVERIFY(QmlItemNode(rect1).isValid());
+ QVERIFY(QmlItemNode(rect2).isValid());
+
+ QVERIFY(QmlItemNode(rootModelNode).isValid());
+
+ QCOMPARE(QmlItemNode(rootModelNode).states().allStates().count(), 2);
+ QCOMPARE(QmlItemNode(rootModelNode).states().names().count(), 2);
+ QCOMPARE(QmlItemNode(rootModelNode).states().names().first(), QString("state1"));
+ QCOMPARE(QmlItemNode(rootModelNode).states().names().last(), QString("state2"));
+
+ //
+ // QmlModelState API tests
+ //
+ QmlModelState state1 = QmlItemNode(rootModelNode).states().state("state1");
+ QmlModelState state2 = QmlItemNode(rootModelNode).states().state("state2");
+
+ QVERIFY(state1.isValid());
+ QVERIFY(state2.isValid());
+
+ QCOMPARE(state1.propertyChanges().count(), 2);
+ QCOMPARE(state2.propertyChanges().count(), 2);
+
+ QVERIFY(!state1.hasPropertyChanges(rootModelNode));
+
+ QVERIFY(state1.propertyChanges(rect1).isValid());
+ QVERIFY(state1.propertyChanges(rect2).isValid());
+
+ state1.propertyChanges(rect2).modelNode().hasProperty("x");
+
+ QCOMPARE(QmlItemNode(rect1).allAffectingStates().count(), 2);
+ QCOMPARE(QmlItemNode(rect2).allAffectingStates().count(), 2);
+ QCOMPARE(QmlItemNode(rootModelNode).allAffectingStates().count(), 0);
+ QCOMPARE(QmlItemNode(rect1).allAffectingStatesOperations().count(), 2);
+ QCOMPARE(QmlItemNode(rect2).allAffectingStatesOperations().count(), 2);
+}
+
void tst_TestCore::testModelBasicOperations()
{
QScopedPointer<Model> model(createModel("QtQuick.Flipable"));