diff options
author | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2010-04-23 13:09:53 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2010-04-23 13:10:10 +0200 |
commit | 6b09a506ac3c84f84e3bceb05f2bfe8d86d9c81a (patch) | |
tree | 424159437f39f08c82b79781ddb9712d80047db4 /tests | |
parent | d086f76038e0abaf22e1c8e53f7bc64873d295a8 (diff) | |
download | qt-creator-6b09a506ac3c84f84e3bceb05f2bfe8d86d9c81a.tar.gz |
QmlDesigner: auto test for BAUHAUS-631
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/qml/qmldesigner/coretests/testcore.cpp | 118 | ||||
-rw-r--r-- | tests/auto/qml/qmldesigner/coretests/testcore.h | 1 |
2 files changed, 119 insertions, 0 deletions
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp index 93266f344e..11963857bd 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp @@ -583,6 +583,124 @@ void TestCore::testRewriterGroupedProperties() QCOMPARE(textEdit.toPlainText(), expected); } +void TestCore::testRewriterPreserveOrder() +{ + const QLatin1String qmlString1("\n" + "import Qt 4.7\n" + "\n" + "Rectangle {\n" + "width: 640\n" + "height: 480\n" + "\n" + "states: [\n" + "State {\n" + "name: \"State1\"\n" + "}\n" + "]\n" + "\n" + "Rectangle {\n" + "id: rectangle1\n" + "x: 18\n" + "y: 19\n" + "width: 100\n" + "height: 100\n" + "}\n" + "}\n"); + const QLatin1String qmlString2("\n" + "import Qt 4.7\n" + "\n" + "Rectangle {\n" + "width: 640\n" + "height: 480\n" + "\n" + "Rectangle {\n" + "id: rectangle1\n" + "x: 18\n" + "y: 19\n" + "width: 100\n" + "height: 100\n" + "}\n" + "states: [\n" + "State {\n" + "name: \"State1\"\n" + "}\n" + "]\n" + "\n" + "}\n"); + + { + QPlainTextEdit textEdit; + textEdit.setPlainText(qmlString2); + NotIndentingTextEditModifier modifier(&textEdit); + + QScopedPointer<Model> model(Model::create("Qt/Text")); + + QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); + testRewriterView->setTextModifier(&modifier); + model->attachView(testRewriterView.data()); + + QVERIFY(testRewriterView->errors().isEmpty()); + + ModelNode rootModelNode = testRewriterView->rootModelNode(); + QVERIFY(rootModelNode.isValid()); + + RewriterTransaction transaction = testRewriterView->beginRewriterTransaction(); + + ModelNode newModelNode = testRewriterView->createModelNode("Qt/Rectangle", 4, 7); + + newModelNode.setParentProperty(rootModelNode.nodeAbstractProperty("data")); + + newModelNode.setId("rectangle2"); + QCOMPARE(newModelNode.id(), QString("rectangle2")); + + newModelNode.variantProperty("x") = 10; + newModelNode.variantProperty("y") = 10; + newModelNode.variantProperty("width") = 100; + newModelNode.variantProperty("height") = 100; + + transaction.commit(); + + QCOMPARE(newModelNode.id(), QString("rectangle2")); + } + + QSKIP("See BAUHAUS-631", SkipAll); + + { + QPlainTextEdit textEdit; + textEdit.setPlainText(qmlString1); + NotIndentingTextEditModifier modifier(&textEdit); + + QScopedPointer<Model> model(Model::create("Qt/Text")); + + QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); + testRewriterView->setTextModifier(&modifier); + model->attachView(testRewriterView.data()); + + QVERIFY(testRewriterView->errors().isEmpty()); + + ModelNode rootModelNode = testRewriterView->rootModelNode(); + QVERIFY(rootModelNode.isValid()); + + RewriterTransaction transaction = testRewriterView->beginRewriterTransaction(); + + ModelNode newModelNode = testRewriterView->createModelNode("Qt/Rectangle", 4, 7); + + newModelNode.setParentProperty(rootModelNode.nodeAbstractProperty("data")); + + newModelNode.setId("rectangle2"); + QCOMPARE(newModelNode.id(), QString("rectangle2")); + + newModelNode.variantProperty("x") = 10; + newModelNode.variantProperty("y") = 10; + newModelNode.variantProperty("width") = 100; + newModelNode.variantProperty("height") = 100; + + transaction.commit(); + + QCOMPARE(newModelNode.id(), QString("rectangle2")); + } +} + void TestCore::loadSubItems() { QFile file(QString(QTCREATORDIR) + "/tests/auto/qml/qmldesigner/data/fx/topitem.qml"); diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.h b/tests/auto/qml/qmldesigner/coretests/testcore.h index cb1b73660a..525d555ea7 100644 --- a/tests/auto/qml/qmldesigner/coretests/testcore.h +++ b/tests/auto/qml/qmldesigner/coretests/testcore.h @@ -120,6 +120,7 @@ private slots: void testRewriterExceptionHandling(); void testRewriterDynamicProperties(); void testRewriterGroupedProperties(); + void testRewriterPreserveOrder(); // |