summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@nokia.com>2010-04-23 13:09:53 +0200
committerThomas Hartmann <Thomas.Hartmann@nokia.com>2010-04-23 13:10:10 +0200
commit6b09a506ac3c84f84e3bceb05f2bfe8d86d9c81a (patch)
tree424159437f39f08c82b79781ddb9712d80047db4 /tests
parentd086f76038e0abaf22e1c8e53f7bc64873d295a8 (diff)
downloadqt-creator-6b09a506ac3c84f84e3bceb05f2bfe8d86d9c81a.tar.gz
QmlDesigner: auto test for BAUHAUS-631
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qml/qmldesigner/coretests/testcore.cpp118
-rw-r--r--tests/auto/qml/qmldesigner/coretests/testcore.h1
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();
//