summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qmldom/tst_qmldom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/qmldom/tst_qmldom.cpp')
-rw-r--r--tests/auto/declarative/qmldom/tst_qmldom.cpp1313
1 files changed, 0 insertions, 1313 deletions
diff --git a/tests/auto/declarative/qmldom/tst_qmldom.cpp b/tests/auto/declarative/qmldom/tst_qmldom.cpp
deleted file mode 100644
index 16cdef0..0000000
--- a/tests/auto/declarative/qmldom/tst_qmldom.cpp
+++ /dev/null
@@ -1,1313 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include <QtDeclarative/qmlengine.h>
-#include <QtDeclarative/qmlcomponent.h>
-#include <QtDeclarative/private/qmldom_p.h>
-
-#include <QtCore/QDebug>
-#include <QtCore/QFile>
-
-class tst_qmldom : public QObject
-{
- Q_OBJECT
-public:
- tst_qmldom() {}
-
-private slots:
- void loadSimple();
- void loadProperties();
- void loadGroupedProperties();
- void loadChildObject();
- void loadComposite();
- void loadImports();
- void loadErrors();
- void loadSyntaxErrors();
- void loadRemoteErrors();
- void loadDynamicProperty();
- void loadComponent();
-
- void testValueSource();
- void testValueInterceptor();
-
- void object_dynamicProperty();
- void object_property();
- void object_url();
-
- void copy();
- void position();
-private:
- QmlEngine engine;
-};
-
-
-void tst_qmldom::loadSimple()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Item {}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
- QVERIFY(document.errors().isEmpty());
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
- QVERIFY(!rootObject.isComponent());
- QVERIFY(!rootObject.isCustomType());
- QVERIFY(rootObject.objectType() == "Qt/Item");
- QVERIFY(rootObject.objectTypeMajorVersion() == 4);
- QVERIFY(rootObject.objectTypeMinorVersion() == 6);
-}
-
-// Test regular properties
-void tst_qmldom::loadProperties()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Item { id : item; x : 300; visible : true }";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
- QVERIFY(rootObject.objectId() == "item");
- QCOMPARE(rootObject.properties().size(), 3);
-
- QmlDomProperty xProperty = rootObject.property("x");
- QVERIFY(xProperty.propertyName() == "x");
- QCOMPARE(xProperty.propertyNameParts().count(), 1);
- QVERIFY(xProperty.propertyNameParts().at(0) == "x");
- QCOMPARE(xProperty.position(), 32);
- QCOMPARE(xProperty.length(), 1);
- QVERIFY(xProperty.value().isLiteral());
- QVERIFY(xProperty.value().toLiteral().literal() == "300");
-
- QmlDomProperty visibleProperty = rootObject.property("visible");
- QVERIFY(visibleProperty.propertyName() == "visible");
- QCOMPARE(visibleProperty.propertyNameParts().count(), 1);
- QVERIFY(visibleProperty.propertyNameParts().at(0) == "visible");
- QCOMPARE(visibleProperty.position(), 41);
- QCOMPARE(visibleProperty.length(), 7);
- QVERIFY(visibleProperty.value().isLiteral());
- QVERIFY(visibleProperty.value().toLiteral().literal() == "true");
-}
-
-// Test grouped properties
-void tst_qmldom::loadGroupedProperties()
-{
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item { anchors.left: parent.left; anchors.right: parent.right }";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QVERIFY(rootItem.properties().size() == 2);
-
- // Order is not deterministic
- QmlDomProperty p0 = rootItem.properties().at(0);
- QmlDomProperty p1 = rootItem.properties().at(1);
- QmlDomProperty leftProperty;
- QmlDomProperty rightProperty;
- if (p0.propertyName() == "anchors.left") {
- leftProperty = p0;
- rightProperty = p1;
- } else {
- leftProperty = p1;
- rightProperty = p0;
- }
-
- QVERIFY(leftProperty.propertyName() == "anchors.left");
- QCOMPARE(leftProperty.propertyNameParts().count(), 2);
- QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors");
- QVERIFY(leftProperty.propertyNameParts().at(1) == "left");
- QCOMPARE(leftProperty.position(), 21);
- QCOMPARE(leftProperty.length(), 12);
- QVERIFY(leftProperty.value().isBinding());
- QVERIFY(leftProperty.value().toBinding().binding() == "parent.left");
-
- QVERIFY(rightProperty.propertyName() == "anchors.right");
- QCOMPARE(rightProperty.propertyNameParts().count(), 2);
- QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors");
- QVERIFY(rightProperty.propertyNameParts().at(1) == "right");
- QCOMPARE(rightProperty.position(), 48);
- QCOMPARE(rightProperty.length(), 13);
- QVERIFY(rightProperty.value().isBinding());
- QVERIFY(rightProperty.value().toBinding().binding() == "parent.right");
- }
-
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item { \n"
- " anchors {\n"
- " left: parent.left\n"
- " right: parent.right\n"
- " }\n"
- "}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QVERIFY(rootItem.properties().size() == 2);
-
- // Order is not deterministic
- QmlDomProperty p0 = rootItem.properties().at(0);
- QmlDomProperty p1 = rootItem.properties().at(1);
- QmlDomProperty leftProperty;
- QmlDomProperty rightProperty;
- if (p0.propertyName() == "anchors.left") {
- leftProperty = p0;
- rightProperty = p1;
- } else {
- leftProperty = p1;
- rightProperty = p0;
- }
-
- QVERIFY(leftProperty.propertyName() == "anchors.left");
- QCOMPARE(leftProperty.propertyNameParts().count(), 2);
- QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors");
- QVERIFY(leftProperty.propertyNameParts().at(1) == "left");
- QCOMPARE(leftProperty.position(), 44);
- QCOMPARE(leftProperty.length(), 4);
- QVERIFY(leftProperty.value().isBinding());
- QVERIFY(leftProperty.value().toBinding().binding() == "parent.left");
-
- QVERIFY(rightProperty.propertyName() == "anchors.right");
- QCOMPARE(rightProperty.propertyNameParts().count(), 2);
- QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors");
- QVERIFY(rightProperty.propertyNameParts().at(1) == "right");
- QCOMPARE(rightProperty.position(), 70);
- QCOMPARE(rightProperty.length(), 5);
- QVERIFY(rightProperty.value().isBinding());
- QVERIFY(rightProperty.value().toBinding().binding() == "parent.right");
- }
-
-}
-
-void tst_qmldom::loadChildObject()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Item { Item {} }";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QVERIFY(rootItem.properties().size() == 1);
-
- QmlDomProperty listProperty = rootItem.properties().at(0);
- QVERIFY(listProperty.isDefaultProperty());
- QVERIFY(listProperty.value().isList());
-
- QmlDomList list = listProperty.value().toList();
- QVERIFY(list.values().size() == 1);
-
- QmlDomObject childItem = list.values().first().toObject();
- QVERIFY(childItem.isValid());
- QVERIFY(childItem.objectType() == "Qt/Item");
-}
-
-void tst_qmldom::loadComposite()
-{
- QFile file(SRCDIR "/data/top.qml");
- QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text));
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, file.readAll(), QUrl::fromLocalFile(file.fileName())));
- QVERIFY(document.errors().isEmpty());
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QCOMPARE(rootItem.objectType(), QByteArray("MyComponent"));
- QCOMPARE(rootItem.properties().size(), 2);
-
- QmlDomProperty widthProperty = rootItem.property("width");
- QVERIFY(widthProperty.value().isLiteral());
-
- QmlDomProperty heightProperty = rootItem.property("height");
- QVERIFY(heightProperty.value().isLiteral());
-}
-
-void tst_qmldom::testValueSource()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Rectangle { height: SpringFollow { spring: 1.4; damping: .15; source: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
-
- QmlEngine freshEngine;
- QmlDomDocument document;
- QVERIFY(document.load(&freshEngine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QmlDomProperty heightProperty = rootItem.properties().at(0);
- QVERIFY(heightProperty.propertyName() == "height");
- QVERIFY(heightProperty.value().isValueSource());
-
- const QmlDomValueValueSource valueSource = heightProperty.value().toValueSource();
- QmlDomObject valueSourceObject = valueSource.object();
- QVERIFY(valueSourceObject.isValid());
-
- QVERIFY(valueSourceObject.objectType() == "Qt/SpringFollow");
-
- const QmlDomValue springValue = valueSourceObject.property("spring").value();
- QVERIFY(!springValue.isInvalid());
- QVERIFY(springValue.isLiteral());
- QVERIFY(springValue.toLiteral().literal() == "1.4");
-
- const QmlDomValue sourceValue = valueSourceObject.property("source").value();
- QVERIFY(!sourceValue.isInvalid());
- QVERIFY(sourceValue.isBinding());
- QVERIFY(sourceValue.toBinding().binding() == "Math.min(Math.max(-130, value*2.2 - 130), 133)");
-}
-
-void tst_qmldom::testValueInterceptor()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Rectangle { height: Behavior { NumberAnimation { duration: 100 } } }";
-
- QmlEngine freshEngine;
- QmlDomDocument document;
- QVERIFY(document.load(&freshEngine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QmlDomProperty heightProperty = rootItem.properties().at(0);
- QVERIFY(heightProperty.propertyName() == "height");
- QVERIFY(heightProperty.value().isValueInterceptor());
-
- const QmlDomValueValueInterceptor valueInterceptor = heightProperty.value().toValueInterceptor();
- QmlDomObject valueInterceptorObject = valueInterceptor.object();
- QVERIFY(valueInterceptorObject.isValid());
-
- QVERIFY(valueInterceptorObject.objectType() == "Qt/Behavior");
-
- const QmlDomValue animationValue = valueInterceptorObject.property("animation").value();
- QVERIFY(!animationValue.isInvalid());
- QVERIFY(animationValue.isObject());
-}
-
-// Test QmlDomDocument::imports()
-void tst_qmldom::loadImports()
-{
- QByteArray qml = "import Qt 4.6\n"
- "import importlib.sublib 4.7\n"
- "import importlib.sublib 4.6 as NewFoo\n"
- "import 'import'\n"
- "import 'import' as X\n"
- "Item {}";
-
- QmlEngine engine;
- engine.addImportPath(SRCDIR "/data");
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QCOMPARE(document.imports().size(), 5);
-
- QmlDomImport import = document.imports().at(0);
- QCOMPARE(import.type(), QmlDomImport::Library);
- QCOMPARE(import.uri(), QLatin1String("Qt"));
- QCOMPARE(import.qualifier(), QString());
- QCOMPARE(import.version(), QLatin1String("4.6"));
-
- import = document.imports().at(1);
- QCOMPARE(import.type(), QmlDomImport::Library);
- QCOMPARE(import.uri(), QLatin1String("importlib.sublib"));
- QCOMPARE(import.qualifier(), QString());
- QCOMPARE(import.version(), QLatin1String("4.7"));
-
- import = document.imports().at(2);
- QCOMPARE(import.type(), QmlDomImport::Library);
- QCOMPARE(import.uri(), QLatin1String("importlib.sublib"));
- QCOMPARE(import.qualifier(), QLatin1String("NewFoo"));
- QCOMPARE(import.version(), QLatin1String("4.6"));
-
- import = document.imports().at(3);
- QCOMPARE(import.type(), QmlDomImport::File);
- QCOMPARE(import.uri(), QLatin1String("import"));
- QCOMPARE(import.qualifier(), QLatin1String(""));
- QCOMPARE(import.version(), QLatin1String(""));
-
- import = document.imports().at(4);
- QCOMPARE(import.type(), QmlDomImport::File);
- QCOMPARE(import.uri(), QLatin1String("import"));
- QCOMPARE(import.qualifier(), QLatin1String("X"));
- QCOMPARE(import.version(), QLatin1String(""));
-}
-
-// Test loading a file with errors
-void tst_qmldom::loadErrors()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " foo: 12\n"
- "}";
-
- QmlDomDocument document;
- QVERIFY(false == document.load(&engine, qml));
-
- QCOMPARE(document.errors().count(), 1);
- QmlError error = document.errors().first();
-
- QCOMPARE(error.url(), QUrl());
- QCOMPARE(error.line(), 3);
- QCOMPARE(error.column(), 3);
- QCOMPARE(error.description(), QString("Cannot assign to non-existent property \"foo\""));
-}
-
-// Test loading a file with syntax errors
-void tst_qmldom::loadSyntaxErrors()
-{
- QByteArray qml = "import Qt 4.6\n"
- "asdf";
-
- QmlDomDocument document;
- QVERIFY(false == document.load(&engine, qml));
-
- QCOMPARE(document.errors().count(), 1);
- QmlError error = document.errors().first();
-
- QCOMPARE(error.url(), QUrl());
- QCOMPARE(error.line(), 2);
- QCOMPARE(error.column(), 1);
- QCOMPARE(error.description(), QString("Syntax error"));
-}
-
-// Test attempting to load a file with remote references
-void tst_qmldom::loadRemoteErrors()
-{
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " Script {\n"
- " source: \"http://localhost/exampleQmlScript.js\""
- " }\n"
- "}";
- QmlDomDocument document;
- QVERIFY(false == document.load(&engine, qml));
-
- QCOMPARE(document.errors().count(), 1);
- QmlError error = document.errors().first();
-
- QCOMPARE(error.url(), QUrl());
- QCOMPARE(error.line(), -1);
- QCOMPARE(error.column(), -1);
- QCOMPARE(error.description(), QString("QmlDomDocument supports local types only"));
-}
-
-// Test dynamic property declarations
-void tst_qmldom::loadDynamicProperty()
-{
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " property int a\n"
- " property bool b\n"
- " property double c\n"
- " property real d\n"
- " property string e\n"
- " property url f\n"
- " property color g\n"
- " property date h\n"
- " property var i\n"
- " property variant j\n"
- " property QtObject k\n"
- "}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
-
- QCOMPARE(rootObject.dynamicProperties().count(), 11);
-
-#define DP_TEST(index, name, type, test_position, test_length, propTypeName) \
- { \
- QmlDomDynamicProperty d = rootObject.dynamicProperties().at(index); \
- QVERIFY(d.isValid()); \
- QVERIFY(d.propertyName() == # name ); \
- QVERIFY(d.propertyType() == type); \
- QVERIFY(d.propertyTypeName() == propTypeName); \
- QVERIFY(d.isDefaultProperty() == false); \
- QVERIFY(d.defaultValue().isValid() == false); \
- QCOMPARE(d.position(), test_position); \
- QCOMPARE(d.length(), test_length); \
- } \
-
- DP_TEST(0, a, QVariant::Int, 25, 14, "int");
- DP_TEST(1, b, QVariant::Bool, 44, 15, "bool");
- DP_TEST(2, c, QVariant::Double, 64, 17, "double");
- DP_TEST(3, d, QMetaType::QReal, 86, 15, "real");
- DP_TEST(4, e, QVariant::String, 106, 17, "string");
- DP_TEST(5, f, QVariant::Url, 128, 14, "url");
- DP_TEST(6, g, QVariant::Color, 147, 16, "color");
- DP_TEST(7, h, QVariant::Date, 168, 15, "date");
- DP_TEST(8, i, qMetaTypeId<QVariant>(), 188, 14, "var");
- DP_TEST(9, j, qMetaTypeId<QVariant>(), 207, 18, "variant");
- DP_TEST(10, k, -1, 230, 19, "QtObject");
- }
-
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " property int a: 12\n"
- " property int b: a + 6\n"
- " default property QtObject c\n"
- "}\n";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
-
- QCOMPARE(rootObject.dynamicProperties().count(), 3);
-
- {
- QmlDomDynamicProperty d = rootObject.dynamicProperties().at(0);
- QVERIFY(d.isDefaultProperty() == false);
- QVERIFY(d.defaultValue().isValid());
- QVERIFY(d.defaultValue().propertyName() == "a");
- QVERIFY(d.defaultValue().value().isLiteral());
- }
-
- {
- QmlDomDynamicProperty d = rootObject.dynamicProperties().at(1);
- QVERIFY(d.isDefaultProperty() == false);
- QVERIFY(d.defaultValue().isValid());
- QVERIFY(d.defaultValue().propertyName() == "b");
- QVERIFY(d.defaultValue().value().isBinding());
- }
-
- {
- QmlDomDynamicProperty d = rootObject.dynamicProperties().at(2);
- QVERIFY(d.isDefaultProperty() == true);
- QVERIFY(d.defaultValue().isValid() == false);
- }
- }
-}
-
-// Test inline components
-void tst_qmldom::loadComponent()
-{
- // Explicit component
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " Component {\n"
- " id: myComponent\n"
- " Item {}\n"
- " }\n"
- "}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QVERIFY(rootItem.properties().size() == 1);
-
- QmlDomProperty listProperty = rootItem.properties().at(0);
- QVERIFY(listProperty.isDefaultProperty());
- QVERIFY(listProperty.value().isList());
-
- QmlDomList list = listProperty.value().toList();
- QVERIFY(list.values().size() == 1);
-
- QmlDomObject componentObject = list.values().first().toObject();
- QVERIFY(componentObject.isValid());
- QVERIFY(componentObject.objectClassName() == "Component");
- QVERIFY(componentObject.isComponent());
-
- QmlDomComponent component = componentObject.toComponent();
- QVERIFY(component.isValid());
- QVERIFY(component.objectType() == "Qt/Component");
- QVERIFY(component.objectTypeMajorVersion() == 4);
- QVERIFY(component.objectTypeMinorVersion() == 6);
- QVERIFY(component.objectClassName() == "Component");
- QVERIFY(component.objectId() == "myComponent");
- QVERIFY(component.properties().isEmpty());
- QVERIFY(component.dynamicProperties().isEmpty());
- QVERIFY(component.isCustomType() == false);
- QVERIFY(component.customTypeData() == "");
- QVERIFY(component.isComponent());
- QCOMPARE(component.position(), 25);
- QCOMPARE(component.length(), 57);
-
- QVERIFY(component.componentRoot().isValid());
- QVERIFY(component.componentRoot().objectClassName() == "Item");
- }
-
- // Implicit component
- {
- QByteArray qml = "import Qt 4.6\n"
- "ListView {\n"
- " delegate: Item {}\n"
- "}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootItem = document.rootObject();
- QVERIFY(rootItem.isValid());
- QVERIFY(rootItem.properties().size() == 1);
-
- QmlDomProperty delegate = rootItem.property("delegate");
-
- QmlDomObject componentObject = delegate.value().toObject();
- QVERIFY(componentObject.isValid());
- QVERIFY(componentObject.objectClassName() == "Component");
- QVERIFY(componentObject.isComponent());
-
- QmlDomComponent component = componentObject.toComponent();
- QVERIFY(component.isValid());
- QVERIFY(component.objectType() == "Qt/Component");
- QVERIFY(component.objectClassName() == "Component");
- QVERIFY(component.objectId() == "");
- QVERIFY(component.properties().isEmpty());
- QVERIFY(component.dynamicProperties().isEmpty());
- QVERIFY(component.isCustomType() == false);
- QVERIFY(component.customTypeData() == "");
- QVERIFY(component.isComponent());
- QCOMPARE(component.position(), 39);
- QCOMPARE(component.length(), 7);
-
- QVERIFY(component.componentRoot().isValid());
- QVERIFY(component.componentRoot().objectClassName() == "Item");
- }
-}
-
-// Test QmlDomObject::dynamicProperty() method
-void tst_qmldom::object_dynamicProperty()
-{
- // Invalid object
- {
- QmlDomObject object;
- QVERIFY(object.dynamicProperty("").isValid() == false);
- QVERIFY(object.dynamicProperty("foo").isValid() == false);
- }
-
-
- // Valid object, no dynamic properties
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
-
- QVERIFY(rootObject.dynamicProperty("").isValid() == false);
- QVERIFY(rootObject.dynamicProperty("foo").isValid() == false);
- }
-
- // Valid object, dynamic properties
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " property int a\n"
- "}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
-
- QVERIFY(rootObject.dynamicProperty("").isValid() == false);
- QVERIFY(rootObject.dynamicProperty("foo").isValid() == false);
-
- QmlDomDynamicProperty p = rootObject.dynamicProperty("a");
- QVERIFY(p.isValid());
- QVERIFY(p.propertyName() == "a");
- QVERIFY(p.propertyType() == QVariant::Int);
- QVERIFY(p.propertyTypeName() == "int");
- QVERIFY(p.isDefaultProperty() == false);
- QCOMPARE(p.position(), 25);
- QCOMPARE(p.length(), 14);
- }
-
-}
-
-// Test QmlObject::property() method
-void tst_qmldom::object_property()
-{
- // Invalid object
- {
- QmlDomObject object;
- QVERIFY(object.property("").isValid() == false);
- QVERIFY(object.property("foo").isValid() == false);
- }
-
- // Valid object - no default
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " x: 10\n"
- " y: 12\n"
- "}\n";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
-
- QVERIFY(rootObject.property("").isValid() == false);
- QVERIFY(rootObject.property("foo").isValid() == false);
-
- QmlDomProperty x = rootObject.property("x");
- QVERIFY(x.isValid());
- QVERIFY(x.propertyName() == "x");
- QVERIFY(x.propertyNameParts().count() == 1);
- QVERIFY(x.propertyNameParts().at(0) == "x");
- QVERIFY(x.isDefaultProperty() == false);
- QVERIFY(x.value().isLiteral());
- QVERIFY(x.value().toLiteral().literal() == "10");
- QCOMPARE(x.position(), 25);
- QCOMPARE(x.length(), 1);
-
- QmlDomProperty y = rootObject.property("y");
- QVERIFY(y.isValid());
- QVERIFY(y.propertyName() == "y");
- QVERIFY(y.propertyNameParts().count() == 1);
- QVERIFY(y.propertyNameParts().at(0) == "y");
- QVERIFY(y.isDefaultProperty() == false);
- QVERIFY(y.value().isLiteral());
- QVERIFY(y.value().toLiteral().literal() == "12");
- QCOMPARE(y.position(), 35);
- QCOMPARE(y.length(), 1);
- }
-
- // Valid object - with default
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {\n"
- " x: 10\n"
- " y: 12\n"
- " Item {}\n"
- "}\n";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
-
- QVERIFY(rootObject.property("").isValid() == false);
- QVERIFY(rootObject.property("foo").isValid() == false);
-
- QmlDomProperty x = rootObject.property("x");
- QVERIFY(x.isValid());
- QVERIFY(x.propertyName() == "x");
- QVERIFY(x.propertyNameParts().count() == 1);
- QVERIFY(x.propertyNameParts().at(0) == "x");
- QVERIFY(x.isDefaultProperty() == false);
- QVERIFY(x.value().isLiteral());
- QVERIFY(x.value().toLiteral().literal() == "10");
- QCOMPARE(x.position(), 25);
- QCOMPARE(x.length(), 1);
-
- QmlDomProperty y = rootObject.property("y");
- QVERIFY(y.isValid());
- QVERIFY(y.propertyName() == "y");
- QVERIFY(y.propertyNameParts().count() == 1);
- QVERIFY(y.propertyNameParts().at(0) == "y");
- QVERIFY(y.isDefaultProperty() == false);
- QVERIFY(y.value().isLiteral());
- QVERIFY(y.value().toLiteral().literal() == "12");
- QCOMPARE(y.position(), 35);
- QCOMPARE(y.length(), 1);
-
- QmlDomProperty data = rootObject.property("data");
- QVERIFY(data.isValid());
- QVERIFY(data.propertyName() == "data");
- QVERIFY(data.propertyNameParts().count() == 1);
- QVERIFY(data.propertyNameParts().at(0) == "data");
- QVERIFY(data.isDefaultProperty() == true);
- QVERIFY(data.value().isList());
- QCOMPARE(data.position(), 45);
- QCOMPARE(data.length(), 0);
- }
-}
-
-// Tests the QmlDomObject::url() method
-void tst_qmldom::object_url()
-{
- // Invalid object
- {
- QmlDomObject object;
- QCOMPARE(object.url(), QUrl());
- }
-
- // Valid builtin object
- {
- QByteArray qml = "import Qt 4.6\n"
- "Item {}";
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
- QCOMPARE(rootObject.url(), QUrl());
- }
-
- // Valid composite object
- {
- QByteArray qml = "import Qt 4.6\n"
- "MyItem {}";
-
- QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml");
- QUrl subUrl = QUrl::fromLocalFile(SRCDIR "/data/MyItem.qml");
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml, myUrl));
-
- QmlDomObject rootObject = document.rootObject();
- QVERIFY(rootObject.isValid());
- QCOMPARE(rootObject.url(), subUrl);
- }
-}
-
-// Test copy constructors and operators
-void tst_qmldom::copy()
-{
- QByteArray qml = "import Qt 4.6\n"
- "MyItem {\n"
- " id: myItem\n"
- " property int a: 10\n"
- " x: 10\n"
- " y: x + 10\n"
- " z: NumberAnimation {}\n"
- " opacity: Behavior {}\n"
- " Component {\n"
- " Item{}\n"
- " }\n"
- " children: [ Item{}, Item{} ]\n"
- "}\n";
-
- QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml");
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml, myUrl));
-
- // QmlDomDocument
- {
- QmlDomDocument document2(document);
- QmlDomDocument document3;
- document3 = document;
-
- QCOMPARE(document.imports().count(), document2.imports().count());
- QCOMPARE(document.errors().count(), document2.errors().count());
- QCOMPARE(document.rootObject().objectClassName(), document2.rootObject().objectClassName());
-
- QCOMPARE(document.imports().count(), document3.imports().count());
- QCOMPARE(document.errors().count(), document3.errors().count());
- QCOMPARE(document.rootObject().objectClassName(), document3.rootObject().objectClassName());
- }
-
- // QmlDomImport
- {
- QCOMPARE(document.imports().count(), 1);
- QmlDomImport import = document.imports().at(0);
-
- QmlDomImport import2(import);
- QmlDomImport import3;
- import3 = import2;
-
- QCOMPARE(import.type(), import2.type());
- QCOMPARE(import.uri(), import2.uri());
- QCOMPARE(import.version(), import2.version());
- QCOMPARE(import.qualifier(), import2.qualifier());
-
- QCOMPARE(import.type(), import3.type());
- QCOMPARE(import.uri(), import3.uri());
- QCOMPARE(import.version(), import3.version());
- QCOMPARE(import.qualifier(), import3.qualifier());
- }
-
- // QmlDomObject
- {
- QmlDomObject object = document.rootObject();
- QVERIFY(object.isValid());
-
- QmlDomObject object2(object);
- QmlDomObject object3;
- object3 = object;
-
- QCOMPARE(object.isValid(), object2.isValid());
- QCOMPARE(object.objectType(), object2.objectType());
- QCOMPARE(object.objectClassName(), object2.objectClassName());
- QCOMPARE(object.objectTypeMajorVersion(), object2.objectTypeMajorVersion());
- QCOMPARE(object.objectTypeMinorVersion(), object2.objectTypeMinorVersion());
- QCOMPARE(object.objectId(), object2.objectId());
- QCOMPARE(object.properties().count(), object2.properties().count());
- QCOMPARE(object.dynamicProperties().count(), object2.dynamicProperties().count());
- QCOMPARE(object.isCustomType(), object2.isCustomType());
- QCOMPARE(object.customTypeData(), object2.customTypeData());
- QCOMPARE(object.isComponent(), object2.isComponent());
- QCOMPARE(object.position(), object2.position());
- QCOMPARE(object.length(), object2.length());
- QCOMPARE(object.url(), object2.url());
-
- QCOMPARE(object.isValid(), object3.isValid());
- QCOMPARE(object.objectType(), object3.objectType());
- QCOMPARE(object.objectClassName(), object3.objectClassName());
- QCOMPARE(object.objectTypeMajorVersion(), object3.objectTypeMajorVersion());
- QCOMPARE(object.objectTypeMinorVersion(), object3.objectTypeMinorVersion());
- QCOMPARE(object.objectId(), object3.objectId());
- QCOMPARE(object.properties().count(), object3.properties().count());
- QCOMPARE(object.dynamicProperties().count(), object3.dynamicProperties().count());
- QCOMPARE(object.isCustomType(), object3.isCustomType());
- QCOMPARE(object.customTypeData(), object3.customTypeData());
- QCOMPARE(object.isComponent(), object3.isComponent());
- QCOMPARE(object.position(), object3.position());
- QCOMPARE(object.length(), object3.length());
- QCOMPARE(object.url(), object3.url());
- }
-
- // QmlDomDynamicProperty
- {
- QmlDomObject object = document.rootObject();
- QmlDomDynamicProperty property = object.dynamicProperty("a");
-
- QmlDomDynamicProperty property2(property);
- QmlDomDynamicProperty property3;
- property3 = property;
-
- QCOMPARE(property.isValid(), property2.isValid());
- QCOMPARE(property.propertyName(), property2.propertyName());
- QCOMPARE(property.propertyType(), property2.propertyType());
- QCOMPARE(property.propertyTypeName(), property2.propertyTypeName());
- QCOMPARE(property.isDefaultProperty(), property2.isDefaultProperty());
- QCOMPARE(property.defaultValue().propertyName(), property2.defaultValue().propertyName());
- QCOMPARE(property.position(), property2.position());
- QCOMPARE(property.length(), property2.length());
-
- QCOMPARE(property.isValid(), property3.isValid());
- QCOMPARE(property.propertyName(), property3.propertyName());
- QCOMPARE(property.propertyType(), property3.propertyType());
- QCOMPARE(property.propertyTypeName(), property3.propertyTypeName());
- QCOMPARE(property.isDefaultProperty(), property3.isDefaultProperty());
- QCOMPARE(property.defaultValue().propertyName(), property3.defaultValue().propertyName());
- QCOMPARE(property.position(), property3.position());
- QCOMPARE(property.length(), property3.length());
- }
-
- // QmlDomProperty
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("opacity");
-
- QmlDomProperty property2(property);
- QmlDomProperty property3;
- property3 = property;
-
- QCOMPARE(property.isValid(), property2.isValid());
- QCOMPARE(property.propertyName(), property2.propertyName());
- QCOMPARE(property.propertyNameParts(), property2.propertyNameParts());
- QCOMPARE(property.isDefaultProperty(), property2.isDefaultProperty());
- QCOMPARE(property.value().type(), property2.value().type());
- QCOMPARE(property.position(), property2.position());
- QCOMPARE(property.length(), property2.length());
-
- QCOMPARE(property.isValid(), property3.isValid());
- QCOMPARE(property.propertyName(), property3.propertyName());
- QCOMPARE(property.propertyNameParts(), property3.propertyNameParts());
- QCOMPARE(property.isDefaultProperty(), property3.isDefaultProperty());
- QCOMPARE(property.value().type(), property3.value().type());
- QCOMPARE(property.position(), property3.position());
- QCOMPARE(property.length(), property3.length());
- }
-
- // QmlDomValueLiteral
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("x");
- QmlDomValueLiteral literal = property.value().toLiteral();
- QCOMPARE(literal.literal(), QString("10"));
-
- QmlDomValueLiteral literal2(literal);
- QmlDomValueLiteral literal3;
- literal3 = literal2;
-
- QCOMPARE(literal2.literal(), QString("10"));
- QCOMPARE(literal3.literal(), QString("10"));
- }
-
-
- // QmlDomValueBinding
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("y");
- QmlDomValueBinding binding = property.value().toBinding();
- QCOMPARE(binding.binding(), QString("x + 10"));
-
- QmlDomValueBinding binding2(binding);
- QmlDomValueBinding binding3;
- binding3 = binding2;
-
- QCOMPARE(binding2.binding(), QString("x + 10"));
- QCOMPARE(binding3.binding(), QString("x + 10"));
- }
-
- // QmlDomValueValueSource
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("z");
- QmlDomValueValueSource source = property.value().toValueSource();
- QCOMPARE(source.object().objectClassName(), QByteArray("NumberAnimation"));
-
- QmlDomValueValueSource source2(source);
- QmlDomValueValueSource source3;
- source3 = source;
-
- QCOMPARE(source2.object().objectClassName(), QByteArray("NumberAnimation"));
- QCOMPARE(source3.object().objectClassName(), QByteArray("NumberAnimation"));
- }
-
- // QmlDomValueValueInterceptor
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("opacity");
- QmlDomValueValueInterceptor interceptor = property.value().toValueInterceptor();
- QCOMPARE(interceptor.object().objectClassName(), QByteArray("Behavior"));
-
- QmlDomValueValueInterceptor interceptor2(interceptor);
- QmlDomValueValueInterceptor interceptor3;
- interceptor3 = interceptor;
-
- QCOMPARE(interceptor2.object().objectClassName(), QByteArray("Behavior"));
- QCOMPARE(interceptor3.object().objectClassName(), QByteArray("Behavior"));
- }
-
- // QmlDomComponent
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("data");
- QCOMPARE(property.value().toList().values().count(), 1);
- QmlDomComponent component =
- property.value().toList().values().at(0).toObject().toComponent();
- QCOMPARE(component.componentRoot().objectClassName(), QByteArray("Item"));
-
- QmlDomComponent component2(component);
- QmlDomComponent component3;
- component3 = component;
-
- QCOMPARE(component.componentRoot().objectClassName(), component2.componentRoot().objectClassName());
- QCOMPARE(component.isValid(), component2.isValid());
- QCOMPARE(component.objectType(), component2.objectType());
- QCOMPARE(component.objectClassName(), component2.objectClassName());
- QCOMPARE(component.objectTypeMajorVersion(), component2.objectTypeMajorVersion());
- QCOMPARE(component.objectTypeMinorVersion(), component2.objectTypeMinorVersion());
- QCOMPARE(component.objectId(), component2.objectId());
- QCOMPARE(component.properties().count(), component2.properties().count());
- QCOMPARE(component.dynamicProperties().count(), component2.dynamicProperties().count());
- QCOMPARE(component.isCustomType(), component2.isCustomType());
- QCOMPARE(component.customTypeData(), component2.customTypeData());
- QCOMPARE(component.isComponent(), component2.isComponent());
- QCOMPARE(component.position(), component2.position());
- QCOMPARE(component.length(), component2.length());
- QCOMPARE(component.url(), component2.url());
-
- QCOMPARE(component.componentRoot().objectClassName(), component3.componentRoot().objectClassName());
- QCOMPARE(component.isValid(), component3.isValid());
- QCOMPARE(component.objectType(), component3.objectType());
- QCOMPARE(component.objectClassName(), component3.objectClassName());
- QCOMPARE(component.objectTypeMajorVersion(), component3.objectTypeMajorVersion());
- QCOMPARE(component.objectTypeMinorVersion(), component3.objectTypeMinorVersion());
- QCOMPARE(component.objectId(), component3.objectId());
- QCOMPARE(component.properties().count(), component3.properties().count());
- QCOMPARE(component.dynamicProperties().count(), component3.dynamicProperties().count());
- QCOMPARE(component.isCustomType(), component3.isCustomType());
- QCOMPARE(component.customTypeData(), component3.customTypeData());
- QCOMPARE(component.isComponent(), component3.isComponent());
- QCOMPARE(component.position(), component3.position());
- QCOMPARE(component.length(), component3.length());
- QCOMPARE(component.url(), component3.url());
- }
-
- // QmlDomValue
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("data");
- QmlDomValue value = property.value();
-
- QmlDomValue value2(value);
- QmlDomValue value3;
- value3 = value;
-
- QCOMPARE(value.type(), value2.type());
- QCOMPARE(value.isInvalid(), value2.isInvalid());
- QCOMPARE(value.isLiteral(), value2.isLiteral());
- QCOMPARE(value.isBinding(), value2.isBinding());
- QCOMPARE(value.isValueSource(), value2.isValueSource());
- QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor());
- QCOMPARE(value.isObject(), value2.isObject());
- QCOMPARE(value.isList(), value2.isList());
- QCOMPARE(value.position(), value2.position());
- QCOMPARE(value.length(), value2.length());
-
- QCOMPARE(value.type(), value3.type());
- QCOMPARE(value.isInvalid(), value3.isInvalid());
- QCOMPARE(value.isLiteral(), value3.isLiteral());
- QCOMPARE(value.isBinding(), value3.isBinding());
- QCOMPARE(value.isValueSource(), value3.isValueSource());
- QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor());
- QCOMPARE(value.isObject(), value3.isObject());
- QCOMPARE(value.isList(), value3.isList());
- QCOMPARE(value.position(), value3.position());
- QCOMPARE(value.length(), value3.length());
- }
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("x");
- QmlDomValue value = property.value();
-
- QmlDomValue value2(value);
- QmlDomValue value3;
- value3 = value;
-
- QCOMPARE(value.type(), value2.type());
- QCOMPARE(value.isInvalid(), value2.isInvalid());
- QCOMPARE(value.isLiteral(), value2.isLiteral());
- QCOMPARE(value.isBinding(), value2.isBinding());
- QCOMPARE(value.isValueSource(), value2.isValueSource());
- QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor());
- QCOMPARE(value.isObject(), value2.isObject());
- QCOMPARE(value.isList(), value2.isList());
- QCOMPARE(value.position(), value2.position());
- QCOMPARE(value.length(), value2.length());
-
- QCOMPARE(value.type(), value3.type());
- QCOMPARE(value.isInvalid(), value3.isInvalid());
- QCOMPARE(value.isLiteral(), value3.isLiteral());
- QCOMPARE(value.isBinding(), value3.isBinding());
- QCOMPARE(value.isValueSource(), value3.isValueSource());
- QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor());
- QCOMPARE(value.isObject(), value3.isObject());
- QCOMPARE(value.isList(), value3.isList());
- QCOMPARE(value.position(), value3.position());
- QCOMPARE(value.length(), value3.length());
- }
- {
- QmlDomValue value;
-
- QmlDomValue value2(value);
- QmlDomValue value3;
- value3 = value;
-
- QCOMPARE(value.type(), value2.type());
- QCOMPARE(value.isInvalid(), value2.isInvalid());
- QCOMPARE(value.isLiteral(), value2.isLiteral());
- QCOMPARE(value.isBinding(), value2.isBinding());
- QCOMPARE(value.isValueSource(), value2.isValueSource());
- QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor());
- QCOMPARE(value.isObject(), value2.isObject());
- QCOMPARE(value.isList(), value2.isList());
- QCOMPARE(value.position(), value2.position());
- QCOMPARE(value.length(), value2.length());
-
- QCOMPARE(value.type(), value3.type());
- QCOMPARE(value.isInvalid(), value3.isInvalid());
- QCOMPARE(value.isLiteral(), value3.isLiteral());
- QCOMPARE(value.isBinding(), value3.isBinding());
- QCOMPARE(value.isValueSource(), value3.isValueSource());
- QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor());
- QCOMPARE(value.isObject(), value3.isObject());
- QCOMPARE(value.isList(), value3.isList());
- QCOMPARE(value.position(), value3.position());
- QCOMPARE(value.length(), value3.length());
- }
-
- // QmlDomList
- {
- QmlDomObject object = document.rootObject();
- QmlDomProperty property = object.property("children");
- QmlDomList list = property.value().toList();
- QCOMPARE(list.values().count(), 2);
-
- QmlDomList list2(list);
- QmlDomList list3;
- list3 = list2;
-
- QCOMPARE(list.values().count(), list2.values().count());
- QCOMPARE(list.position(), list2.position());
- QCOMPARE(list.length(), list2.length());
- QCOMPARE(list.commaPositions(), list2.commaPositions());
-
- QCOMPARE(list.values().count(), list3.values().count());
- QCOMPARE(list.position(), list3.position());
- QCOMPARE(list.length(), list3.length());
- QCOMPARE(list.commaPositions(), list3.commaPositions());
-
- }
-}
-
-// Tests the position/length of various elements
-void tst_qmldom::position()
-{
- QByteArray qml = "import Qt 4.6\n"
- /*14*/ "Item {\n"
- /*21*/ " id: myItem\n"
- /*36*/ " property int a: 10\n"
- /*59*/ " x: 10\n"
- /*69*/ " y: x + 10\n"
- /*83*/ " z: NumberAnimation {}\n"
- /*109*/ " opacity: Behavior {}\n"
- /*134*/ " Component {\n"
- /*150*/ " Item{}\n"
- /*165*/ " }\n"
- /*171*/ " children: [ Item{}, Item{} ]\n"
- /*204*/ "}\n";
-
-
- QmlDomDocument document;
- QVERIFY(document.load(&engine, qml));
-
- QmlDomObject root = document.rootObject();
-
- // All QmlDomDynamicProperty
- QmlDomDynamicProperty dynProp = root.dynamicProperty("a");
- QCOMPARE(dynProp.position(), 40);
- QCOMPARE(dynProp.length(), 18);
-
- // All QmlDomProperty
- QmlDomProperty x = root.property("x");
- QCOMPARE(x.position(), 63);
- QCOMPARE(x.length(), 1);
-
- QmlDomProperty y = root.property("y");
- QCOMPARE(y.position(), 73);
- QCOMPARE(y.length(), 1);
-
- QmlDomProperty z = root.property("z");
- QCOMPARE(z.position(), 87);
- QCOMPARE(z.length(), 1);
-
- QmlDomProperty opacity = root.property("opacity");
- QCOMPARE(opacity.position(), 113);
- QCOMPARE(opacity.length(), 7);
-
- QmlDomProperty data = root.property("data");
- QCOMPARE(data.position(), 138);
- QCOMPARE(data.length(), 0);
-
- QmlDomProperty children = root.property("children");
- QCOMPARE(children.position(), 175);
- QCOMPARE(children.length(), 8);
-
- QmlDomList dataList = data.value().toList();
- QCOMPARE(dataList.values().count(), 1);
- QmlDomList childrenList = children.value().toList();
- QCOMPARE(childrenList.values().count(), 2);
-
- // All QmlDomObject
- QCOMPARE(root.position(), 14);
- QCOMPARE(root.length(), 191);
-
- QmlDomObject numberAnimation = z.value().toValueSource().object();
- QCOMPARE(numberAnimation.position(), 90);
- QCOMPARE(numberAnimation.length(), 18);
-
- QmlDomObject behavior = opacity.value().toValueInterceptor().object();
- QCOMPARE(behavior.position(), 122);
- QCOMPARE(behavior.length(), 11);
-
- QmlDomObject component = dataList.values().at(0).toObject();
- QCOMPARE(component.position(), 138);
- QCOMPARE(component.length(), 32);
-
- QmlDomObject componentRoot = component.toComponent().componentRoot();
- QCOMPARE(componentRoot.position(), 158);
- QCOMPARE(componentRoot.length(), 6);
-
- QmlDomObject child1 = childrenList.values().at(0).toObject();
- QCOMPARE(child1.position(), 187);
- QCOMPARE(child1.length(), 6);
-
- QmlDomObject child2 = childrenList.values().at(1).toObject();
- QCOMPARE(child2.position(), 195);
- QCOMPARE(child2.length(), 6);
-
- // All QmlDomValue
- QmlDomValue xValue = x.value();
- QCOMPARE(xValue.position(), 66);
- QCOMPARE(xValue.length(), 2);
-
- QmlDomValue yValue = y.value();
- QCOMPARE(yValue.position(), 76);
- QCOMPARE(yValue.length(), 6);
-
- QmlDomValue zValue = z.value();
- QCOMPARE(zValue.position(), 90);
- QCOMPARE(zValue.length(), 18);
-
- QmlDomValue opacityValue = opacity.value();
- QCOMPARE(opacityValue.position(), 122);
- QCOMPARE(opacityValue.length(), 11);
-
- QmlDomValue dataValue = data.value();
- QCOMPARE(dataValue.position(), 138);
- QCOMPARE(dataValue.length(), 32);
-
- QmlDomValue child1Value = childrenList.values().at(0);
- QCOMPARE(child1Value.position(), 187);
- QCOMPARE(child1Value.length(), 6);
-
- QmlDomValue child2Value = childrenList.values().at(1);
- QCOMPARE(child2Value.position(), 195);
- QCOMPARE(child2Value.length(), 6);
-
- // All QmlDomList
- qWarning("QmlListValue position test required");
-}
-
-QTEST_MAIN(tst_qmldom)
-
-#include "tst_qmldom.moc"