diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.cpp b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
index 168ab25b699d6f238c34648b02e87732dd1ca51e..44e2d545912a9aeb612af8338d1363ebc71e7146 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.cpp
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.cpp
@@ -388,13 +388,34 @@ void TestCore::testModelCreateRect()
 
 }
 
-void TestCore::loadComponentPropertiesInCoreModel()
+void TestCore::testRewriterDynamicProperties()
 {
-    QFile file(":/fx/properties.qml");
-    QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text));
+    const QLatin1String qmlString("\n"
+                                  "import Qt 4.6\n"
+                                  "\n"
+                                  "Rectangle {\n"
+                                  "  property int i\n"
+                                  "  property int ii: 1\n"
+                                  "  property bool b\n"
+                                  "  property bool bb: true\n"
+                                  "  property double d\n"
+                                  "  property double dd: 1.1\n"
+                                  "  property real r\n"
+                                  "  property real rr: 1.1\n"
+                                  "  property string s\n"
+                                  "  property string ss: \"hello\"\n"
+                                  "  property url u\n"
+                                  "  property url uu: \"www\"\n"
+                                  "  property color c\n"
+                                  "  property color cc: \"#ffffff\"\n"
+                                  "  property date t\n"
+                                  "  property date tt: \"2000-03-20\"\n"
+                                  "  property var v\n"
+                                  "  property var vv: \"Hello\"\n"
+                                  "}");
 
     QPlainTextEdit textEdit1;
-    textEdit1.setPlainText(file.readAll());
+    textEdit1.setPlainText(qmlString);
     NotIndentingTextEditModifier modifier1(&textEdit1);
 
     QScopedPointer<Model> model1(Model::create("Qt/Item"));
@@ -403,22 +424,99 @@ void TestCore::loadComponentPropertiesInCoreModel()
     testRewriterView1->setTextModifier(&modifier1);
     model1->attachView(testRewriterView1.data());
 
-    QVERIFY(testRewriterView1->rootModelNode().variantProperty("pushed").isDynamic());
-    QCOMPARE(false, testRewriterView1->rootModelNode().variantProperty("pushed").value().toBool());
-
-    QPlainTextEdit textEdit2;
-    textEdit2.setPlainText("import Qt 4.6; Item{}");
-    NotIndentingTextEditModifier modifier2(&textEdit2);
-
-    QScopedPointer<Model> model2(Model::create("Qt/Item"));
-
-    QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView());
-    testRewriterView2->setTextModifier(&modifier2);
-    model2->attachView(testRewriterView2.data());
-
-    testRewriterView2->rootModelNode().variantProperty("pushed").setDynamicTypeNameAndValue("bool", QVariant(false));
+    QVERIFY(testRewriterView1->errors().isEmpty());
 
-    QVERIFY(compareTree(testRewriterView1->rootModelNode(), testRewriterView2->rootModelNode()));
+    //
+    // text2model
+    //
+    ModelNode rootModelNode = testRewriterView1->rootModelNode();
+    QVERIFY(rootModelNode.hasVariantProperty("i"));
+    QCOMPARE(rootModelNode.variantProperty("i").dynamicTypeName(), QString("int"));
+    QCOMPARE(rootModelNode.variantProperty("i").value().type(), QVariant::Int);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("i").value().toInt(), 0);
+
+    QVERIFY(rootModelNode.hasVariantProperty("ii"));
+    QCOMPARE(rootModelNode.variantProperty("ii").dynamicTypeName(), QString("int"));
+    QCOMPARE(rootModelNode.variantProperty("ii").value().type(), QVariant::Int);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("ii").value().toInt(), 1);
+
+    QVERIFY(rootModelNode.hasVariantProperty("b"));
+    QCOMPARE(rootModelNode.variantProperty("b").dynamicTypeName(), QString("bool"));
+    QCOMPARE(rootModelNode.variantProperty("b").value().type(), QVariant::Bool);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("b").value().toBool(), false);
+
+    QVERIFY(rootModelNode.hasVariantProperty("bb"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("bb").value().toBool(), true);
+
+    QVERIFY(rootModelNode.hasVariantProperty("d"));
+    QCOMPARE(rootModelNode.variantProperty("d").dynamicTypeName(), QString("double"));
+    QCOMPARE(rootModelNode.variantProperty("d").value().type(), QVariant::Double);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("b").value().toDouble(), 0.0);
+
+    QVERIFY(rootModelNode.hasVariantProperty("dd"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("dd").value().toDouble(), 1.1);
+
+    QVERIFY(rootModelNode.hasVariantProperty("r"));
+    QCOMPARE(rootModelNode.variantProperty("r").dynamicTypeName(), QString("double"));
+    QCOMPARE(rootModelNode.variantProperty("r").value().type(), QVariant::Double);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("r").value().toDouble(), 0.0);
+
+    QVERIFY(rootModelNode.hasVariantProperty("rr"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("rr").value().toDouble(), 1.1);
+
+    QVERIFY(rootModelNode.hasVariantProperty("s"));
+    QCOMPARE(rootModelNode.variantProperty("s").dynamicTypeName(), QString("string"));
+    QCOMPARE(rootModelNode.variantProperty("s").value().type(), QVariant::String);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("s").value().toString(), QString());
+
+    QVERIFY(rootModelNode.hasVariantProperty("ss"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("ss").value().toString(), QString("hello"));
+
+    QVERIFY(rootModelNode.hasVariantProperty("u"));
+    QCOMPARE(rootModelNode.variantProperty("u").dynamicTypeName(), QString("url"));
+    QCOMPARE(rootModelNode.variantProperty("u").value().type(), QVariant::Url);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("u").value().toUrl(), QUrl());
+
+    QVERIFY(rootModelNode.hasVariantProperty("uu"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("uu").value().toUrl(), QUrl("www"));
+
+    QVERIFY(rootModelNode.hasVariantProperty("c"));
+    QCOMPARE(rootModelNode.variantProperty("c").dynamicTypeName(), QString("color"));
+    QCOMPARE(rootModelNode.variantProperty("c").value().type(), QVariant::Color);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("c").value().value<QColor>(), QColor());
+
+    QVERIFY(rootModelNode.hasVariantProperty("cc"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("cc").value().value<QColor>(), QColor(255, 255, 255));
+
+    QVERIFY(rootModelNode.hasVariantProperty("t"));
+    QCOMPARE(rootModelNode.variantProperty("t").dynamicTypeName(), QString("date"));
+    QCOMPARE(rootModelNode.variantProperty("t").value().type(), QVariant::Color);
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("t").value().value<QDate>(), QDate());
+
+    QVERIFY(rootModelNode.hasVariantProperty("tt"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("tt").value().value<QDate>(), QDate(2000, 3, 20));
+
+    QVERIFY(rootModelNode.hasVariantProperty("v"));
+    QCOMPARE(rootModelNode.variantProperty("v").dynamicTypeName(), QString("var"));
+    QCOMPARE(rootModelNode.variantProperty("v").value().type(), QVariant::Invalid);
+
+    QVERIFY(rootModelNode.hasVariantProperty("vv"));
+    QCOMPARE(testRewriterView1->rootModelNode().variantProperty("vv").value().value<QString>(), QString("hello"));
+
+    // test model2text
+//    QPlainTextEdit textEdit2;
+//    textEdit2.setPlainText("import Qt 4.6; Item{}");
+//    NotIndentingTextEditModifier modifier2(&textEdit2);
+//
+//    QScopedPointer<Model> model2(Model::create("Qt/Item"));
+//
+//    QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView());
+//    testRewriterView2->setTextModifier(&modifier2);
+//    model2->attachView(testRewriterView2.data());
+//
+//    testRewriterView2->rootModelNode().variantProperty("pushed").setDynamicTypeNameAndValue("bool", QVariant(false));
+//
+//    QVERIFY(compareTree(testRewriterView1->rootModelNode(), testRewriterView2->rootModelNode()));
 }
 
 void TestCore::loadSubItems()
diff --git a/tests/auto/qml/qmldesigner/coretests/testcore.h b/tests/auto/qml/qmldesigner/coretests/testcore.h
index 2ff8c315c22113376665e63362e0f552afe2229c..8a04fe3f18f146331f84b1283deb1f426f9bbb6c 100644
--- a/tests/auto/qml/qmldesigner/coretests/testcore.h
+++ b/tests/auto/qml/qmldesigner/coretests/testcore.h
@@ -118,6 +118,8 @@ private slots:
     void testRewriterWithSignals();
     void testRewriterNodeSliding();
     void testRewriterExceptionHandling();
+    void testRewriterDynamicProperties();
+
 
     //
     // unit tests QmlModelNodeFacade/QmlModelState
@@ -168,7 +170,6 @@ private slots:
     void saveEmptyCoreModel();
     void loadAttributesInCoreModel();
     void saveAttributesInCoreModel();
-    void loadComponentPropertiesInCoreModel();
     void loadSubItems();
 
     void attributeChangeSynchronizer();