diff options
Diffstat (limited to 'tests/auto/qml')
18 files changed, 1905 insertions, 702 deletions
diff --git a/tests/auto/qml/persistenttrie/completion.data b/tests/auto/qml/persistenttrie/completion.data new file mode 100644 index 0000000000..b94aeb1819 --- /dev/null +++ b/tests/auto/qml/persistenttrie/completion.data @@ -0,0 +1,10 @@ +com.bla.Pippo 0.1 +com.bla.Pippo 2.0 +com.bla.Pippo 2.1 +com.bla.Pallino 0.1 +QtQuick 1.0 + +pa +com.bla.Pallino 0.1 + +13 diff --git a/tests/auto/qml/persistenttrie/intersect.data b/tests/auto/qml/persistenttrie/intersect.data new file mode 100644 index 0000000000..a388f08078 --- /dev/null +++ b/tests/auto/qml/persistenttrie/intersect.data @@ -0,0 +1,81 @@ +abbc +a +acc +tzk +ttk +mm + +a +artz +tzj +tzg +art +tzg + +abbc +a +acc +tzk +ttk +mm + +abbc +ab +mmk +ab +abc +ab + +abbc +a +acc +tzk +ttk +mm + +com.bla.Pippo 0.1 +com.bla.Pippo 2.0 +com.bla.Pippo 2.1 +com.bla.Pallino 0.1 +QtQuick 1.0 + +a +artz +tzj +tzg +art +tzg + +abbc +ab +mmk +ab +abc +ab + +a +artz +tzj +tzg +art +tzg + +com.bla.Pippo 0.1 +com.bla.Pippo 2.0 +com.bla.Pippo 2.1 +com.bla.Pallino 0.1 +QtQuick 1.0 + +abbc +ab +mmk +ab +abc +ab + +a +artz +tzj +tzg +art +tzg diff --git a/tests/auto/qml/persistenttrie/listAll.data b/tests/auto/qml/persistenttrie/listAll.data new file mode 100644 index 0000000000..79a3477b2e --- /dev/null +++ b/tests/auto/qml/persistenttrie/listAll.data @@ -0,0 +1,26 @@ +abbc +a +acc +tzk +ttk +mm + +a +artz +tzj +tzg +art +tzg + +abbc +ab +mmk +ab +abc +ab + +com.bla.Pippo 0.1 +com.bla.Pippo 2.0 +com.bla.Pippo 2.1 +com.bla.Pallino 0.1 +QtQuick 1.0 diff --git a/tests/auto/qml/persistenttrie/merge.data b/tests/auto/qml/persistenttrie/merge.data new file mode 100644 index 0000000000..a388f08078 --- /dev/null +++ b/tests/auto/qml/persistenttrie/merge.data @@ -0,0 +1,81 @@ +abbc +a +acc +tzk +ttk +mm + +a +artz +tzj +tzg +art +tzg + +abbc +a +acc +tzk +ttk +mm + +abbc +ab +mmk +ab +abc +ab + +abbc +a +acc +tzk +ttk +mm + +com.bla.Pippo 0.1 +com.bla.Pippo 2.0 +com.bla.Pippo 2.1 +com.bla.Pallino 0.1 +QtQuick 1.0 + +a +artz +tzj +tzg +art +tzg + +abbc +ab +mmk +ab +abc +ab + +a +artz +tzj +tzg +art +tzg + +com.bla.Pippo 0.1 +com.bla.Pippo 2.0 +com.bla.Pippo 2.1 +com.bla.Pallino 0.1 +QtQuick 1.0 + +abbc +ab +mmk +ab +abc +ab + +a +artz +tzj +tzg +art +tzg diff --git a/tests/auto/qml/persistenttrie/persistenttrie.pro b/tests/auto/qml/persistenttrie/persistenttrie.pro new file mode 100644 index 0000000000..03f039fcb7 --- /dev/null +++ b/tests/auto/qml/persistenttrie/persistenttrie.pro @@ -0,0 +1,25 @@ +include(../../qttest.pri) + +DEFINES+=QTCREATORDIR=\\\"$$IDE_SOURCE_TREE\\\" +DEFINES+=TESTSRCDIR=\\\"$$PWD\\\" + +include($$IDE_SOURCE_TREE/src/libs/utils/utils.pri) +include($$IDE_SOURCE_TREE/src/libs/languageutils/languageutils.pri) +include($$IDE_SOURCE_TREE/src/libs/qmljs/qmljs.pri) + +TARGET = tst_trie_check + +HEADERS += tst_testtrie.h + +SOURCES += \ + tst_testtrie.cpp + +TEMPLATE = app +TARGET = tester +DEFINES += QMLJS_BUILD_DIR QT_CREATOR + +OTHER_FILES += \ + listAll.data \ + intersect.data \ + merge.data \ + completion.data diff --git a/tests/auto/qml/persistenttrie/tst_testtrie.cpp b/tests/auto/qml/persistenttrie/tst_testtrie.cpp new file mode 100644 index 0000000000..601f9e1635 --- /dev/null +++ b/tests/auto/qml/persistenttrie/tst_testtrie.cpp @@ -0,0 +1,374 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include "tst_testtrie.h" +#include <qmljs/persistenttrie.h> + +#include <QCoreApplication> +#include <QDebug> +#include <QLatin1String> +#include <QMap> +#include <QString> +#include <QStringList> +#include <QTextStream> + +using namespace QmlJS::PersistentTrie; + +void tst_TestTrie::initTestCase() { +} + +const bool VERBOSE=false; + +tst_TestTrie::tst_TestTrie() { QObject::QObject(); } + +void tst_TestTrie::testListAll_data() +{ + QTest::addColumn<QStringList>("strs"); + + QFile f(QString(TESTSRCDIR)+QString("/listAll.data")); + if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) + return; + QTextStream stream(&f); + int iline = 0; + while (true) { + QStringList list; + QString line; + while (true) { + line=stream.readLine(); + if (line.isEmpty()) + break; + list.append(line); + } + QTest::newRow(QString::number(iline++).toLatin1()) << list; + list.clear(); + if (stream.atEnd()) + break; + } +} + +void tst_TestTrie::testListAll() +{ + QFETCH(QStringList, strs); + Trie trie; + foreach (const QString &s, strs) + trie.insert(s); + QStringList ref=strs; + ref.sort(); + ref.removeDuplicates(); + QStringList content=trie.stringList(); + content.sort(); + if (VERBOSE && ref != content) { + QDebug dbg = qDebug(); + dbg << "ERROR inserting ["; + bool comma = false; + foreach (const QString &s, strs) { + if (comma) + dbg << ","; + else + comma = true; + dbg << s; + } + dbg << "] one gets " << trie; + } + QCOMPARE(ref, content); + foreach (const QString &s,strs) { + if (VERBOSE && ! trie.contains(s)) { + qDebug() << "ERROR could not find " << s << "in" << trie; + } + QVERIFY(trie.contains(s)); + } +} + +void tst_TestTrie::testMerge_data() +{ + QTest::addColumn<QStringList>("str1"); + QTest::addColumn<QStringList>("str2"); + + QFile f(QString(TESTSRCDIR)+QString("/merge.data")); + if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) + return; + QTextStream stream(&f); + int iline = 0; + while (true) { + QStringList list1; + QString line; + while (true) { + line=stream.readLine(); + if (line.isEmpty()) + break; + list1.append(line); + } + QStringList list2; + while (true) { + line=stream.readLine(); + if (line.isEmpty()) + break; + list2.append(line); + } + QTest::newRow(QString::number(iline++).toLatin1()) << list1 << list2; + list1.clear(); + list2.clear(); + if (stream.atEnd()) + break; + } +} + +void tst_TestTrie::testMerge() +{ + QFETCH(QStringList, str1); + QFETCH(QStringList, str2); + Trie trie1; + foreach (const QString &s, str1) + trie1.insert(s); + Trie trie2; + foreach (const QString &s, str2) + trie2.insert(s); + QStringList ref=str1; + ref.append(str2); + ref.sort(); + ref.removeDuplicates(); + Trie trie3 = trie1.mergeF(trie2); + QStringList content=trie3.stringList(); + content.sort(); + if (VERBOSE && ref != content) { + QDebug dbg=qDebug(); + dbg << "ERROR merging ["; + bool comma = false; + foreach (const QString &s, str1) { + if (comma) + dbg << ","; + else + comma = true; + dbg << s; + } + dbg << "] => " << trie1 << " and ["; + comma = false; + foreach (const QString &s, str2) { + if (comma) + dbg << ","; + else + comma = true; + dbg << s; + } + dbg << "] => " << trie2 + << " to " << trie3; + } + QCOMPARE(ref, content); +} + +void tst_TestTrie::testIntersect_data() +{ + QTest::addColumn<QStringList>("str1"); + QTest::addColumn<QStringList>("str2"); + + QFile f(QString(TESTSRCDIR)+QString("/intersect.data")); + if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) + return; + QTextStream stream(&f); + int iline = 0; + while (true) { + QStringList list1; + QString line; + while (true) { + line=stream.readLine(); + if (line.isEmpty()) + break; + list1.append(line); + } + QStringList list2; + while (true) { + line=stream.readLine(); + if (line.isEmpty()) + break; + list2.append(line); + } + QTest::newRow(QString::number(iline++).toLatin1()) << list1 << list2; + list1.clear(); + list2.clear(); + if (stream.atEnd()) + break; + } +} + +void tst_TestTrie::testIntersect() +{ + QFETCH(QStringList, str1); + QFETCH(QStringList, str2); + Trie trie1; + foreach (const QString &s, str1) + trie1.insert(s); + Trie trie2; + foreach (const QString &s, str2) + trie2.insert(s); + QSet<QString> ref1; + foreach (const QString &s, str1) + ref1.insert(s); + QSet<QString> ref2; + foreach (const QString &s, str2) + ref2.insert(s); + ref1.intersect(ref2); + Trie trie3 = trie1.intersectF(trie2); + ref2.clear(); + foreach (const QString &s, trie3.stringList()) + ref2.insert(s); + if (VERBOSE && ref1 != ref2) { + QDebug dbg=qDebug(); + dbg << "ERROR intersecting ["; + bool comma = false; + foreach (const QString &s, str1) { + if (comma) + dbg << ","; + else + comma = true; + dbg << s; + } + dbg << "] => " << trie1 << " and ["; + comma = false; + foreach (const QString &s, str2) { + if (comma) + dbg << ","; + else + comma = true; + dbg << s; + } + dbg << "] => " << trie2 + << " to " << trie3; + } + QCOMPARE(ref1, ref2); +} + +void tst_TestTrie::testCompletion_data() +{ + QTest::addColumn<QStringList>("trieContents"); + QTest::addColumn<QString>("str"); + QTest::addColumn<QStringList>("completions"); + QTest::addColumn<int>("flags"); + + QFile f(QString(TESTSRCDIR)+QString("/completion.data")); + if (!f.open(QIODevice::ReadOnly | QIODevice::Text)) + return; + QTextStream stream(&f); + int iline = 0; + while (true) { + QStringList list1; + QString line; + while (true) { + line = stream.readLine(); + if (line.isEmpty()) + break; + list1.append(line); + } + QString str = stream.readLine(); + QStringList list2; + while (true) { + line = stream.readLine(); + if (line.isEmpty()) + break; + list2.append(line); + } + int flags = stream.readLine().toInt(); + QTest::newRow(QString::number(iline++).toLatin1()) << list1 << str << list2 << flags; + list1.clear(); + list2.clear(); + if (stream.atEnd()) + break; + } +} + +void tst_TestTrie::testCompletion() { + QFETCH(QStringList, trieContents); + QFETCH(QString, str); + QFETCH(QStringList, completions); + QFETCH(int, flags); + + Trie trie; + foreach (const QString &s, trieContents) + trie.insert(s); + QStringList res = trie.complete(str, QString(), LookupFlags(flags)); + res = matchStrengthSort(str, res); + if (VERBOSE && res != completions) { + qDebug() << "unexpected completions for " << str + << " in " << trie; + qDebug() << "expected :["; + foreach (const QString &s, completions) { + qDebug() << s; + } + qDebug() << "] got ["; + foreach (const QString &s, res) { + qDebug() << s; + } + qDebug() << "]"; + } + QCOMPARE(res, completions); +} + +void interactiveCompletionTester(){ + Trie trie; + qDebug() << "interactive completion tester, insert the strings int the trie (empty line to stop)"; + QTextStream stream(stdin); + QString line; + while (true) { + line=stream.readLine(); + if (line.isEmpty()) + break; + trie.insert(line); + } + qDebug() << "testing Complete on " << trie; + while (true) { + qDebug() << "insert a string to complete (empty line to stop)"; + line=stream.readLine(); + if (line.isEmpty()) + break; + QStringList res=trie.complete(line, QString(), + LookupFlags(CaseInsensitive|SkipChars|SkipSpaces)); + res = matchStrengthSort(line,res); + qDebug() << "possible completions:["; + foreach (const QString &s, res) { + qDebug() << s; + } + qDebug() << "]"; + } +} + +#ifdef INTERACTIVE_COMPLETION_TEST + +int main(int , const char *[]) +{ + interactiveCompletionTester(); + + return 0; +} + +#else + +QTEST_MAIN(tst_TestTrie); + +//#include "moc_tst_testtrie.cpp" + +#endif diff --git a/tests/auto/qml/persistenttrie/tst_testtrie.h b/tests/auto/qml/persistenttrie/tst_testtrie.h new file mode 100644 index 0000000000..2559e4a0c0 --- /dev/null +++ b/tests/auto/qml/persistenttrie/tst_testtrie.h @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include <QtTest> +#include <QObject> + +QT_FORWARD_DECLARE_CLASS(QStringList) + +class tst_TestTrie : public QObject +{ + Q_OBJECT +public: + tst_TestTrie(); + +private slots: + void initTestCase(); + //void cleanupTestCase(); + //void init(); + //void cleanup(); + + void testListAll_data(); + void testMerge_data(); + void testIntersect_data(); + void testCompletion_data(); + + void testListAll(); + void testMerge(); + void testIntersect(); + void testCompletion(); +}; diff --git a/tests/auto/qml/qmldesigner/common/statichelpers.cpp b/tests/auto/qml/qmldesigner/common/statichelpers.cpp index 7b8ae206c7..5970e697db 100644 --- a/tests/auto/qml/qmldesigner/common/statichelpers.cpp +++ b/tests/auto/qml/qmldesigner/common/statichelpers.cpp @@ -69,19 +69,6 @@ static QString bareTemplate("import Qt 4.6\n" "}"); static QString contentsTemplate(bareTemplate.arg("Text { id: textChild; x:10; y: 10; text: \"%1\"; %2 }")); - -void printErrors(const QList<QDeclarativeError> &errors, const QString &fileName) -{ - if (errors.isEmpty()) - return; - - qDebug() << "Error loading file \"" << fileName << "\":"; - - foreach (const QDeclarativeError &error, errors) { - qDebug() << error.line() << ":" << error.column() << ": " << error.description(); - } -} - // TODO: this need to e updated for states static bool compareProperty(const AbstractProperty &property1, const AbstractProperty &property2) { diff --git a/tests/auto/qml/qmldesigner/coretests/coretests.pro b/tests/auto/qml/qmldesigner/coretests/coretests.pro index b82c68f5a6..8924538412 100644 --- a/tests/auto/qml/qmldesigner/coretests/coretests.pro +++ b/tests/auto/qml/qmldesigner/coretests/coretests.pro @@ -1,33 +1,43 @@ -include(../../../qttest.pri) - -QTCREATOR_SOURCE=$$PWD/../../../../.. -QTCREATOR_BUILD=$$OUT_PWD/../../../../.. +IDE_SOURCE_TREE=$$PWD/../../../../.. +IDE_BUILD_TREE=$$OUT_PWD/../../../../.. # can we check that this is a valid build dir? - OUT_PWD_SAVE=$$OUT_PWD -OUT_PWD=QTCREATOR_BUILD +OUT_PWD=IDE_BUILD_TREE include($$IDE_SOURCE_TREE/src/plugins/qmldesigner/config.pri) +include(../../../qttest.pri) OUT_PWD=$$OUT_PWD_SAVE - LIBS += -L$$IDE_PLUGIN_PATH/QtProject +LIBS += -L$$IDE_LIBRARY_PATH unix: QMAKE_LFLAGS += \'-Wl,-rpath,$${IDE_LIBRARY_PATH}\' \'-Wl,-rpath,$${IDE_PLUGIN_PATH}/QtProject\' QT += script \ - network \ - declarative \ - webkit + network + +greaterThan(QT_MAJOR_VERSION, 4) { + QT += printsupport + !isEmpty(QT.webkitwidgets.name): QT += webkitwidgets webkit + else: DEFINES += QT_NO_WEBKIT +} else { + contains(QT_CONFIG, webkit): QT += webkit +} + # DEFINES+=QTCREATOR_UTILS_STATIC_LIB QML_BUILD_STATIC_LIB DEFINES+=QTCREATORDIR=\\\"$$IDE_BUILD_TREE\\\" -DEFINES+=QT_CREATOR QTCREATOR_TEST +DEFINES+=QT_CREATOR QTCREATOR_TEST QMLDESIGNER_TEST INCLUDEPATH += $$IDE_SOURCE_TREE/src/plugins/qmldesigner/designercore/include INCLUDEPATH += $$IDE_SOURCE_TREE/src/plugins/qmldesigner/designercore +INCLUDEPATH += $$IDE_SOURCE_TREE//share/qtcreator/qml/qmlpuppet +INCLUDEPATH += $$IDE_SOURCE_TREE/src/plugins/qmldesigner -include($$IDE_SOURCE_TREE/src/plugins/qmldesigner/designercore/designercore.pri) -include($$IDE_SOURCE_TREE/src/libs/utils/utils.pri) + +include($$IDE_SOURCE_TREE/src/plugins/qmldesigner/designercore/designercore-lib.pri) include($$IDE_SOURCE_TREE/src/plugins/qmljstools/qmljstools.pri) +include($$IDE_SOURCE_TREE/src/libs/utils/utils.pri) +include($$IDE_SOURCE_TREE/src/libs/qmljs/qmljs.pri) +include($$IDE_SOURCE_TREE/src/libs/cplusplus/cplusplus.pri) CONFIG += console CONFIG -= app_bundle diff --git a/tests/auto/qml/qmldesigner/coretests/setupPath.bat b/tests/auto/qml/qmldesigner/coretests/setupPath.bat new file mode 100644 index 0000000000..7355f3c099 --- /dev/null +++ b/tests/auto/qml/qmldesigner/coretests/setupPath.bat @@ -0,0 +1 @@ +@set path=%PATH%;%CD%\..\..\..\..\..\lib\qtcreator\plugins\QtProject\ diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp index bab2419b12..10f89ace88 100644 --- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp +++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.cpp @@ -32,6 +32,8 @@ #include <QScopedPointer> #include <QLatin1String> #include <QGraphicsObject> +#include <QTest> +#include <QVariant> #include <metainfo.h> #include <model.h> @@ -55,17 +57,22 @@ #include <nodelistproperty.h> #include <nodeabstractproperty.h> #include <componenttextmodifier.h> -#include <instances/objectnodeinstance.h> #include <bytearraymodifier.h> #include "testrewriterview.h" +#include <utils/fileutils.h> #include <qmljs/qmljsinterpreter.h> #include <QPlainTextEdit> -#include <private/qdeclarativestate_p.h> -#include <private/qdeclarativemetatype_p.h> -#include <QDeclarativeItem> + +#if QT_VERSION >= 0x050000 +#define MSKIP_SINGLE(x) QSKIP(x) +#define MSKIP_ALL(x) QSKIP(x); +#else +#define MSKIP_SINGLE(x) QSKIP(x, SkipSingle) +#define MSKIP_ALL(x) QSKIP(x, SkipAll) +#endif //TESTED_COMPONENT=src/plugins/qmldesigner/designercore @@ -74,6 +81,7 @@ using namespace QmlDesigner; #include "../common/statichelpers.cpp" #include <qmljstools/qmljsmodelmanager.h> +#include <qmljs/qmljsinterpreter.h> #ifdef Q_OS_MAC # define SHARE_PATH "/Resources" @@ -93,10 +101,17 @@ public: { loadQmlTypeDescriptions(resourcePath()); } - void loadFile(QString fileName) + void updateSourceFiles(const QStringList &files, bool emitDocumentOnDiskChanged) { - refreshSourceFiles(QStringList() << fileName, false).waitForFinished(); + refreshSourceFiles(files, emitDocumentOnDiskChanged).waitForFinished(); } + + QmlJS::LibraryInfo builtins(const QmlJS::Document::Ptr &) const + { + return QmlJS::LibraryInfo(); + } + + }; static void initializeMetaTypeSystem(const QString &resourcePath) @@ -107,9 +122,36 @@ static void initializeMetaTypeSystem(const QString &resourcePath) QDir::Files, QDir::Name); - const QStringList errors = QmlJS::Interpreter::CppQmlTypesLoader::loadQmlTypes(qmlFiles); - foreach (const QString &error, errors) - qWarning() << qPrintable(error); + QStringList errorsAndWarnings; + QmlJS::CppQmlTypesLoader::loadQmlTypes(qmlFiles, &errorsAndWarnings, &errorsAndWarnings); + foreach (const QString &errorAndWarning, errorsAndWarnings) + qWarning() << qPrintable(errorAndWarning); +} + +static QmlDesigner::Model* createModel(const QString &typeName, int major = 1, int minor = 1, Model *metaInfoPropxyModel = 0) +{ + QApplication::processEvents(); + + QmlDesigner::Model *model = QmlDesigner::Model::create(typeName, major, minor, metaInfoPropxyModel); + + QPlainTextEdit *textEdit = new QPlainTextEdit; + QObject::connect(model, SIGNAL(destroyed()), textEdit, SLOT(deleteLater())); + textEdit->setPlainText(QString("import %1 %3.%4; %2{}").arg(typeName.split(".").first()) + .arg(typeName.split(".").last()) + .arg(major) + .arg(minor)); + + NotIndentingTextEditModifier *modifier = new NotIndentingTextEditModifier(textEdit); + modifier->setParent(textEdit); + + QmlDesigner::RewriterView *rewriterView = new QmlDesigner::RewriterView(QmlDesigner::RewriterView::Validate, model); + rewriterView->setCheckSemanticErrors(false); + rewriterView->setTextModifier(modifier); + + model->attachView(rewriterView); + + return model; + } tst_TestCore::tst_TestCore() @@ -130,9 +172,9 @@ void tst_TestCore::initTestCase() // Load plugins #ifdef Q_OS_MAC - const QString pluginPath = QTCREATORDIR "/bin/Qt Creator.app/Contents/PlugIns/QmlDesigner"; + const QString pluginPath = QTCREATORDIR "/bin/Qt Creator.app/Contents/PlugIns/QtCreator/QmlDesigner"; #else - const QString pluginPath = QTCREATORDIR "/lib/qmldesigner"; + const QString pluginPath = QTCREATORDIR "/lib/qtcreator/qmldesigner"; #endif qDebug() << pluginPath; @@ -147,9 +189,18 @@ void tst_TestCore::cleanupTestCase() MetaInfo::clearGlobal(); } +void tst_TestCore::init() +{ + QApplication::processEvents(); +} +void tst_TestCore::cleanup() +{ + QApplication::processEvents(); +} + void tst_TestCore::testModelCreateCoreModel() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> testView(new TestView(model.data())); @@ -168,17 +219,17 @@ void tst_TestCore::loadEmptyCoreModel() textEdit1.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); model1->attachView(testRewriterView1.data()); QPlainTextEdit textEdit2; - textEdit2.setPlainText("import Qt 4.7; Item{}"); + textEdit2.setPlainText("import QtQuick 1.1; Item{}"); NotIndentingTextEditModifier modifier2(&textEdit2); - QScopedPointer<Model> model2(Model::create("Qt/item")); + QScopedPointer<Model> model2(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView()); testRewriterView2->setTextModifier(&modifier2); @@ -191,10 +242,10 @@ void tst_TestCore::testRewriterView() { try { QPlainTextEdit textEdit; - textEdit.setPlainText("import Qt 4.7;\n\nItem {\n}\n"); + textEdit.setPlainText("import QtQuick 1.1;\n\nItem {\n}\n"); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -207,15 +258,15 @@ void tst_TestCore::testRewriterView() testRewriterView->setTextModifier(&textModifier); model->attachView(testRewriterView.data()); - ModelNode childNode(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); + ModelNode childNode(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); QVERIFY(childNode.isValid()); childNode.setId("childNode"); - ModelNode childNode2(addNodeListChild(childNode, "Qt/Rectangle", 4, 7, "data")); + ModelNode childNode2(addNodeListChild(childNode, "QtQuick.Rectangle", 1, 0, "data")); childNode2.setId("childNode2"); - ModelNode childNode3(addNodeListChild(childNode2, "Qt/Rectangle", 4, 7, "data")); + ModelNode childNode3(addNodeListChild(childNode2, "QtQuick.Rectangle", 1, 0, "data")); childNode3.setId("childNode3"); - ModelNode childNode4(addNodeListChild(childNode3, "Qt/Rectangle", 4, 7, "data")); + ModelNode childNode4(addNodeListChild(childNode3, "QtQuick.Rectangle", 1, 0, "data")); childNode4.setId("childNode4"); QVERIFY(childNode.isValid()); @@ -241,7 +292,7 @@ void tst_TestCore::testRewriterView() testRewriterView->modelToTextMerger()->applyChanges(); - childNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + childNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(testRewriterView->modelToTextMerger()->isNodeScheduledForAddition(childNode)); testRewriterView->modelToTextMerger()->applyChanges(); @@ -261,10 +312,10 @@ void tst_TestCore::testRewriterView() void tst_TestCore::testRewriterErrors() { QPlainTextEdit textEdit; - textEdit.setPlainText("import Qt 4.7;\n\nItem {\n}\n"); + textEdit.setPlainText("import QtQuick 1.1;\n\nItem {\n}\n"); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -278,16 +329,15 @@ void tst_TestCore::testRewriterErrors() model->attachView(testRewriterView.data()); QVERIFY(testRewriterView->errors().isEmpty()); - textEdit.setPlainText("import Qt 4.7;\n\nError {\n}\n"); + textEdit.setPlainText("import QtQuick 1.1;\nRectangle {\ntest: blah\n}\n"); QVERIFY(!testRewriterView->errors().isEmpty()); - textEdit.setPlainText("import Qt 4.7;\n\nItem {\n}\n"); + textEdit.setPlainText("import QtQuick 1.1;\n\nItem {\n}\n"); QVERIFY(testRewriterView->errors().isEmpty()); } void tst_TestCore::saveEmptyCoreModel() { - QList<QDeclarativeError> errors; QFile file(":/fx/empty.qml"); QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); @@ -295,7 +345,7 @@ void tst_TestCore::saveEmptyCoreModel() textEdit1.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -307,10 +357,10 @@ void tst_TestCore::saveEmptyCoreModel() modifier1.save(&buffer); QPlainTextEdit textEdit2; - textEdit2.setPlainText("import Qt 4.7; Item{}"); + textEdit2.setPlainText("import QtQuick 1.1; Item{}"); NotIndentingTextEditModifier modifier2(&textEdit2); - QScopedPointer<Model> model2(Model::create("Qt/item")); + QScopedPointer<Model> model2(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView()); testRewriterView2->setTextModifier(&modifier2); @@ -322,7 +372,6 @@ void tst_TestCore::saveEmptyCoreModel() void tst_TestCore::loadAttributesInCoreModel() { - QList<QDeclarativeError> errors; QFile file(":/fx/attributes.qml"); QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); @@ -330,17 +379,17 @@ void tst_TestCore::loadAttributesInCoreModel() textEdit1.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); model1->attachView(testRewriterView1.data()); QPlainTextEdit textEdit2; - textEdit2.setPlainText("import Qt 4.7; Item{}"); + textEdit2.setPlainText("import QtQuick 1.1; Item{}"); NotIndentingTextEditModifier modifier2(&textEdit2); - QScopedPointer<Model> model2(Model::create("Qt/item")); + QScopedPointer<Model> model2(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView()); testRewriterView2->setTextModifier(&modifier2); @@ -365,7 +414,7 @@ void tst_TestCore::saveAttributesInCoreModel() textEdit1.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -381,7 +430,7 @@ void tst_TestCore::saveAttributesInCoreModel() textEdit2.setPlainText(buffer.data()); NotIndentingTextEditModifier modifier2(&textEdit2); - QScopedPointer<Model> model2(Model::create("Qt/Item")); + QScopedPointer<Model> model2(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView()); testRewriterView2->setTextModifier(&modifier2); @@ -396,7 +445,7 @@ void tst_TestCore::testModelCreateRect() { try { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -404,7 +453,7 @@ void tst_TestCore::testModelCreateRect() model->attachView(view.data()); QVERIFY(view->rootModelNode().isValid()); - ModelNode childNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); QVERIFY(view->rootModelNode().allDirectSubModelNodes().contains(childNode)); QVERIFY(childNode.parentProperty().parentModelNode() == view->rootModelNode()); @@ -423,7 +472,7 @@ void tst_TestCore::testModelCreateRect() QCOMPARE(childNode.propertyNames().count(), 4); QCOMPARE(childNode.variantProperty("scale").value(), QVariant()); - } catch (Exception &exception) { + } catch (Exception &) { QFAIL("Exception thrown"); } @@ -432,7 +481,7 @@ void tst_TestCore::testModelCreateRect() void tst_TestCore::testRewriterDynamicProperties() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " property int i\n" @@ -459,7 +508,7 @@ void tst_TestCore::testRewriterDynamicProperties() textEdit1.setPlainText(qmlString); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -549,10 +598,10 @@ void tst_TestCore::testRewriterDynamicProperties() // test model2text // QPlainTextEdit textEdit2; -// textEdit2.setPlainText("import Qt 4.7; Item{}"); +// textEdit2.setPlainText("import QtQuick 1.1; Item{}"); // NotIndentingTextEditModifier modifier2(&textEdit2); // -// QScopedPointer<Model> model2(Model::create("Qt/Item")); +// QScopedPointer<Model> model2(Model::create("QtQuick.Item")); // // QScopedPointer<TestRewriterView> testRewriterView2(new TestRewriterView()); // testRewriterView2->setTextModifier(&modifier2); @@ -566,7 +615,7 @@ void tst_TestCore::testRewriterDynamicProperties() void tst_TestCore::testRewriterGroupedProperties() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Text {\n" " font {\n" @@ -579,7 +628,7 @@ void tst_TestCore::testRewriterGroupedProperties() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier modifier1(&textEdit); - QScopedPointer<Model> model1(Model::create("Qt/Text")); + QScopedPointer<Model> model1(Model::create("QtQuick.Text")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -603,7 +652,7 @@ void tst_TestCore::testRewriterGroupedProperties() rootModelNode.removeProperty(QLatin1String("font.pointSize")); const QLatin1String expected("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Text {\n" "}\n"); @@ -614,7 +663,7 @@ void tst_TestCore::testRewriterGroupedProperties() void tst_TestCore::testRewriterPreserveOrder() { const QLatin1String qmlString1("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "width: 640\n" @@ -635,7 +684,7 @@ void tst_TestCore::testRewriterPreserveOrder() "}\n" "}\n"); const QLatin1String qmlString2("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "width: 640\n" @@ -661,7 +710,7 @@ void tst_TestCore::testRewriterPreserveOrder() textEdit.setPlainText(qmlString2); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Text")); + QScopedPointer<Model> model(Model::create("QtQuick.Text")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&modifier); @@ -674,7 +723,7 @@ void tst_TestCore::testRewriterPreserveOrder() RewriterTransaction transaction = testRewriterView->beginRewriterTransaction(); - ModelNode newModelNode = testRewriterView->createModelNode("Qt/Rectangle", 4, 7); + ModelNode newModelNode = testRewriterView->createModelNode("QtQuick.Rectangle", 1, 0); newModelNode.setParentProperty(rootModelNode.nodeAbstractProperty("data")); @@ -696,7 +745,7 @@ void tst_TestCore::testRewriterPreserveOrder() textEdit.setPlainText(qmlString1); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Text")); + QScopedPointer<Model> model(Model::create("QtQuick.Text")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&modifier); @@ -709,7 +758,7 @@ void tst_TestCore::testRewriterPreserveOrder() RewriterTransaction transaction = testRewriterView->beginRewriterTransaction(); - ModelNode newModelNode = testRewriterView->createModelNode("Qt/Rectangle", 4, 7); + ModelNode newModelNode = testRewriterView->createModelNode("QtQuick.Rectangle", 1, 0); newModelNode.setParentProperty(rootModelNode.nodeAbstractProperty("data")); @@ -730,7 +779,7 @@ void tst_TestCore::testRewriterPreserveOrder() void tst_TestCore::testRewriterActionCompression() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: root\n" @@ -750,7 +799,7 @@ void tst_TestCore::testRewriterActionCompression() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier modifier1(&textEdit); - QScopedPointer<Model> model1(Model::create("Qt/Rectangle")); + QScopedPointer<Model> model1(Model::create("QtQuick.Rectangle")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&modifier1); @@ -776,7 +825,7 @@ void tst_TestCore::testRewriterActionCompression() transaction.commit(); const QLatin1String expected("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: root\n" @@ -804,7 +853,7 @@ void tst_TestCore::testRewriterImports() textEdit.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); model->setFileUrl(QUrl::fromLocalFile(fileName)); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -815,12 +864,12 @@ void tst_TestCore::testRewriterImports() QVERIFY(model->imports().size() == 3); - // import Qt 4.7 + // import QtQuick 1.1 Import import = model->imports().at(0); QVERIFY(import.isLibraryImport()); - QCOMPARE(import.url(), QString("Qt")); + QCOMPARE(import.url(), QString("QtQuick")); QVERIFY(import.hasVersion()); - QCOMPARE(import.version(), QString("4.7")); + QCOMPARE(import.version(), QString("1.0")); QVERIFY(!import.hasAlias()); // import "subitems" @@ -843,7 +892,7 @@ void tst_TestCore::testRewriterImports() void tst_TestCore::testRewriterChangeImports() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {}\n"); @@ -851,7 +900,7 @@ void tst_TestCore::testRewriterChangeImports() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Rectangle")); + QScopedPointer<Model> model(Model::create("QtQuick.Rectangle")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView(0, RewriterView::Amend)); testRewriterView->setTextModifier(&modifier); @@ -870,7 +919,7 @@ void tst_TestCore::testRewriterChangeImports() model->changeImports(importList, QList<Import>()); const QLatin1String qmlWithImport("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "import QtWebKit 1.0\n" "\n" "Rectangle {}\n"); @@ -879,7 +928,7 @@ void tst_TestCore::testRewriterChangeImports() model->changeImports(QList<Import>(), importList); QCOMPARE(model->imports().size(), 1); - QCOMPARE(model->imports().first(), Import::createLibraryImport("Qt", "4.7")); + QCOMPARE(model->imports().first(), Import::createLibraryImport("QtQuick", "1.1")); QCOMPARE(textEdit.toPlainText(), qmlString); @@ -887,45 +936,45 @@ void tst_TestCore::testRewriterChangeImports() // // Add / Remove an import in the model (with alias) // - model->changeImports(importList, QList<Import>()); + + Import webkitImportAlias = Import::createLibraryImport("QtWebKit", "1.0", "Web"); + + model->changeImports(QList<Import>() << webkitImportAlias, QList<Import>() << webkitImport); const QLatin1String qmlWithAliasImport("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "import QtWebKit 1.0 as Web\n" "\n" "Rectangle {}\n"); QCOMPARE(textEdit.toPlainText(), qmlWithAliasImport); - model->changeImports(QList<Import>(), importList); - - QCOMPARE(model->imports().size(), 1); - QCOMPARE(model->imports().first(), Import::createLibraryImport("Qt", "4.7")); + model->changeImports(QList<Import>(), QList<Import>() << webkitImportAlias); + QCOMPARE(model->imports().first(), Import::createLibraryImport("QtQuick", "1.1")); QCOMPARE(textEdit.toPlainText(), qmlString); - // // Add / Remove an import in text // textEdit.setPlainText(qmlWithImport); QCOMPARE(model->imports().size(), 2); - QCOMPARE(model->imports().first(), Import::createLibraryImport("Qt", "4.7")); + QCOMPARE(model->imports().first(), Import::createLibraryImport("QtQuick", "1.1")); QCOMPARE(model->imports().last(), Import::createLibraryImport("QtWebKit", "1.0")); textEdit.setPlainText(qmlWithAliasImport); QCOMPARE(model->imports().size(), 2); - QCOMPARE(model->imports().first(), Import::createLibraryImport("Qt", "4.7")); + QCOMPARE(model->imports().first(), Import::createLibraryImport("QtQuick", "1.1")); QCOMPARE(model->imports().last(), Import::createLibraryImport("QtWebKit", "1.0", "Web")); textEdit.setPlainText(qmlString); QCOMPARE(model->imports().size(), 1); - QCOMPARE(model->imports().first(), Import::createLibraryImport("Qt", "4.7")); + QCOMPARE(model->imports().first(), Import::createLibraryImport("QtQuick", "1.1")); } void tst_TestCore::testRewriterForGradientMagic() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: root\n" @@ -963,7 +1012,7 @@ void tst_TestCore::testRewriterForGradientMagic() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Text")); + QScopedPointer<Model> model(Model::create("QtQuick.Text")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&modifier); @@ -979,7 +1028,7 @@ void tst_TestCore::testRewriterForGradientMagic() myRect.variantProperty("rotation") = QVariant(45); QVERIFY(myRect.isValid()); - QScopedPointer<Model> model1(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model1(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model1.data()); QScopedPointer<TestView> view1(new TestView(model1.data())); @@ -987,7 +1036,7 @@ void tst_TestCore::testRewriterForGradientMagic() QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item {}"); + textEdit1.setPlainText("import QtQuick 1.1; Item {}"); NotIndentingTextEditModifier modifier1(&textEdit1); testRewriterView1->setTextModifier(&modifier1); @@ -1013,7 +1062,7 @@ void tst_TestCore::loadSubItems() textEdit1.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -1022,16 +1071,16 @@ void tst_TestCore::loadSubItems() void tst_TestCore::createInvalidCoreModel() { - QScopedPointer<Model> invalidModel(Model::create("ItemSUX")); + QScopedPointer<Model> invalidModel(createModel("ItemSUX")); //QVERIFY(!invalidModel.data()); //#no direct ype checking in model atm - QScopedPointer<Model> invalidModel2(Model::create("InvalidNode")); + QScopedPointer<Model> invalidModel2(createModel("InvalidNode")); //QVERIFY(!invalidModel2.data()); } void tst_TestCore::testModelCreateSubNode() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1043,7 +1092,7 @@ void tst_TestCore::testModelCreateSubNode() QCOMPARE(view->methodCalls(), expectedCalls); QVERIFY(view->rootModelNode().isValid()); - ModelNode childNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); QVERIFY(view->rootModelNode().allDirectSubModelNodes().contains(childNode)); QVERIFY(childNode.parentProperty().parentModelNode() == view->rootModelNode()); @@ -1077,7 +1126,7 @@ void tst_TestCore::testModelCreateSubNode() void tst_TestCore::testTypicalRewriterOperations() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1087,46 +1136,46 @@ void tst_TestCore::testTypicalRewriterOperations() ModelNode rootModelNode = view->rootModelNode(); QCOMPARE(rootModelNode.allDirectSubModelNodes().count(), 0); - QVERIFY(rootModelNode.property("test").isValid()); - QVERIFY(!rootModelNode.property("test").isVariantProperty()); - QVERIFY(!rootModelNode.property("test").isBindingProperty()); + QVERIFY(rootModelNode.property("x").isValid()); + QVERIFY(!rootModelNode.property("x").isVariantProperty()); + QVERIFY(!rootModelNode.property("x").isBindingProperty()); - QVERIFY(rootModelNode.variantProperty("test").isValid()); - QVERIFY(!rootModelNode.hasProperty("test")); + QVERIFY(rootModelNode.variantProperty("x").isValid()); + QVERIFY(!rootModelNode.hasProperty("x")); - rootModelNode.variantProperty("test") = 70; + rootModelNode.variantProperty("x") = 70; - QVERIFY(rootModelNode.hasProperty("test")); - QVERIFY(rootModelNode.property("test").isVariantProperty()); - QCOMPARE(rootModelNode.variantProperty("test").value(), QVariant(70)); + QVERIFY(rootModelNode.hasProperty("x")); + QVERIFY(rootModelNode.property("x").isVariantProperty()); + QCOMPARE(rootModelNode.variantProperty("x").value(), QVariant(70)); - rootModelNode.bindingProperty("test") = "parent.x"; - QVERIFY(!rootModelNode.property("test").isVariantProperty()); - QVERIFY(rootModelNode.property("test").isBindingProperty()); + rootModelNode.bindingProperty("x") = "parent.x"; + QVERIFY(!rootModelNode.property("x").isVariantProperty()); + QVERIFY(rootModelNode.property("x").isBindingProperty()); - QCOMPARE(rootModelNode.bindingProperty("test").expression(), QString("parent.x")); + QCOMPARE(rootModelNode.bindingProperty("x").expression(), QString("parent.x")); - ModelNode childNode(addNodeListChild(rootModelNode, "Qt/Rectangle", 4 ,6, "data")); - rootModelNode.nodeListProperty("test").reparentHere(childNode); - QCOMPARE(childNode.parentProperty(), rootModelNode.nodeAbstractProperty("test")); - QVERIFY(rootModelNode.property("test").isNodeAbstractProperty()); - QVERIFY(rootModelNode.property("test").isNodeListProperty()); - QVERIFY(!rootModelNode.property("test").isBindingProperty()); + ModelNode childNode(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1 ,0, "data")); + rootModelNode.nodeListProperty("data").reparentHere(childNode); + QCOMPARE(childNode.parentProperty(), rootModelNode.nodeAbstractProperty("data")); + QVERIFY(rootModelNode.property("data").isNodeAbstractProperty()); + QVERIFY(rootModelNode.property("data").isNodeListProperty()); + QVERIFY(!rootModelNode.property("data").isBindingProperty()); QVERIFY(childNode.parentProperty().isNodeListProperty()); QCOMPARE(childNode, childNode.parentProperty().toNodeListProperty().toModelNodeList().first()); QCOMPARE(rootModelNode, childNode.parentProperty().parentModelNode()); - QCOMPARE(childNode.parentProperty().name(), QString("test")); + QCOMPARE(childNode.parentProperty().name(), QString("data")); - QVERIFY(!rootModelNode.property("test").isVariantProperty()); - rootModelNode.variantProperty("test") = 90; - QVERIFY(rootModelNode.property("test").isVariantProperty()); - QCOMPARE(rootModelNode.variantProperty("test").value(), QVariant(90)); + QVERIFY(!rootModelNode.property("x").isVariantProperty()); + rootModelNode.variantProperty("x") = 90; + QVERIFY(rootModelNode.property("x").isVariantProperty()); + QCOMPARE(rootModelNode.variantProperty("x").value(), QVariant(90)); } void tst_TestCore::testBasicStates() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "id: root;\n" "Rectangle {\n" @@ -1165,7 +1214,7 @@ void tst_TestCore::testBasicStates() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1174,13 +1223,13 @@ void tst_TestCore::testBasicStates() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); model->attachView(testRewriterView.data()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Rectangle")); QVERIFY(rootModelNode.hasProperty("data")); @@ -1213,6 +1262,7 @@ void tst_TestCore::testBasicStates() QCOMPARE(state1.propertyChanges().count(), 2); QCOMPARE(state2.propertyChanges().count(), 2); + QVERIFY(state1.propertyChanges().first().modelNode().metaInfo().isSubclassOf("<cpp>.QDeclarative1StateOperation", -1, -1)); QVERIFY(!state1.hasPropertyChanges(rootModelNode)); QVERIFY(state1.propertyChanges(rect1).isValid()); @@ -1275,10 +1325,117 @@ 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(); + + MSKIP_ALL("No qml2puppet"); + + 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() { - QSKIP("Fix MetaInfo", SkipAll); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Flipable")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1299,8 +1456,8 @@ void tst_TestCore::testModelBasicOperations() QVERIFY(!rootModelNode.hasProperty("width")); QVERIFY(!rootModelNode.hasProperty("children")); - ModelNode childNode1(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "children")); - ModelNode childNode2(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); + ModelNode childNode1(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "children")); + ModelNode childNode2(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); QVERIFY(childNode1.isValid()); QVERIFY(childNode2.isValid()); @@ -1338,7 +1495,7 @@ void tst_TestCore::testModelBasicOperations() void tst_TestCore::testModelResolveIds() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1348,47 +1505,47 @@ void tst_TestCore::testModelResolveIds() ModelNode rootNode = view->rootModelNode(); rootNode.setId("rootNode"); - ModelNode childNode1(addNodeListChild(rootNode, "Qt/Rectangle", 4, 7, "children")); + ModelNode childNode1(addNodeListChild(rootNode, "QtQuick.Rectangle", 1, 0, "children")); - ModelNode childNode2(addNodeListChild(childNode1, "Qt/Rectangle", 4, 7, "children")); + ModelNode childNode2(addNodeListChild(childNode1, "QtQuick.Flipable", 1, 0, "children")); childNode2.setId("childNode2"); - childNode2.bindingProperty("test").setExpression("parent.parent"); + childNode2.bindingProperty("anchors.fill").setExpression("parent.parent"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), rootNode); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), rootNode); childNode1.setId("childNode1"); - childNode2.bindingProperty("test").setExpression("childNode1.parent"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), rootNode); - childNode2.bindingProperty("test").setExpression("rootNode"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), rootNode); + childNode2.bindingProperty("anchors.fill").setExpression("childNode1.parent"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), rootNode); + childNode2.bindingProperty("anchors.fill").setExpression("rootNode"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), rootNode); - ModelNode childNode3(addNodeListChild(childNode2, "Qt/Rectangle", 4, 7, "children")); + ModelNode childNode3(addNodeListChild(childNode2, "QtQuick.Rectangle", 1, 0, "children")); childNode3.setId("childNode3"); childNode2.nodeProperty("front").setModelNode(childNode3); - childNode2.bindingProperty("test").setExpression("childNode3.parent"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), childNode2); - childNode2.bindingProperty("test").setExpression("childNode3.parent.parent"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), childNode1); - childNode2.bindingProperty("test").setExpression("childNode3.parent.parent.parent"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), rootNode); - childNode2.bindingProperty("test").setExpression("childNode3"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), childNode3); - childNode2.bindingProperty("test").setExpression("front"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), childNode3); - childNode2.bindingProperty("test").setExpression("back"); - QVERIFY(!childNode2.bindingProperty("test").resolveToModelNode().isValid()); - childNode2.bindingProperty("test").setExpression("childNode3.parent.front"); - QCOMPARE(childNode2.bindingProperty("test").resolveToModelNode(), childNode3); + childNode2.bindingProperty("anchors.fill").setExpression("childNode3.parent"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), childNode2); + childNode2.bindingProperty("anchors.fill").setExpression("childNode3.parent.parent"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), childNode1); + childNode2.bindingProperty("anchors.fill").setExpression("childNode3.parent.parent.parent"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), rootNode); + childNode2.bindingProperty("anchors.fill").setExpression("childNode3"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), childNode3); + childNode2.bindingProperty("anchors.fill").setExpression("front"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), childNode3); + childNode2.bindingProperty("anchors.fill").setExpression("back"); + QVERIFY(!childNode2.bindingProperty("anchors.fill").resolveToModelNode().isValid()); + childNode2.bindingProperty("anchors.fill").setExpression("childNode3.parent.front"); + QCOMPARE(childNode2.bindingProperty("anchors.fill").resolveToModelNode(), childNode3); childNode2.variantProperty("x") = 10; QCOMPARE(childNode2.variantProperty("x").value().toInt(), 10); - childNode2.bindingProperty("test").setExpression("childNode3.parent.x"); - QVERIFY(childNode2.bindingProperty("test").resolveToProperty().isVariantProperty()); - QCOMPARE(childNode2.bindingProperty("test").resolveToProperty().toVariantProperty().value().toInt(), 10); + childNode2.bindingProperty("width").setExpression("childNode3.parent.x"); + QVERIFY(childNode2.bindingProperty("width").resolveToProperty().isVariantProperty()); + QCOMPARE(childNode2.bindingProperty("width").resolveToProperty().toVariantProperty().value().toInt(), 10); - childNode2.bindingProperty("test").setExpression("childNode3.parent.test"); - QVERIFY(childNode2.bindingProperty("test").resolveToProperty().isBindingProperty()); - QCOMPARE(childNode2.bindingProperty("test").resolveToProperty().toBindingProperty().expression(), QString("childNode3.parent.test")); + childNode2.bindingProperty("width").setExpression("childNode3.parent.width"); + QVERIFY(childNode2.bindingProperty("width").resolveToProperty().isBindingProperty()); + QCOMPARE(childNode2.bindingProperty("width").resolveToProperty().toBindingProperty().expression(), QString("childNode3.parent.width")); } void tst_TestCore::testModelNodeListProperty() @@ -1396,7 +1553,7 @@ void tst_TestCore::testModelNodeListProperty() // // Test NodeListProperty API // - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1414,7 +1571,7 @@ void tst_TestCore::testModelNodeListProperty() QVERIFY(!rootChildren.isNodeListProperty()); QVERIFY(rootChildren.isEmpty()); - ModelNode rectNode = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode rectNode = view->createModelNode("QtQuick.Rectangle", 1, 0); rootChildren.reparentHere(rectNode); // @@ -1425,7 +1582,7 @@ void tst_TestCore::testModelNodeListProperty() QVERIFY(rootChildren.isNodeListProperty()); QVERIFY(!rootChildren.isEmpty()); - ModelNode mouseAreaNode = view->createModelNode("Qt/Item", 4, 7); + ModelNode mouseAreaNode = view->createModelNode("QtQuick.Item", 1, 1); NodeListProperty rectChildren = rectNode.nodeListProperty("children"); rectChildren.reparentHere(mouseAreaNode); @@ -1453,7 +1610,7 @@ void tst_TestCore::testModelNodeListProperty() void tst_TestCore::testBasicOperationsWithView() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1467,10 +1624,6 @@ void tst_TestCore::testBasicOperationsWithView() QCOMPARE(rootModelNode.allDirectSubModelNodes().count(), 0); NodeInstance rootInstance = nodeInstanceView->instanceForNode(rootModelNode); - // no width, height specified implicitly is set to 100x100 - QCOMPARE(rootInstance.size().width(), 100.0); - QCOMPARE(rootInstance.size().height(), 100.0); - QVERIFY(rootInstance.isValid()); QVERIFY(rootModelNode.isValid()); @@ -1484,8 +1637,8 @@ void tst_TestCore::testBasicOperationsWithView() QCOMPARE(rootInstance.size().width(), 10.0); QCOMPARE(rootInstance.size().height(), 10.0); - ModelNode childNode(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); - ModelNode childNode2(addNodeListChild(childNode, "Qt/Rectangle", 4, 7, "data")); + ModelNode childNode(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); + ModelNode childNode2(addNodeListChild(childNode, "QtQuick.Rectangle", 1, 0, "data")); QVERIFY(childNode2.parentProperty().parentModelNode() == childNode); QVERIFY(childNode.isValid()); @@ -1519,10 +1672,10 @@ void tst_TestCore::testBasicOperationsWithView() QVERIFY(!childInstance2.isValid()); } - childNode = addNodeListChild(rootModelNode, "Qt/Image", 4, 7, "data"); + childNode = addNodeListChild(rootModelNode, "QtQuick.Image", 1, 0, "data"); QVERIFY(childNode.isValid()); - QCOMPARE(childNode.type(), QString("Qt/Image")); - childNode2 = addNodeListChild(childNode, "Qt/Rectangle", 4, 7, "data"); + QCOMPARE(childNode.type(), QString("QtQuick.Image")); + childNode2 = addNodeListChild(childNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode2.isValid()); childNode2.setParentProperty(rootModelNode, "data"); QVERIFY(childNode2.isValid()); @@ -1560,7 +1713,7 @@ void tst_TestCore::testBasicOperationsWithView() void tst_TestCore::testQmlModelView() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QmlModelView *view = new TestView(model.data()); @@ -1578,7 +1731,7 @@ void tst_TestCore::testQmlModelView() propertyList.append(qMakePair(QString("width"), QVariant(20))); propertyList.append(qMakePair(QString("height"), QVariant(20))); - QmlObjectNode node1 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); + QmlObjectNode node1 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); QVERIFY(node1.isValid()); QVERIFY(!node1.hasNodeParent()); @@ -1594,7 +1747,7 @@ void tst_TestCore::testQmlModelView() QVERIFY(node1.instanceParent() == view->rootQmlObjectNode()); - QmlObjectNode node2 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); + QmlObjectNode node2 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); QVERIFY(node2.isValid()); QVERIFY(!node2.hasNodeParent()); @@ -1622,12 +1775,12 @@ void tst_TestCore::testQmlModelView() QCOMPARE(node1.instanceValue("x").toInt(), 2); - QmlObjectNode node3 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); - QmlObjectNode node4 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); - QmlObjectNode node5 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); - QmlObjectNode node6 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); - QmlObjectNode node7 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); - QmlObjectNode node8 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); + QmlObjectNode node3 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); + QmlObjectNode node4 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); + QmlObjectNode node5 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); + QmlObjectNode node6 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); + QmlObjectNode node7 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); + QmlObjectNode node8 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); node3.setParentProperty(node2.nodeAbstractProperty("children")); node4.setParentProperty(node3.nodeAbstractProperty("children")); @@ -1655,21 +1808,20 @@ void tst_TestCore::testQmlModelView() QCOMPARE(node2.instanceValue("x").toInt(), 10); // is this right? or should it be a invalid qvariant? - node1 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); + node1 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); node1.setId("node1"); QCOMPARE(node2.instanceValue("x").toInt(), 20); - node3 = view->createQmlObjectNode("Qt/Rectangle", 4, 7, propertyList); + node3 = view->createQmlObjectNode("QtQuick.Rectangle", 1, 0, propertyList); node3.setParentProperty(node2.nodeAbstractProperty("children")); QCOMPARE(node3.instanceValue("width").toInt(), 20); node3.setVariantProperty("width", 0); QCOMPARE(node3.instanceValue("width").toInt(), 0); QCOMPARE(node3.instanceValue("x").toInt(), 20); - QVERIFY(!QDeclarativeMetaType::toQObject(node3.instanceValue("anchors.fill"))); + //QVERIFY(!QDeclarativeMetaType::toQObject(node3.instanceValue("anchors.fill"))); node3.setBindingProperty("anchors.fill", "parent"); - QVERIFY(QDeclarativeMetaType::toQObject(node3.instanceValue("anchors.fill"))); QCOMPARE(node3.instanceValue("x").toInt(), 0); QCOMPARE(node3.instanceValue("width").toInt(), 20); @@ -1682,7 +1834,7 @@ void tst_TestCore::testQmlModelView() void tst_TestCore::testModelRemoveNode() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1695,7 +1847,7 @@ void tst_TestCore::testModelRemoveNode() QCOMPARE(view->rootModelNode().allDirectSubModelNodes().count(), 0); - ModelNode childNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); QCOMPARE(view->rootModelNode().allDirectSubModelNodes().count(), 1); QVERIFY(view->rootModelNode().allDirectSubModelNodes().contains(childNode)); @@ -1707,7 +1859,7 @@ void tst_TestCore::testModelRemoveNode() QVERIFY(childInstance.parentId() == view->rootModelNode().internalId()); } - ModelNode subChildNode = addNodeListChild(childNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode subChildNode = addNodeListChild(childNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(subChildNode.isValid()); QCOMPARE(childNode.allDirectSubModelNodes().count(), 1); QVERIFY(childNode.allDirectSubModelNodes().contains(subChildNode)); @@ -1738,7 +1890,7 @@ void tst_TestCore::testModelRemoveNode() QVERIFY(view->rootModelNode().isValid()); // delete node not in hierarchy - childNode = view->createModelNode("Qt/Item", 4, 7); + childNode = view->createModelNode("QtQuick.Item", 1, 1); childNode.destroy(); model->detachView(nodeInstanceView); @@ -1746,7 +1898,7 @@ void tst_TestCore::testModelRemoveNode() void tst_TestCore::reparentingNode() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); @@ -1763,7 +1915,7 @@ void tst_TestCore::reparentingNode() NodeInstanceView *nodeInstanceView = new NodeInstanceView(model.data(), NodeInstanceServerInterface::TestModus); model->attachView(nodeInstanceView); - ModelNode childNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QCOMPARE(childNode.parentProperty().parentModelNode(), rootModelNode); QVERIFY(rootModelNode.allDirectSubModelNodes().contains(childNode)); @@ -1773,7 +1925,7 @@ void tst_TestCore::reparentingNode() QVERIFY(childInstance.parentId() == view->rootModelNode().internalId()); } - ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/Item", 4, 7, "data"); + ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.Item", 1, 1, "data"); QCOMPARE(childNode2.parentProperty().parentModelNode(), rootModelNode); QVERIFY(rootModelNode.allDirectSubModelNodes().contains(childNode2)); @@ -1808,16 +1960,17 @@ void tst_TestCore::reparentingNode() QCOMPARE(childNode.parentProperty().parentModelNode(), childNode2); + QApplication::processEvents(); model->detachView(nodeInstanceView); } void tst_TestCore::reparentingNodeLikeDragAndDrop() { QPlainTextEdit textEdit; - textEdit.setPlainText("import Qt 4.7;\n\nItem {\n}\n"); + textEdit.setPlainText("import QtQuick 1.1;\n\nItem {\n}\n"); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -1833,7 +1986,7 @@ void tst_TestCore::reparentingNodeLikeDragAndDrop() view->rootModelNode().setId("rootModelNode"); QCOMPARE(view->rootModelNode().id(), QString("rootModelNode")); - ModelNode rectNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode rectNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); rectNode.setId("rect_1"); rectNode.variantProperty("x").setValue(20); rectNode.variantProperty("y").setValue(30); @@ -1842,7 +1995,7 @@ void tst_TestCore::reparentingNodeLikeDragAndDrop() RewriterTransaction transaction(view->beginRewriterTransaction()); - ModelNode textNode = addNodeListChild(view->rootModelNode(), "Qt/Text", 4, 7, "data"); + ModelNode textNode = addNodeListChild(view->rootModelNode(), "QtQuick.Text", 1, 1, "data"); QCOMPARE(textNode.parentProperty().parentModelNode(), view->rootModelNode()); QVERIFY(view->rootModelNode().allDirectSubModelNodes().contains(textNode)); @@ -1925,12 +2078,14 @@ void tst_TestCore::reparentingNodeLikeDragAndDrop() QCOMPARE(textNode.parentProperty().parentModelNode(), rectNode); QVERIFY(rectNode.allDirectSubModelNodes().contains(textNode)); + QApplication::processEvents(); + model->detachView(nodeInstanceView); } void tst_TestCore::testModelReorderSiblings() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1943,11 +2098,11 @@ void tst_TestCore::testModelReorderSiblings() ModelNode rootModelNode = view->rootModelNode(); QVERIFY(rootModelNode.isValid()); - ModelNode a = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode a = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(a.isValid()); - ModelNode b = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode b = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(b.isValid()); - ModelNode c = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode c = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(c.isValid()); { @@ -1976,12 +2131,14 @@ void tst_TestCore::testModelReorderSiblings() QVERIFY(nodeInstanceView->instanceForNode(c).parentId() == rootModelNode.internalId()); } + QApplication::processEvents(); + model->detachView(nodeInstanceView); } void tst_TestCore::testModelRootNode() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -1992,10 +2149,10 @@ void tst_TestCore::testModelRootNode() ModelNode rootModelNode = view->rootModelNode(); QVERIFY(rootModelNode.isValid()); QVERIFY(rootModelNode.isRootNode()); - ModelNode topChildNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode topChildNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(topChildNode.isValid()); QVERIFY(rootModelNode.isRootNode()); - ModelNode childNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); QVERIFY(rootModelNode.isValid()); QVERIFY(rootModelNode.isRootNode()); @@ -2008,19 +2165,20 @@ void tst_TestCore::testModelRootNode() QString errorMsg = tr("Exception: %1 %2 %3:%4").arg(exception.type(), exception.function(), exception.file()).arg(exception.line()); QFAIL(errorMsg.toLatin1().constData()); } + QApplication::processEvents(); } void tst_TestCore::reparentingNodeInModificationGroup() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - ModelNode childNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode2 = addNodeListChild(view->rootModelNode(), "Qt/Item", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode2 = addNodeListChild(view->rootModelNode(), "QtQuick.Item", 1, 1, "data"); childNode.variantProperty("x").setValue(10); childNode.variantProperty("y").setValue(10); @@ -2058,11 +2216,13 @@ void tst_TestCore::reparentingNodeInModificationGroup() QCOMPARE(childNode2.parentProperty().parentModelNode(), view->rootModelNode()); QVERIFY(childNode2.isValid()); QVERIFY(view->rootModelNode().allDirectSubModelNodes().contains(childNode2)); + + QApplication::processEvents(); } void tst_TestCore::testModelAddAndRemoveProperty() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2098,12 +2258,14 @@ void tst_TestCore::testModelAddAndRemoveProperty() QVERIFY(node.hasProperty("foo")); QCOMPARE(node.variantProperty("foo").value().toString(), QString("bar")); + QApplication::processEvents(); + model->detachView(nodeInstanceView); } void tst_TestCore::testModelViewNotification() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view1(new TestView(model.data())); @@ -2125,7 +2287,7 @@ void tst_TestCore::testModelViewNotification() QCOMPARE(view1->methodCalls(), expectedCalls); QCOMPARE(view2->methodCalls(), expectedCalls); - ModelNode childNode = addNodeListChild(view2->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view2->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); expectedCalls << TestView::MethodCall("nodeCreated", QStringList() << ""); expectedCalls << TestView::MethodCall("nodeReparented", QStringList() << "" << "data" << "" << "PropertiesAdded"); QCOMPARE(view1->methodCalls(), expectedCalls); @@ -2155,7 +2317,7 @@ void tst_TestCore::testModelViewNotification() QCOMPARE(view1->methodCalls(), expectedCalls); QCOMPARE(view2->methodCalls(), expectedCalls); - childNode.bindingProperty("visible").setExpression("false"); + childNode.bindingProperty("visible").setExpression("false && true"); expectedCalls << TestView::MethodCall("propertiesAboutToBeRemoved", QStringList() << "visible"); expectedCalls << TestView::MethodCall("bindingPropertiesChanged", QStringList() << "visible" << "PropertiesAdded"); QCOMPARE(view1->methodCalls(), expectedCalls); @@ -2170,12 +2332,14 @@ void tst_TestCore::testModelViewNotification() model->detachView(view1.data()); expectedCalls << TestView::MethodCall("modelAboutToBeDetached", QStringList() << QString::number(reinterpret_cast<long>(model.data()))); QCOMPARE(view1->methodCalls(), expectedCalls); + + QApplication::processEvents(); } void tst_TestCore::testRewriterTransaction() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2185,7 +2349,7 @@ void tst_TestCore::testRewriterTransaction() RewriterTransaction transaction = view->beginRewriterTransaction(); QVERIFY(transaction.isValid()); - ModelNode childNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); childNode.destroy(); @@ -2195,7 +2359,7 @@ void tst_TestCore::testRewriterTransaction() RewriterTransaction transaction2 = view->beginRewriterTransaction(); QVERIFY(transaction2.isValid()); - ModelNode childNode = addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); childNode.destroy(); @@ -2222,7 +2386,7 @@ void tst_TestCore::testRewriterTransaction() void tst_TestCore::testRewriterId() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2230,7 +2394,7 @@ void tst_TestCore::testRewriterId() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2245,16 +2409,16 @@ void tst_TestCore::testRewriterId() model->attachView(testRewriterView.data()); - QCOMPARE(rootModelNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Rectangle")); QVERIFY(rootModelNode.isValid()); - ModelNode newNode(view->createModelNode("Qt/Rectangle", 4, 7)); + ModelNode newNode(view->createModelNode("QtQuick.Rectangle", 1, 0)); newNode.setId("testId"); rootModelNode.nodeListProperty("data").reparentHere(newNode); - const QLatin1String expected("import Qt 4.7\n" + const QLatin1String expected("import QtQuick 1.1\n" "Rectangle {\n" "Rectangle {\n" " id: testId\n" @@ -2266,7 +2430,7 @@ void tst_TestCore::testRewriterId() void tst_TestCore::testRewriterNodeReparentingTransaction1() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2274,7 +2438,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction1() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2283,7 +2447,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction1() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); @@ -2291,12 +2455,12 @@ void tst_TestCore::testRewriterNodeReparentingTransaction1() QVERIFY(rootModelNode.isValid()); - ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode3 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode4 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode3 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode4 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); - ModelNode reparentNode = addNodeListChild(childNode1, "Qt/Rectangle", 4, 7, "data"); + ModelNode reparentNode = addNodeListChild(childNode1, "QtQuick.Rectangle", 1, 0, "data"); RewriterTransaction rewriterTransaction = view->beginRewriterTransaction(); @@ -2311,7 +2475,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction1() void tst_TestCore::testRewriterNodeReparentingTransaction2() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2319,7 +2483,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction2() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2328,7 +2492,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction2() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); @@ -2336,8 +2500,8 @@ void tst_TestCore::testRewriterNodeReparentingTransaction2() QVERIFY(rootModelNode.isValid()); - ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); childNode2.variantProperty("x") = 200; childNode2.variantProperty("y") = 50; @@ -2377,7 +2541,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction2() void tst_TestCore::testRewriterNodeReparentingTransaction3() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2385,7 +2549,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction3() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2394,7 +2558,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction3() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); @@ -2402,10 +2566,10 @@ void tst_TestCore::testRewriterNodeReparentingTransaction3() QVERIFY(rootModelNode.isValid()); - ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode3 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode4 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode3 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode4 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); RewriterTransaction rewriterTransaction = view->beginRewriterTransaction(); @@ -2427,7 +2591,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction3() void tst_TestCore::testRewriterNodeReparentingTransaction4() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2435,7 +2599,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction4() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2444,7 +2608,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction4() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); @@ -2452,11 +2616,11 @@ void tst_TestCore::testRewriterNodeReparentingTransaction4() QVERIFY(rootModelNode.isValid()); - ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode3 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode4 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); - ModelNode childNode5 = addNodeListChild(childNode2, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode3 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode4 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); + ModelNode childNode5 = addNodeListChild(childNode2, "QtQuick.Rectangle", 1, 0, "data"); RewriterTransaction rewriterTransaction = view->beginRewriterTransaction(); @@ -2478,7 +2642,7 @@ void tst_TestCore::testRewriterNodeReparentingTransaction4() void tst_TestCore::testRewriterAddNodeTransaction() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2486,7 +2650,7 @@ void tst_TestCore::testRewriterAddNodeTransaction() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2495,7 +2659,7 @@ void tst_TestCore::testRewriterAddNodeTransaction() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); @@ -2504,11 +2668,11 @@ void tst_TestCore::testRewriterAddNodeTransaction() QVERIFY(rootModelNode.isValid()); - ModelNode childNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); RewriterTransaction rewriterTransaction = view->beginRewriterTransaction(); - ModelNode newNode = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode newNode = view->createModelNode("QtQuick.Rectangle", 1, 0); newNode.variantProperty("x") = 100; newNode.variantProperty("y") = 100; @@ -2520,7 +2684,7 @@ void tst_TestCore::testRewriterAddNodeTransaction() void tst_TestCore::testRewriterComponentId() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" " Component {\n" " id: testComponent\n" @@ -2533,7 +2697,7 @@ void tst_TestCore::testRewriterComponentId() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2546,17 +2710,17 @@ void tst_TestCore::testRewriterComponentId() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Rectangle")); ModelNode component(rootModelNode.allDirectSubModelNodes().first()); QVERIFY(component.isValid()); - QCOMPARE(component.type(), QString("Qt/Component")); + QCOMPARE(component.type(), QString("QtQuick.Component")); QCOMPARE(component.id(), QString("testComponent")); } void tst_TestCore::testRewriterTransactionRewriter() { - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "}\n"; @@ -2564,7 +2728,7 @@ void tst_TestCore::testRewriterTransactionRewriter() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2573,7 +2737,7 @@ void tst_TestCore::testRewriterTransactionRewriter() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); @@ -2586,7 +2750,7 @@ void tst_TestCore::testRewriterTransactionRewriter() { RewriterTransaction transaction = view->beginRewriterTransaction(); - childNode1 = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + childNode1 = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); childNode1.variantProperty("x") = 10; childNode1.variantProperty("y") = 10; } @@ -2598,7 +2762,7 @@ void tst_TestCore::testRewriterTransactionRewriter() { RewriterTransaction transaction = view->beginRewriterTransaction(); - childNode2 = addNodeListChild(childNode1, "Qt/Rectangle", 4, 7, "data"); + childNode2 = addNodeListChild(childNode1, "QtQuick.Rectangle", 1, 0, "data"); childNode2.destroy(); } @@ -2623,7 +2787,7 @@ void tst_TestCore::testRewriterPropertyDeclarations() // property variant myArray: [ Rectangle {} ] // property variant someGradient: Gradient {} - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Item {\n" " property int intProperty\n" " property bool boolProperty: true\n" @@ -2636,7 +2800,7 @@ void tst_TestCore::testRewriterPropertyDeclarations() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2654,7 +2818,7 @@ void tst_TestCore::testRewriterPropertyDeclarations() // ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QCOMPARE(rootModelNode.properties().size(), 4); @@ -2687,7 +2851,7 @@ void tst_TestCore::testRewriterPropertyAliases() // where type is (int | bool | double | real | string | url | color | date | variant) // - char qmlString[] = "import Qt 4.7\n" + char qmlString[] = "import QtQuick 1.1\n" "Item {\n" " property alias theText: t.text\n" " default alias property yPos: t.y\n" @@ -2698,7 +2862,7 @@ void tst_TestCore::testRewriterPropertyAliases() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2711,7 +2875,7 @@ void tst_TestCore::testRewriterPropertyAliases() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QList<AbstractProperty> properties = rootModelNode.properties(); QCOMPARE(properties.size(), 0); // TODO: How to represent alias properties? As Bindings? @@ -2720,7 +2884,7 @@ void tst_TestCore::testRewriterPropertyAliases() void tst_TestCore::testRewriterPositionAndOffset() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: root\n" @@ -2758,7 +2922,7 @@ void tst_TestCore::testRewriterPositionAndOffset() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2771,7 +2935,7 @@ void tst_TestCore::testRewriterPositionAndOffset() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); QString string = QString(qmlString).mid(testRewriterView->nodeOffset(rootNode), testRewriterView->nodeLength(rootNode)); const QString qmlExpected0("Rectangle {\n" @@ -2837,7 +3001,7 @@ void tst_TestCore::testRewriterPositionAndOffset() void tst_TestCore::testRewriterComponentTextModifier() { - const QString qmlString("import Qt 4.7\n" + const QString qmlString("import QtQuick 1.1\n" "Rectangle {\n" " id: root\n" " x: 10;\n" @@ -2860,7 +3024,7 @@ void tst_TestCore::testRewriterComponentTextModifier() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2873,7 +3037,7 @@ void tst_TestCore::testRewriterComponentTextModifier() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); ModelNode componentNode = rootNode.allDirectSubModelNodes().last(); @@ -2884,7 +3048,7 @@ void tst_TestCore::testRewriterComponentTextModifier() ComponentTextModifier componentTextModifier(&textModifier, componentStartOffset, componentEndOffset, rootStartOffset); - const QString qmlExpected("import Qt 4.7\n" + const QString qmlExpected("import QtQuick 1.1\n" " " " " " " @@ -2905,19 +3069,20 @@ void tst_TestCore::testRewriterComponentTextModifier() QCOMPARE(componentTextModifier.text(), qmlExpected); - QScopedPointer<Model> componentModel(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> componentModel(Model::create("QtQuick.Item", 1, 1)); QScopedPointer<TestRewriterView> testRewriterViewComponent(new TestRewriterView()); testRewriterViewComponent->setTextModifier(&componentTextModifier); componentModel->attachView(testRewriterViewComponent.data()); ModelNode componentrootNode = testRewriterViewComponent->rootModelNode(); QVERIFY(componentrootNode.isValid()); - QCOMPARE(componentrootNode.type(), QLatin1String("Qt/Component")); + //The <Component> node is skipped + QCOMPARE(componentrootNode.type(), QLatin1String("QtQuick.Rectangle")); } void tst_TestCore::testRewriterPreserveType() { - const QString qmlString("import Qt 4.7\n" + const QString qmlString("import QtQuick 1.1\n" "Rectangle {\n" " id: root\n" " Text {\n" @@ -2930,7 +3095,7 @@ void tst_TestCore::testRewriterPreserveType() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2943,7 +3108,7 @@ void tst_TestCore::testRewriterPreserveType() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); ModelNode textNode = rootNode.allDirectSubModelNodes().first(); QCOMPARE(QVariant::Bool, textNode.variantProperty("font.bold").value().type()); @@ -2952,7 +3117,7 @@ void tst_TestCore::testRewriterPreserveType() textNode.variantProperty("font.bold") = QVariant(true); textNode.variantProperty("font.pointSize") = QVariant(13.0); - ModelNode newTextNode = addNodeListChild(rootNode, "Qt/Text", 4, 7, "data"); + ModelNode newTextNode = addNodeListChild(rootNode, "QtQuick.Text", 1, 1, "data"); newTextNode.variantProperty("font.bold") = QVariant(true); newTextNode.variantProperty("font.pointSize") = QVariant(13.0); @@ -2964,7 +3129,7 @@ void tst_TestCore::testRewriterPreserveType() void tst_TestCore::testRewriterForArrayMagic() { try { - const QLatin1String qmlString("import Qt 4.7\n" + const QLatin1String qmlString("import QtQuick 1.1\n" "\n" "Rectangle {\n" " states: State {\n" @@ -2975,7 +3140,7 @@ void tst_TestCore::testRewriterForArrayMagic() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -2988,16 +3153,16 @@ void tst_TestCore::testRewriterForArrayMagic() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); QVERIFY(rootNode.property(QLatin1String("states")).isNodeListProperty()); QmlItemNode rootItem(rootNode); QVERIFY(rootItem.isValid()); QmlModelState state1(rootItem.states().addState("s2")); - QCOMPARE(state1.modelNode().type(), QString("Qt/State")); + QCOMPARE(state1.modelNode().type(), QString("QtQuick.State")); - const QLatin1String expected("import Qt 4.7\n" + const QLatin1String expected("import QtQuick 1.1\n" "\n" "Rectangle {\n" " states: [\n" @@ -3018,7 +3183,7 @@ void tst_TestCore::testRewriterForArrayMagic() void tst_TestCore::testRewriterWithSignals() { - const QLatin1String qmlString("import Qt 4.7\n" + const QLatin1String qmlString("import QtQuick 1.1\n" "\n" "TextEdit {\n" " onTextChanged: { print(\"foo\"); }\n" @@ -3027,7 +3192,7 @@ void tst_TestCore::testRewriterWithSignals() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3040,7 +3205,7 @@ void tst_TestCore::testRewriterWithSignals() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/TextEdit")); + QCOMPARE(rootNode.type(), QString("QtQuick.TextEdit")); QmlItemNode rootItem(rootNode); QVERIFY(rootItem.isValid()); @@ -3050,7 +3215,7 @@ void tst_TestCore::testRewriterWithSignals() void tst_TestCore::testRewriterNodeSliding() { - const QLatin1String qmlString("import Qt 4.7\n" + const QLatin1String qmlString("import QtQuick 1.1\n" "Rectangle {\n" " id: root\n" " Rectangle {\n" @@ -3070,7 +3235,7 @@ void tst_TestCore::testRewriterNodeSliding() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3083,7 +3248,7 @@ void tst_TestCore::testRewriterNodeSliding() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); QCOMPARE(rootNode.id(), QLatin1String("root")); QCOMPARE(rootNode.nodeListProperty(QLatin1String("data")).toModelNodeList().at(0).id(), QLatin1String("rectangle1")); @@ -3102,7 +3267,7 @@ void tst_TestCore::testRewriterNodeSliding() void tst_TestCore::testRewriterExceptionHandling() { - const QLatin1String qmlString("import Qt 4.7\n" + const QLatin1String qmlString("import QtQuick 1.1\n" "Text {\n" "}"); @@ -3110,7 +3275,7 @@ void tst_TestCore::testRewriterExceptionHandling() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Text", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Text", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3123,7 +3288,7 @@ void tst_TestCore::testRewriterExceptionHandling() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Text")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Text")); try { @@ -3132,9 +3297,9 @@ void tst_TestCore::testRewriterExceptionHandling() rootNode.variantProperty("bla") = QVariant("blah"); transaction.commit(); QFAIL("RewritingException should be thrown"); - } catch (RewritingException &e) { + } catch (RewritingException &) { QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Text")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Text")); QVERIFY(!rootNode.hasProperty("bla")); QVERIFY(!rootNode.hasProperty("text")); } @@ -3142,7 +3307,7 @@ void tst_TestCore::testRewriterExceptionHandling() void tst_TestCore::testRewriterFirstDefinitionInside() { - const QString qmlString("import Qt 4.7\n" + const QString qmlString("import QtQuick 1.1\n" "Rectangle {\n" " id: root\n" " x: 10;\n" @@ -3166,7 +3331,7 @@ void tst_TestCore::testRewriterFirstDefinitionInside() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3179,7 +3344,7 @@ void tst_TestCore::testRewriterFirstDefinitionInside() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); ModelNode componentNode = rootNode.allDirectSubModelNodes().last(); @@ -3198,7 +3363,7 @@ void tst_TestCore::testRewriterFirstDefinitionInside() void tst_TestCore::testCopyModelRewriter1() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: root\n" @@ -3236,7 +3401,7 @@ void tst_TestCore::testCopyModelRewriter1() textEdit1.setPlainText(qmlString); NotIndentingTextEditModifier textModifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model1(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model1.data()); QScopedPointer<TestView> view1(new TestView(model1.data())); @@ -3249,13 +3414,13 @@ void tst_TestCore::testCopyModelRewriter1() ModelNode rootNode1 = view1->rootModelNode(); QVERIFY(rootNode1.isValid()); - QCOMPARE(rootNode1.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode1.type(), QLatin1String("QtQuick.Rectangle")); QPlainTextEdit textEdit2; textEdit2.setPlainText(qmlString); NotIndentingTextEditModifier textModifier2(&textEdit2); - QScopedPointer<Model> model2(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model2(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model2.data()); QScopedPointer<TestView> view2(new TestView(model2.data())); @@ -3268,7 +3433,7 @@ void tst_TestCore::testCopyModelRewriter1() ModelNode rootNode2 = view2->rootModelNode(); QVERIFY(rootNode2.isValid()); - QCOMPARE(rootNode2.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode2.type(), QLatin1String("QtQuick.Rectangle")); // @@ -3293,7 +3458,7 @@ void tst_TestCore::testCopyModelRewriter1() const QLatin1String expected( "\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: root\n" @@ -3368,7 +3533,7 @@ void tst_TestCore::testCopyModelRewriter1() void tst_TestCore::testCopyModelRewriter2() { const QLatin1String qmlString1("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "id: root\n" @@ -3408,7 +3573,7 @@ void tst_TestCore::testCopyModelRewriter2() const QLatin1String qmlString2("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -3417,7 +3582,7 @@ void tst_TestCore::testCopyModelRewriter2() textEdit1.setPlainText(qmlString1); NotIndentingTextEditModifier textModifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model1(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model1.data()); QScopedPointer<TestView> view1(new TestView(model1.data())); @@ -3430,7 +3595,7 @@ void tst_TestCore::testCopyModelRewriter2() ModelNode rootNode1 = view1->rootModelNode(); QVERIFY(rootNode1.isValid()); - QCOMPARE(rootNode1.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode1.type(), QLatin1String("QtQuick.Rectangle")); // read in 2 @@ -3439,7 +3604,7 @@ void tst_TestCore::testCopyModelRewriter2() textEdit2.setPlainText(qmlString2); NotIndentingTextEditModifier textModifier2(&textEdit2); - QScopedPointer<Model> model2(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model2(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model2.data()); QScopedPointer<TestView> view2(new TestView(model2.data())); @@ -3451,7 +3616,7 @@ void tst_TestCore::testCopyModelRewriter2() ModelNode rootNode2 = view2->rootModelNode(); QVERIFY(rootNode2.isValid()); - QCOMPARE(rootNode2.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode2.type(), QLatin1String("QtQuick.Rectangle")); // @@ -3460,7 +3625,7 @@ void tst_TestCore::testCopyModelRewriter2() merger.replaceModel(rootNode1); QVERIFY(rootNode2.isValid()); - QCOMPARE(rootNode2.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode2.type(), QLatin1String("QtQuick.Rectangle")); QCOMPARE(textEdit2.toPlainText(), qmlString1); } @@ -3475,9 +3640,9 @@ void tst_TestCore::testSubComponentManager() textEdit.setPlainText(file.readAll()); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); model->setFileUrl(QUrl::fromLocalFile(fileName)); - QScopedPointer<SubComponentManager> subComponentManager(new SubComponentManager(model->metaInfo(), 0)); + QScopedPointer<SubComponentManager> subComponentManager(new SubComponentManager(model.data())); subComponentManager->update(QUrl::fromLocalFile(fileName), model->imports()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -3489,9 +3654,9 @@ void tst_TestCore::testSubComponentManager() QVERIFY(testRewriterView->rootModelNode().isValid()); - QVERIFY(model->metaInfo("Qt/Rectangle").propertyNames().contains("border.width")); + QVERIFY(model->metaInfo("QtQuick.Rectangle").propertyNames().contains("border.width")); - QVERIFY(model->metaInfo("Qt/Pen").isValid()); + QVERIFY(model->metaInfo("<cpp>.QDeclarative1Pen").isValid()); NodeMetaInfo myButtonMetaInfo = model->metaInfo("MyButton"); QVERIFY(myButtonMetaInfo.isValid()); QVERIFY(myButtonMetaInfo.propertyNames().contains("border.width")); @@ -3500,7 +3665,7 @@ void tst_TestCore::testSubComponentManager() void tst_TestCore::testAnchorsAndRewriting() { - const QString qmlString("import Qt 4.7\n" + const QString qmlString("import QtQuick 1.1\n" "Rectangle {\n" " id: root\n" " x: 10;\n" @@ -3523,7 +3688,7 @@ void tst_TestCore::testAnchorsAndRewriting() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3536,7 +3701,7 @@ void tst_TestCore::testAnchorsAndRewriting() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); QmlItemNode rootItemNode = view->rootQmlItemNode(); QVERIFY(rootItemNode.isValid()); @@ -3561,7 +3726,7 @@ void tst_TestCore::testAnchorsAndRewriting() void tst_TestCore::testAnchorsAndRewritingCenter() { - const QString qmlString("import Qt 4.7\n" + const QString qmlString("import QtQuick 1.1\n" "Rectangle {\n" " id: root\n" " x: 10;\n" @@ -3584,7 +3749,7 @@ void tst_TestCore::testAnchorsAndRewritingCenter() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3597,7 +3762,7 @@ void tst_TestCore::testAnchorsAndRewritingCenter() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); QmlItemNode rootItemNode = view->rootQmlItemNode(); QVERIFY(rootItemNode.isValid()); @@ -3611,7 +3776,7 @@ void tst_TestCore::testAnchorsAndRewritingCenter() void tst_TestCore::loadQml() { -char qmlString[] = "import Qt 4.7\n" +char qmlString[] = "import QtQuick 1.1\n" "Rectangle {\n" "id: root;\n" "width: 200;\n" @@ -3652,7 +3817,7 @@ char qmlString[] = "import Qt 4.7\n" textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -3661,14 +3826,14 @@ char qmlString[] = "import Qt 4.7\n" ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Item")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); testRewriterView->setTextModifier(&textModifier); model->attachView(testRewriterView.data()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Rectangle")); QCOMPARE(rootModelNode.id(), QString("root")); QCOMPARE(rootModelNode.variantProperty("width").value().toInt(), 200); QCOMPARE(rootModelNode.variantProperty("height").value().toInt(), 200); @@ -3678,7 +3843,7 @@ char qmlString[] = "import Qt 4.7\n" QCOMPARE(rootModelNode.nodeListProperty("data").toModelNodeList().count(), 3); ModelNode textNode1 = rootModelNode.nodeListProperty("data").toModelNodeList().first(); QVERIFY(textNode1.isValid()); - QCOMPARE(textNode1.type(), QString("Qt/Text")); + QCOMPARE(textNode1.type(), QString("QtQuick.Text")); QCOMPARE(textNode1.id(), QString("text1")); QCOMPARE(textNode1.variantProperty("text").value().toString(), QString("Hello World")); QVERIFY(textNode1.hasProperty("anchors.centerIn")); @@ -3694,13 +3859,13 @@ char qmlString[] = "import Qt 4.7\n" ModelNode rectNode = rootModelNode.nodeListProperty("data").toModelNodeList().at(1); QVERIFY(rectNode.isValid()); - QCOMPARE(rectNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rectNode.type(), QString("QtQuick.Rectangle")); QCOMPARE(rectNode.id(), QString("rectangle")); QVERIFY(rectNode.hasProperty("gradient")); QVERIFY(rectNode.property("gradient").isNodeProperty()); ModelNode gradientNode = rectNode.nodeProperty("gradient").modelNode(); QVERIFY(gradientNode.isValid()); - QCOMPARE(gradientNode.type(), QString("Qt/Gradient")); + QCOMPARE(gradientNode.type(), QString("QtQuick.Gradient")); QVERIFY(gradientNode.hasProperty("stops")); QVERIFY(gradientNode.property("stops").isNodeListProperty()); QCOMPARE(gradientNode.nodeListProperty("stops").toModelNodeList().count(), 2); @@ -3711,15 +3876,15 @@ char qmlString[] = "import Qt 4.7\n" QVERIFY(stop1.isValid()); QVERIFY(stop2.isValid()); - QCOMPARE(stop1.type(), QString("Qt/GradientStop")); - QCOMPARE(stop2.type(), QString("Qt/GradientStop")); + QCOMPARE(stop1.type(), QString("QtQuick.GradientStop")); + QCOMPARE(stop2.type(), QString("QtQuick.GradientStop")); QCOMPARE(stop1.variantProperty("position").value().toInt(), 0); QCOMPARE(stop2.variantProperty("position").value().toInt(), 1); ModelNode textNode2 = rootModelNode.nodeListProperty("data").toModelNodeList().last(); QVERIFY(textNode2.isValid()); - QCOMPARE(textNode2.type(), QString("Qt/Text")); + QCOMPARE(textNode2.type(), QString("QtQuick.Text")); QCOMPARE(textNode2.id(), QString("text2")); QCOMPARE(textNode2.variantProperty("width").value().toInt(), 80); QCOMPARE(textNode2.variantProperty("height").value().toInt(), 20); @@ -3730,105 +3895,83 @@ char qmlString[] = "import Qt 4.7\n" void tst_TestCore::testMetaInfo() { - QSKIP("Fix metainfo", SkipAll); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); + model->changeImports(QList<Import>() << Import::createLibraryImport("QtWebKit", "1.0"), QList<Import>()); // test whether default type is registered - QVERIFY(model->metaInfo("Qt/Item", 4, 7).isValid()); + QVERIFY(model->metaInfo("QtQuick.Item", -1, -1).isValid()); // test whether types from plugins are registered - QVERIFY(model->hasNodeMetaInfo("QtWebKit/WebView", 1, 0)); + QVERIFY(model->hasNodeMetaInfo("QtWebKit.WebView", -1, -1)); // test whether non-qml type is registered - QVERIFY(model->hasNodeMetaInfo("QGraphicsObject", 4, 7)); // Qt 4.7 namespace - QVERIFY(model->hasNodeMetaInfo("QGraphicsObject", 1, 0)); // webkit 1.0 namespace + QVERIFY(model->hasNodeMetaInfo("<cpp>.QGraphicsObject", -1, -1)); // Qt 4.7 namespace } void tst_TestCore::testMetaInfoSimpleType() { - QSKIP("Fix metainfo", SkipAll); - // - // Test type registered with qmlRegisterType: - // - // qmlRegisterType<QDeclarativeItem>("Qt",4,7,"Item") - // - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); - QVERIFY(model->hasNodeMetaInfo("Qt/Item", 4, 7)); - QVERIFY(model->hasNodeMetaInfo("Qt/Item", 4, 7)); + QVERIFY(model->hasNodeMetaInfo("QtQuick.Item", 1, 1)); + QVERIFY(model->hasNodeMetaInfo("QtQuick.Item", 1, 1)); - NodeMetaInfo itemMetaInfo = model->metaInfo("Qt/Item", 4, 7); - NodeMetaInfo itemMetaInfo2 = model->metaInfo("Qt/Item", 4, 7); + NodeMetaInfo itemMetaInfo = model->metaInfo("QtQuick.Item", 1, 1); + NodeMetaInfo itemMetaInfo2 = model->metaInfo("QtQuick.Item", 1, 1); QVERIFY(itemMetaInfo.isValid()); - QCOMPARE(itemMetaInfo.typeName(), QLatin1String("Qt/Item")); - QCOMPARE(itemMetaInfo.majorVersion(), 4); - QCOMPARE(itemMetaInfo.minorVersion(), 7); + QCOMPARE(itemMetaInfo.typeName(), QLatin1String("QtQuick.Item")); + QCOMPARE(itemMetaInfo.majorVersion(), 1); + QCOMPARE(itemMetaInfo.minorVersion(), 1); // super classes NodeMetaInfo graphicsObjectInfo = itemMetaInfo.directSuperClass(); QVERIFY(graphicsObjectInfo.isValid()); - QCOMPARE(graphicsObjectInfo.typeName(), QLatin1String("QGraphicsObject")); + QCOMPARE(graphicsObjectInfo.typeName(), QLatin1String("QtQuick.QGraphicsObject")); QCOMPARE(graphicsObjectInfo.majorVersion(), -1); QCOMPARE(graphicsObjectInfo.minorVersion(), -1); - QCOMPARE(itemMetaInfo.superClasses().size(), 2); // QGraphicsObject, Qt/QtObject - QVERIFY(itemMetaInfo.isSubclassOf("QGraphicsObject", 4, 7)); - QVERIFY(itemMetaInfo.isSubclassOf("Qt/QtObject", 4, 7)); + QCOMPARE(itemMetaInfo.superClasses().size(), 3); // Item, QGraphicsObject, QtQuick.QtObject + QVERIFY(itemMetaInfo.isSubclassOf("QtQuick.QGraphicsObject", -1, -1)); + QVERIFY(itemMetaInfo.isSubclassOf("<cpp>.QObject", -1, -1)); // availableInVersion - QVERIFY(itemMetaInfo.availableInVersion(4, 7)); - QVERIFY(itemMetaInfo.availableInVersion(4, 8)); - QVERIFY(itemMetaInfo.availableInVersion(5, 0)); + QVERIFY(itemMetaInfo.availableInVersion(1, 1)); + QVERIFY(itemMetaInfo.availableInVersion(1, 0)); QVERIFY(itemMetaInfo.availableInVersion(-1, -1)); - QVERIFY(!itemMetaInfo.availableInVersion(4, 6)); - QVERIFY(!itemMetaInfo.availableInVersion(3, 7)); } void tst_TestCore::testMetaInfoUncreatableType() { - QSKIP("Fix metainfo", SkipAll); - // Test type registered with qmlRegisterUncreatableType or qmlRegisterTypeNotAvailable: - // - // qmlRegisterUncreatableType<QDeclarativeAbstractAnimation>("Qt",4,7,"Animation",QDeclarativeAbstractAnimation::tr("Animation is an abstract class")); - // - - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); - QVERIFY(model->hasNodeMetaInfo("Qt/Animation")); - NodeMetaInfo animationTypeInfo = model->metaInfo("Qt/Animation", 4, 7); + QVERIFY(model->hasNodeMetaInfo("QtQuick.Animation")); + NodeMetaInfo animationTypeInfo = model->metaInfo("QtQuick.Animation", 1, 1); QVERIFY(animationTypeInfo.isValid()); QVERIFY(animationTypeInfo.isValid()); - QCOMPARE(animationTypeInfo.typeName(), QLatin1String("Qt/Animation")); - QCOMPARE(animationTypeInfo.majorVersion(), 4); - QCOMPARE(animationTypeInfo.minorVersion(), 7); + QCOMPARE(animationTypeInfo.typeName(), QLatin1String("QtQuick.Animation")); + QCOMPARE(animationTypeInfo.majorVersion(), 1); + QCOMPARE(animationTypeInfo.minorVersion(), 1); NodeMetaInfo qObjectTypeInfo = animationTypeInfo.directSuperClass(); QVERIFY(qObjectTypeInfo.isValid()); - QCOMPARE(qObjectTypeInfo.typeName(), QLatin1String("Qt/QtObject")); - QCOMPARE(qObjectTypeInfo.majorVersion(), 4); - QCOMPARE(qObjectTypeInfo.minorVersion(), 7); - QCOMPARE(animationTypeInfo.superClasses().size(), 1); + QCOMPARE(qObjectTypeInfo.typeName(), QLatin1String("QtQuick.QtObject")); + QCOMPARE(qObjectTypeInfo.majorVersion(), 1); + QCOMPARE(qObjectTypeInfo.minorVersion(), 0); + QCOMPARE(animationTypeInfo.superClasses().size(), 2); } void tst_TestCore::testMetaInfoExtendedType() { - QSKIP("Fix metainfo", SkipAll); - // Test type registered with qmlRegisterExtendedType - // - // qmlRegisterExtendedType<QGraphicsWidget,QDeclarativeGraphicsWidget>("Qt",4,7,"QGraphicsWidget"); - // - - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); - QVERIFY(model->hasNodeMetaInfo("Qt/QGraphicsWidget")); - NodeMetaInfo graphicsWidgetTypeInfo = model->metaInfo("Qt/QGraphicsWidget", 4, 7); + QVERIFY(model->hasNodeMetaInfo("QtQuick.QGraphicsWidget")); + NodeMetaInfo graphicsWidgetTypeInfo = model->metaInfo("QtQuick.QGraphicsWidget", 1, 1); QVERIFY(graphicsWidgetTypeInfo.isValid()); QVERIFY(graphicsWidgetTypeInfo.hasProperty("layout")); // from QGraphicsWidgetDeclarativeUI QVERIFY(graphicsWidgetTypeInfo.hasProperty("font")); // from QGraphicsWidget @@ -3836,10 +3979,10 @@ void tst_TestCore::testMetaInfoExtendedType() NodeMetaInfo graphicsObjectTypeInfo = graphicsWidgetTypeInfo.directSuperClass(); QVERIFY(graphicsObjectTypeInfo.isValid()); - QCOMPARE(graphicsObjectTypeInfo.typeName(), QLatin1String("QGraphicsObject")); + QCOMPARE(graphicsObjectTypeInfo.typeName(), QLatin1String("<cpp>.QGraphicsObject")); QCOMPARE(graphicsObjectTypeInfo.majorVersion(), -1); QCOMPARE(graphicsObjectTypeInfo.minorVersion(), -1); - QCOMPARE(graphicsWidgetTypeInfo.superClasses().size(), 2); + QCOMPARE(graphicsWidgetTypeInfo.superClasses().size(), 3); } void tst_TestCore::testMetaInfoInterface() @@ -3847,22 +3990,16 @@ void tst_TestCore::testMetaInfoInterface() // Test type registered with qmlRegisterInterface // - QSKIP("TODO: Test not implemented yet", SkipAll); + MSKIP_ALL("TODO: Test not implemented yet"); } void tst_TestCore::testMetaInfoCustomType() { - QSKIP("Fix metainfo", SkipAll); - - // Test type registered with qmlRegisterCustomType: - // - // qmlRegisterCustomType<QDeclarativePropertyChanges>("Qt", 4, 7, "PropertyChanges", new QDeclarativePropertyChangesParser); - - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); - QVERIFY(model->hasNodeMetaInfo("Qt/PropertyChanges")); - NodeMetaInfo propertyChangesInfo = model->metaInfo("Qt/PropertyChanges", 4, 7); + QVERIFY(model->hasNodeMetaInfo("QtQuick.PropertyChanges")); + NodeMetaInfo propertyChangesInfo = model->metaInfo("QtQuick.PropertyChanges", 1, 1); QVERIFY(propertyChangesInfo.isValid()); QVERIFY(propertyChangesInfo.hasProperty("target")); // from QDeclarativePropertyChanges QVERIFY(propertyChangesInfo.hasProperty("restoreEntryValues")); // from QDeclarativePropertyChanges @@ -3870,27 +4007,27 @@ void tst_TestCore::testMetaInfoCustomType() NodeMetaInfo stateOperationInfo = propertyChangesInfo.directSuperClass(); QVERIFY(stateOperationInfo.isValid()); - QCOMPARE(stateOperationInfo.typeName(), QLatin1String("QDeclarativeStateOperation")); + QCOMPARE(stateOperationInfo.typeName(), QLatin1String("QtQuick.QDeclarative1StateOperation")); QCOMPARE(stateOperationInfo.majorVersion(), -1); QCOMPARE(stateOperationInfo.minorVersion(), -1); - QCOMPARE(propertyChangesInfo.superClasses().size(), 2); + QCOMPARE(propertyChangesInfo.superClasses().size(), 3); // DeclarativePropertyChanges just has 3 properties QCOMPARE(propertyChangesInfo.propertyNames().size() - stateOperationInfo.propertyNames().size(), 3); + + QApplication::processEvents(); } void tst_TestCore::testMetaInfoEnums() { - QSKIP("Fix metainfo", SkipAll); - - QScopedPointer<Model> model(Model::create("Qt/Text")); + QScopedPointer<Model> model(createModel("QtQuick.Text")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("Qt/Text")); + QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("QtQuick.Text")); QVERIFY(view->rootModelNode().metaInfo().hasProperty("transformOrigin")); @@ -3903,42 +4040,107 @@ void tst_TestCore::testMetaInfoEnums() QCOMPARE(view->rootModelNode().metaInfo().propertyTypeName("horizontalAlignment"), QLatin1String("HAlignment")); QVERIFY(view->rootModelNode().metaInfo().propertyKeysForEnum("horizontalAlignment").contains(QLatin1String("AlignLeft"))); QVERIFY(view->rootModelNode().metaInfo().propertyKeysForEnum("horizontalAlignment").contains(QLatin1String("AlignRight"))); + + QApplication::processEvents(); } -void tst_TestCore::testMetaInfoProperties() +void tst_TestCore::testMetaInfoQtQuick1Vs2() { - QSKIP("Fix metainfo", SkipAll); + char qmlString[] = "import QtQuick 2.0\n" + "Rectangle {\n" + "id: root;\n" + "width: 200;\n" + "height: 200;\n" + "color: \"white\";\n" + "Text {\n" + "id: text1\n" + "text: \"Hello World\"\n" + "anchors.centerIn: parent\n" + "Item {\n" + "id: item\n" + "}\n" + "}\n" + "Rectangle {\n" + "id: rectangle;\n" + "gradient: Gradient {\n" + "GradientStop {\n" + "position: 0\n" + "color: \"white\"\n" + "}\n" + "GradientStop {\n" + "position: 1\n" + "color: \"black\"\n" + "}\n" + "}\n" + "}\n" + "Text {\n" + "text: \"text\"\n" + "x: 66\n" + "y: 43\n" + "width: 80\n" + "height: 20\n" + "id: text2\n" + "}\n" + "}\n"; + + QPlainTextEdit textEdit; + textEdit.setPlainText(qmlString); + NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Text")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); - NodeMetaInfo textNodeMetaInfo = model->metaInfo("Qt/TextEdit", 4, 7); + 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")); + + QVERIFY(!model->metaInfo("Rectangle", 1, 0).isValid()); + QVERIFY(model->metaInfo("Rectangle", -1, -1).isValid()); + QVERIFY(model->metaInfo("Rectangle", 2, 0).isValid()); + + QVERIFY(!model->metaInfo("QtQuick.Rectangle", 1, 0).isValid()); + QVERIFY(model->metaInfo("QtQuick.Rectangle", -1, -1).isValid()); + QVERIFY(model->metaInfo("QtQuick.Rectangle", 2, 0).isValid()); +} + +void tst_TestCore::testMetaInfoProperties() +{ + QScopedPointer<Model> model(createModel("QtQuick.Text")); + QVERIFY(model.data()); + + NodeMetaInfo textNodeMetaInfo = model->metaInfo("QtQuick.TextEdit", 1, 1); QVERIFY(textNodeMetaInfo.hasProperty("text")); // QDeclarativeTextEdit QVERIFY(textNodeMetaInfo.hasProperty("parent")); // QDeclarativeItem QVERIFY(textNodeMetaInfo.hasProperty("x")); // QGraphicsObject - QVERIFY(textNodeMetaInfo.hasProperty("objectName")); // Qt/QObject + QVERIFY(textNodeMetaInfo.hasProperty("objectName")); // QtQuick.QObject QVERIFY(!textNodeMetaInfo.hasProperty("bla")); QVERIFY(textNodeMetaInfo.propertyIsWritable("text")); QVERIFY(textNodeMetaInfo.propertyIsWritable("x")); + + QApplication::processEvents(); } void tst_TestCore::testMetaInfoDotProperties() { - QSKIP("Fix metainfo", SkipAll); - - QScopedPointer<Model> model(Model::create("Qt/Text")); + QScopedPointer<Model> model(createModel("QtQuick.Text")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - QVERIFY(model->hasNodeMetaInfo("Qt/Text")); + QVERIFY(model->hasNodeMetaInfo("QtQuick.Text")); - QVERIFY(model->hasNodeMetaInfo("Qt/Pen")); + QVERIFY(model->metaInfo("QtQuick.Rectangle").hasProperty("border")); + QCOMPARE(model->metaInfo("QtQuick.Rectangle").propertyTypeName("border"), QString("<cpp>.QDeclarative1Pen")); - QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("Qt/Text")); + QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("QtQuick.Text")); QVERIFY(view->rootModelNode().metaInfo().hasProperty("font")); QVERIFY(view->rootModelNode().metaInfo().hasProperty("font.bold")); @@ -3946,32 +4148,30 @@ void tst_TestCore::testMetaInfoDotProperties() QVERIFY(view->rootModelNode().metaInfo().propertyNames().contains("font.pointSize")); QVERIFY(view->rootModelNode().metaInfo().hasProperty("font.pointSize")); - ModelNode rectNode(addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data")); - + ModelNode rectNode(addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data")); - QVERIFY(rectNode.metaInfo().propertyNames().contains("pos.x")); - QVERIFY(!rectNode.metaInfo().propertyNames().contains("pos.x")); + QVERIFY(rectNode.metaInfo().propertyNames().contains("pos")); QVERIFY(rectNode.metaInfo().propertyNames().contains("pos.y")); - QVERIFY(!rectNode.metaInfo().propertyNames().contains("pos.y")); - QVERIFY(!rectNode.metaInfo().propertyNames().contains("anchors.topMargin")); + QVERIFY(rectNode.metaInfo().propertyNames().contains("pos.x")); + QVERIFY(rectNode.metaInfo().propertyNames().contains("anchors.topMargin")); QVERIFY(rectNode.metaInfo().propertyNames().contains("border.width")); QVERIFY(rectNode.metaInfo().hasProperty("border")); QVERIFY(rectNode.metaInfo().hasProperty("border.width")); + + QApplication::processEvents(); } void tst_TestCore::testMetaInfoListProperties() { - QSKIP("Fix metainfo", SkipAll); - - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - QVERIFY(model->hasNodeMetaInfo("Qt/Item")); - QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("Qt/Item")); + QVERIFY(model->hasNodeMetaInfo("QtQuick.Item")); + QCOMPARE(view->rootModelNode().metaInfo().typeName(), QString("QtQuick.Item")); QVERIFY(view->rootModelNode().metaInfo().hasProperty("states")); QVERIFY(view->rootModelNode().metaInfo().propertyIsListProperty("states")); @@ -3990,15 +4190,65 @@ void tst_TestCore::testMetaInfoListProperties() QVERIFY(!view->rootModelNode().metaInfo().propertyIsListProperty("effect")); QVERIFY(view->rootModelNode().metaInfo().hasProperty("parent")); QVERIFY(!view->rootModelNode().metaInfo().propertyIsListProperty("parent")); + + QApplication::processEvents(); +} + +void tst_TestCore::testQtQuick20Basic() +{ + QPlainTextEdit textEdit; + textEdit.setPlainText("\nimport QtQuick 2.0\n\nItem {\n}\n"); + NotIndentingTextEditModifier modifier(&textEdit); + + QScopedPointer<Model> model(Model::create("QtQuick.Item")); + QVERIFY(model.data()); + + TestRewriterView *testRewriterView = new TestRewriterView(model.data()); + testRewriterView->setTextModifier(&modifier); + model->attachView(testRewriterView); + + QVERIFY(testRewriterView->errors().isEmpty()); + ModelNode rootModelNode(testRewriterView->rootModelNode()); + QVERIFY(rootModelNode.isValid()); + QCOMPARE(rootModelNode.metaInfo().majorVersion(), 2); + QCOMPARE(rootModelNode.metaInfo().minorVersion(), 0); + QCOMPARE(rootModelNode.majorQtQuickVersion(), 2); + QCOMPARE(rootModelNode.majorVersion(), 2); +} + +void tst_TestCore::testQtQuick20BasicRectangle() +{ + QPlainTextEdit textEdit; + textEdit.setPlainText("\nimport QtQuick 2.0\nRectangle {\n}\n"); + NotIndentingTextEditModifier modifier(&textEdit); + + QScopedPointer<Model> model(Model::create("QtQuick.Item")); + QVERIFY(model.data()); + + TestRewriterView *testRewriterView = new TestRewriterView(model.data()); + testRewriterView->setTextModifier(&modifier); + model->attachView(testRewriterView); + + QTest::qSleep(1000); + QApplication::processEvents(); + + QVERIFY(testRewriterView->errors().isEmpty()); + ModelNode rootModelNode(testRewriterView->rootModelNode()); + QVERIFY(rootModelNode.isValid()); + QCOMPARE(rootModelNode.type(), QString("QtQuick.Rectangle")); + QCOMPARE(rootModelNode.metaInfo().majorVersion(), 2); + QCOMPARE(rootModelNode.metaInfo().minorVersion(), 0); + QCOMPARE(rootModelNode.majorQtQuickVersion(), 2); + QCOMPARE(rootModelNode.majorVersion(), 2); } void tst_TestCore::testStatesRewriter() { QPlainTextEdit textEdit; - textEdit.setPlainText("import Qt 4.7; Item {}\n"); + textEdit.setPlainText("import QtQuick 1.1; Item {}\n"); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); @@ -4042,10 +4292,10 @@ void tst_TestCore::testStatesRewriter() void tst_TestCore::testGradientsRewriter() { QPlainTextEdit textEdit; - textEdit.setPlainText("\nimport Qt 4.7\n\nItem {\n}\n"); + textEdit.setPlainText("\nimport QtQuick 1.1\n\nItem {\n}\n"); NotIndentingTextEditModifier modifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); @@ -4061,9 +4311,9 @@ void tst_TestCore::testGradientsRewriter() QVERIFY(rootModelNode.isValid()); - ModelNode rectNode(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); + ModelNode rectNode(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); - const QLatin1String expected1("\nimport Qt 4.7\n" + const QLatin1String expected1("\nimport QtQuick 1.1\n" "\n" "Item {\n" "Rectangle {\n" @@ -4071,11 +4321,11 @@ void tst_TestCore::testGradientsRewriter() "}\n"); QCOMPARE(textEdit.toPlainText(), expected1); - ModelNode gradientNode(addNodeChild(rectNode, "Qt/Gradient", 4, 7, "gradient")); + ModelNode gradientNode(addNodeChild(rectNode, "QtQuick.Gradient", 1, 0, "gradient")); QVERIFY(rectNode.hasNodeProperty("gradient")); - const QLatin1String expected2("\nimport Qt 4.7\n" + const QLatin1String expected2("\nimport QtQuick 1.1\n" "\n" "Item {\n" "Rectangle {\n" @@ -4092,11 +4342,11 @@ void tst_TestCore::testGradientsRewriter() propertyList.append(qMakePair(QString("position"), QVariant::fromValue(0))); propertyList.append(qMakePair(QString("color"), QVariant::fromValue(QColor(Qt::red)))); - ModelNode gradientStop1(gradientNode.view()->createModelNode("Qt/GradientStop", 4, 7, propertyList)); + ModelNode gradientStop1(gradientNode.view()->createModelNode("QtQuick.GradientStop", 1, 0, propertyList)); QVERIFY(gradientStop1.isValid()); stops.reparentHere(gradientStop1); - const QLatin1String expected3("\nimport Qt 4.7\n" + const QLatin1String expected3("\nimport QtQuick 1.1\n" "\n" "Item {\n" "Rectangle {\n" @@ -4115,11 +4365,11 @@ void tst_TestCore::testGradientsRewriter() propertyList.append(qMakePair(QString("position"), QVariant::fromValue(0.5))); propertyList.append(qMakePair(QString("color"), QVariant::fromValue(QColor(Qt::blue)))); - ModelNode gradientStop2(gradientNode.view()->createModelNode("Qt/GradientStop", 4, 7, propertyList)); + ModelNode gradientStop2(gradientNode.view()->createModelNode("QtQuick.GradientStop", 1, 0, propertyList)); QVERIFY(gradientStop2.isValid()); stops.reparentHere(gradientStop2); - const QLatin1String expected4("\nimport Qt 4.7\n" + const QLatin1String expected4("\nimport QtQuick 1.1\n" "\n" "Item {\n" "Rectangle {\n" @@ -4143,11 +4393,11 @@ void tst_TestCore::testGradientsRewriter() propertyList.append(qMakePair(QString("position"), QVariant::fromValue(0.8))); propertyList.append(qMakePair(QString("color"), QVariant::fromValue(QColor(Qt::yellow)))); - ModelNode gradientStop3(gradientNode.view()->createModelNode("Qt/GradientStop", 4, 7, propertyList)); + ModelNode gradientStop3(gradientNode.view()->createModelNode("QtQuick.GradientStop", 1, 0, propertyList)); QVERIFY(gradientStop3.isValid()); stops.reparentHere(gradientStop3); - const QLatin1String expected5("\nimport Qt 4.7\n" + const QLatin1String expected5("\nimport QtQuick 1.1\n" "\n" "Item {\n" "Rectangle {\n" @@ -4174,7 +4424,7 @@ void tst_TestCore::testGradientsRewriter() gradientNode.removeProperty("stops"); - const QLatin1String expected6("\nimport Qt 4.7\n" + const QLatin1String expected6("\nimport QtQuick 1.1\n" "\n" "Item {\n" "Rectangle {\n" @@ -4191,7 +4441,7 @@ void tst_TestCore::testGradientsRewriter() propertyList.append(qMakePair(QString("position"), QVariant::fromValue(0))); propertyList.append(qMakePair(QString("color"), QVariant::fromValue(QColor(Qt::blue)))); - gradientStop1 = gradientNode.view()->createModelNode("Qt/GradientStop", 4, 7, propertyList); + gradientStop1 = gradientNode.view()->createModelNode("QtQuick.GradientStop", 1, 0, propertyList); QVERIFY(gradientStop1.isValid()); stops.reparentHere(gradientStop1); @@ -4199,7 +4449,7 @@ void tst_TestCore::testGradientsRewriter() void tst_TestCore::testQmlModelStates() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); @@ -4232,7 +4482,7 @@ void tst_TestCore::testQmlModelStates() void tst_TestCore::testInstancesStates() { // -// import Qt 4.7 +// import QtQuick 1.1 // // Rectangle { // Text { @@ -4260,7 +4510,7 @@ void tst_TestCore::testInstancesStates() // } // -// QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); +// QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); // QVERIFY(model.data()); // QScopedPointer<TestView> view(new TestView(model.data())); // QVERIFY(view.data()); @@ -4271,28 +4521,28 @@ void tst_TestCore::testInstancesStates() // // // ModelNode rootNode = view->rootModelNode(); -// ModelNode textNode = view->createModelNode("Qt/Text", 4, 7); +// ModelNode textNode = view->createModelNode("QtQuick.Text", 1, 1); // textNode.setId("targetObject"); // textNode.variantProperty("text").setValue("base state"); // rootNode.nodeListProperty("data").reparentHere(textNode); -// ModelNode propertyChanges1Node = view->createModelNode("Qt/PropertyChanges", 4, 7); +// ModelNode propertyChanges1Node = view->createModelNode("QtQuick.PropertyChanges", 1, 1); // propertyChanges1Node.bindingProperty("target").setExpression("targetObject"); // propertyChanges1Node.variantProperty("x").setValue(10); // propertyChanges1Node.variantProperty("text").setValue("state1"); -// ModelNode state1Node = view->createModelNode("Qt/State", 4, 7); +// ModelNode state1Node = view->createModelNode("QtQuick.State", 1, 1); // state1Node.variantProperty("name").setValue("state1"); // state1Node.nodeListProperty("changes").reparentHere(propertyChanges1Node); // rootNode.nodeListProperty("states").reparentHere(state1Node); -// ModelNode propertyChanges2Node = view->createModelNode("Qt/PropertyChanges", 4, 7); +// ModelNode propertyChanges2Node = view->createModelNode("QtQuick.PropertyChanges", 1, 1); // propertyChanges2Node.bindingProperty("target").setExpression("targetObject"); // propertyChanges2Node.variantProperty("text").setValue("state2"); -// ModelNode state2Node = view->createModelNode("Qt/State", 4, 7); +// ModelNode state2Node = view->createModelNode("QtQuick.State", 1, 1); // state2Node.variantProperty("name").setValue("state2"); // state2Node.nodeListProperty("changes").reparentHere(propertyChanges2Node); @@ -4389,7 +4639,7 @@ void tst_TestCore::testInstancesStates() // // // // move property changes of current state out of state -// ModelNode state3Node = view->createModelNode("Qt/State", 4, 7); +// ModelNode state3Node = view->createModelNode("QtQuick.State", 1, 1); // QDeclarativeListReference changes(state1, "changes"); // QCOMPARE(changes.count(), 1); // state3Node.nodeListProperty("changes").reparentHere(propertyChanges1Node); @@ -4412,7 +4662,7 @@ void tst_TestCore::testInstancesStates() // textNode.variantProperty("text").setValue("base state"); // // expressions -// ModelNode textNode2 = view->createModelNode("Qt/Text", 4, 7); +// ModelNode textNode2 = view->createModelNode("QtQuick.Text", 1, 1); // textNode2.setId("targetObject2"); // textNode2.variantProperty("text").setValue("textNode2"); @@ -4472,7 +4722,7 @@ void tst_TestCore::testInstancesStates() void tst_TestCore::testStates() { // -// import Qt 4.7 +// import QtQuick 1.1 // // Rectangle { // Text { @@ -4491,7 +4741,7 @@ void tst_TestCore::testStates() // } // -// QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); +// QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); // QVERIFY(model.data()); // QScopedPointer<TestView> view(new TestView(model.data())); // QVERIFY(view.data()); @@ -4500,7 +4750,7 @@ void tst_TestCore::testStates() // // build up model // ModelNode rootNode = view->rootModelNode(); -// ModelNode textNode = view->createModelNode("Qt/Text", 4, 7); +// ModelNode textNode = view->createModelNode("QtQuick.Text", 1, 1); // textNode.setId("targetObject"); // textNode.variantProperty("text").setValue("base state"); @@ -4516,7 +4766,7 @@ void tst_TestCore::testStates() // QVERIFY(textItem.isValid()); // QmlModelState state1(rootItem.states().addState("state 1")); //add state "state 1" -// QCOMPARE(state1.modelNode().type(), QString("Qt/State")); +// QCOMPARE(state1.modelNode().type(), QString("QtQuick.State")); // QVERIFY(view->currentState().isBaseState()); @@ -4549,7 +4799,7 @@ void tst_TestCore::testStates() // QCOMPARE(changes.modelNode().variantProperty("text").value(), QVariant("state 1")); // QCOMPARE(changes.modelNode().bindingProperty("target").expression(), QString("targetObject")); // QCOMPARE(changes.target(), textNode); -// QCOMPARE(changes.modelNode().type(), QString("Qt/PropertyChanges")); +// QCOMPARE(changes.modelNode().type(), QString("QtQuick.PropertyChanges")); // QCOMPARE(changes.modelNode().parentProperty().name(), QString("changes")); // QCOMPARE(changes.modelNode().parentProperty().parentModelNode(), state1.modelNode()); @@ -4568,7 +4818,7 @@ void tst_TestCore::testStates() void tst_TestCore::testStatesBaseState() { // -// import Qt 4.7 +// import QtQuick 1.1 // // Rectangle { // Text { @@ -4587,7 +4837,7 @@ void tst_TestCore::testStatesBaseState() // } // - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); @@ -4596,7 +4846,7 @@ void tst_TestCore::testStatesBaseState() // build up model ModelNode rootNode = view->rootModelNode(); - ModelNode textNode = view->createModelNode("Qt/Text", 4, 7); + ModelNode textNode = view->createModelNode("QtQuick.Text", 1, 1); textNode.setId("targetObject"); textNode.variantProperty("text").setValue("base state"); @@ -4612,17 +4862,19 @@ void tst_TestCore::testStatesBaseState() QVERIFY(textItem.isValid()); QmlModelState state1(rootItem.states().addState("state 1")); //add state "state 1" - QCOMPARE(state1.modelNode().type(), QString("Qt/State")); + QCOMPARE(state1.modelNode().type(), QString("QtQuick.State")); QVERIFY(view->currentState().isBaseState()); view->setCurrentState(state1); //set currentState "state 1" QCOMPARE(view->currentState(), state1); + QApplication::processEvents(); textItem.setVariantProperty("text", QVariant("state 1")); //set text in state ! QVERIFY(textItem.propertyAffectedByCurrentState("text")); + QApplication::processEvents(); QCOMPARE(textItem.instanceValue("text"), QVariant("state 1")); - ModelNode newNode = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode newNode = view->createModelNode("QtQuick.Rectangle", 1, 0); QVERIFY(!QmlObjectNode(newNode).currentState().isBaseState()); view->setCurrentState(view->baseState()); //set currentState base state @@ -4644,13 +4896,13 @@ void tst_TestCore::testStatesBaseState() void tst_TestCore::testInstancesIdResolution() { - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - // import Qt 4.7 + // import QtQuick 1.1 // // Rectangle { // id: root @@ -4668,7 +4920,7 @@ void tst_TestCore::testInstancesIdResolution() rootNode.variantProperty("width").setValue(100); rootNode.variantProperty("height").setValue(100); - ModelNode item1Node = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode item1Node = view->createModelNode("QtQuick.Rectangle", 1, 0); item1Node.setId("item1"); item1Node.bindingProperty("width").setExpression("root.width"); item1Node.bindingProperty("height").setExpression("item2.height"); @@ -4688,7 +4940,7 @@ void tst_TestCore::testInstancesIdResolution() // height: root.height // } - ModelNode item2Node = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode item2Node = view->createModelNode("QtQuick.Rectangle", 1, 0); item2Node.setId("item2"); item2Node.bindingProperty("width").setExpression("root.width / 2"); item2Node.bindingProperty("height").setExpression("root.height"); @@ -4713,7 +4965,7 @@ void tst_TestCore::testInstancesIdResolution() // height: 80 // } - ModelNode item3Node = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode item3Node = view->createModelNode("QtQuick.Rectangle", 1, 0); item3Node.setId("item3"); item3Node.variantProperty("height").setValue(80); rootNode.nodeListProperty("data").reparentHere(item3Node); @@ -4731,16 +4983,16 @@ void tst_TestCore::testInstancesNotInScene() // test whether deleting an instance which is not in the scene crashes // - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - ModelNode node1 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node1 = view->createModelNode("QtQuick.Item", 1, 1); node1.setId("node1"); - ModelNode node2 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node2 = view->createModelNode("QtQuick.Item", 1, 1); node2.setId("node2"); node1.nodeListProperty("children").reparentHere(node2); @@ -4752,21 +5004,21 @@ void tst_TestCore::testInstancesBindingsInStatesStress() { //This is a stress test to provoke a crash for (int j=0;j<20;j++) { - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - ModelNode node1 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node1 = view->createModelNode("QtQuick.Item", 1, 1); node1.setId("node1"); view->rootModelNode().nodeListProperty("children").reparentHere(node1); - ModelNode node2 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node2 = view->createModelNode("QtQuick.Rectangle", 1, 0); node2.setId("node2"); - ModelNode node3 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node3 = view->createModelNode("QtQuick.Rectangle", 1, 0); node3.setId("node3"); node1.nodeListProperty("children").reparentHere(node2); @@ -4857,21 +5109,21 @@ void tst_TestCore::testInstancesPropertyChangeTargets() //this tests checks if a change of the target of a CropertyChange //node is handled correctly - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - ModelNode node1 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node1 = view->createModelNode("QtQuick.Item", 1, 1); node1.setId("node1"); view->rootModelNode().nodeListProperty("children").reparentHere(node1); - ModelNode node2 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node2 = view->createModelNode("QtQuick.Rectangle", 1, 0); node2.setId("node2"); - ModelNode node3 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node3 = view->createModelNode("QtQuick.Rectangle", 1, 0); node3.setId("node3"); node1.nodeListProperty("children").reparentHere(node2); @@ -4963,21 +5215,21 @@ void tst_TestCore::testInstancesPropertyChangeTargets() void tst_TestCore::testInstancesDeletePropertyChanges() { - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); model->attachView(view.data()); - ModelNode node1 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node1 = view->createModelNode("QtQuick.Item", 1, 1); node1.setId("node1"); view->rootModelNode().nodeListProperty("children").reparentHere(node1); - ModelNode node2 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node2 = view->createModelNode("QtQuick.Rectangle", 1, 0); node2.setId("node2"); - ModelNode node3 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node3 = view->createModelNode("QtQuick.Rectangle", 1, 0); node3.setId("node3"); node1.nodeListProperty("children").reparentHere(node2); @@ -5052,7 +5304,7 @@ void tst_TestCore::testInstancesDeletePropertyChanges() void tst_TestCore::testInstancesChildrenLowLevel() { -// QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); +// QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); // QVERIFY(model.data()); // QScopedPointer<NodeInstanceView> view(new NodeInstanceView); @@ -5064,11 +5316,11 @@ void tst_TestCore::testInstancesChildrenLowLevel() // rootModelNode.setId("rootModelNode"); -// ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Text", 4, 7, "data"); +// ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Text", 1, 1, "data"); // QVERIFY(childNode1.isValid()); // childNode1.setId("childNode1"); -// ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/TextEdit", 4, 7, "data"); +// ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.TextEdit", 1, 1, "data"); // QVERIFY(childNode2.isValid()); // childNode2.setId("childNode2"); @@ -5142,7 +5394,7 @@ void tst_TestCore::testInstancesChildrenLowLevel() void tst_TestCore::testInstancesResourcesLowLevel() { -// QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); +// QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); // QVERIFY(model.data()); // QScopedPointer<NodeInstanceView> view(new NodeInstanceView); @@ -5154,15 +5406,15 @@ void tst_TestCore::testInstancesResourcesLowLevel() // rootModelNode.setId("rootModelNode"); -// ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Text", 4, 7, "data"); +// ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Text", 1, 1, "data"); // QVERIFY(childNode1.isValid()); // childNode1.setId("childNode1"); -// ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/TextEdit", 4, 7, "data"); +// ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.TextEdit", 1, 1, "data"); // QVERIFY(childNode2.isValid()); // childNode2.setId("childNode2"); -// ModelNode listModel = addNodeListChild(rootModelNode, "Qt/ListModel", 4, 7, "data"); +// ModelNode listModel = addNodeListChild(rootModelNode, "QtQuick.ListModel", 1, 1, "data"); // QVERIFY(listModel.isValid()); // listModel.setId("listModel"); @@ -5241,7 +5493,7 @@ void tst_TestCore::testInstancesResourcesLowLevel() // QCOMPARE(listReferenceData.at(1), child1Item); // QCOMPARE(listReferenceData.at(2), child2Item); -// ModelNode listModel2 = addNodeListChild(rootModelNode, "Qt/ListModel", 4, 7, "data"); +// ModelNode listModel2 = addNodeListChild(rootModelNode, "QtQuick.ListModel", 1, 1, "data"); // QVERIFY(listModel2.isValid()); // listModel2.setId("listModel2"); @@ -5289,7 +5541,7 @@ void tst_TestCore::testInstancesResourcesLowLevel() void tst_TestCore::testInstancesFlickableLowLevel() { -// QScopedPointer<Model> model(Model::create("Qt/Flickable", 4, 7)); +// QScopedPointer<Model> model(createModel("QtQuick.Flickable", 1, 1)); // QVERIFY(model.data()); // QScopedPointer<NodeInstanceView> view(new NodeInstanceView); @@ -5301,15 +5553,15 @@ void tst_TestCore::testInstancesFlickableLowLevel() // rootModelNode.setId("rootModelNode"); -// ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Text", 4, 7, "flickableData"); +// ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Text", 1, 1, "flickableData"); // QVERIFY(childNode1.isValid()); // childNode1.setId("childNode1"); -// ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/TextEdit", 4, 7, "flickableData"); +// ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.TextEdit", 1, 1, "flickableData"); // QVERIFY(childNode2.isValid()); // childNode2.setId("childNode2"); -// ModelNode listModel = addNodeListChild(rootModelNode, "Qt/ListModel", 4, 7, "flickableData"); +// ModelNode listModel = addNodeListChild(rootModelNode, "QtQuick.ListModel", 1, 1, "flickableData"); // QVERIFY(listModel.isValid()); // listModel.setId("listModel"); @@ -5377,7 +5629,7 @@ void tst_TestCore::testInstancesFlickableLowLevel() void tst_TestCore::testInstancesReorderChildrenLowLevel() { -// QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); +// QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); // QVERIFY(model.data()); // QScopedPointer<NodeInstanceView> view(new NodeInstanceView); @@ -5389,23 +5641,23 @@ void tst_TestCore::testInstancesReorderChildrenLowLevel() // rootModelNode.setId("rootModelNode"); -// ModelNode childNode1 = addNodeListChild(rootModelNode, "Qt/Text", 4, 7, "data"); +// ModelNode childNode1 = addNodeListChild(rootModelNode, "QtQuick.Text", 1, 1, "data"); // QVERIFY(childNode1.isValid()); // childNode1.setId("childNode1"); -// ModelNode childNode2 = addNodeListChild(rootModelNode, "Qt/TextEdit", 4, 7, "data"); +// ModelNode childNode2 = addNodeListChild(rootModelNode, "QtQuick.TextEdit", 1, 1, "data"); // QVERIFY(childNode2.isValid()); // childNode2.setId("childNode2"); -// ModelNode listModel = addNodeListChild(rootModelNode, "Qt/ListModel", 4, 7, "data"); +// ModelNode listModel = addNodeListChild(rootModelNode, "QtQuick.ListModel", 1, 1, "data"); // QVERIFY(listModel.isValid()); // listModel.setId("listModel"); -// ModelNode childNode3 = addNodeListChild(rootModelNode, "Qt/TextEdit", 4, 7, "data"); +// ModelNode childNode3 = addNodeListChild(rootModelNode, "QtQuick.TextEdit", 1, 1, "data"); // QVERIFY(childNode3.isValid()); // childNode3.setId("childNode3"); -// ModelNode childNode4 = addNodeListChild(rootModelNode, "Qt/TextEdit", 4, 7, "data"); +// ModelNode childNode4 = addNodeListChild(rootModelNode, "QtQuick.TextEdit", 1, 1, "data"); // QVERIFY(childNode4.isValid()); // childNode4.setId("childNode4"); @@ -5476,7 +5728,7 @@ void tst_TestCore::testInstancesReorderChildrenLowLevel() void tst_TestCore::testQmlModelStatesInvalidForRemovedNodes() { - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -5493,11 +5745,11 @@ void tst_TestCore::testQmlModelStatesInvalidForRemovedNodes() QVERIFY(state1.isValid()); QCOMPARE(state1.name(), QString("state1")); - ModelNode childNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(childNode.isValid()); childNode.setId("childNode"); - ModelNode subChildNode = addNodeListChild(childNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode subChildNode = addNodeListChild(childNode, "QtQuick.Rectangle", 1, 0, "data"); QVERIFY(subChildNode.isValid()); subChildNode.setId("subChildNode"); @@ -5517,7 +5769,7 @@ void tst_TestCore::testInstancesAttachToExistingModel() // Test attaching nodeinstanceview to an existing model // - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -5525,7 +5777,7 @@ void tst_TestCore::testInstancesAttachToExistingModel() model->attachView(view.data()); ModelNode rootNode = view->rootModelNode(); - ModelNode rectangleNode = addNodeListChild(rootNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode rectangleNode = addNodeListChild(rootNode, "QtQuick.Rectangle", 1, 0, "data"); rectangleNode.variantProperty("width").setValue(100); @@ -5534,7 +5786,7 @@ void tst_TestCore::testInstancesAttachToExistingModel() // Attach NodeInstanceView - QScopedPointer<NodeInstanceView> instanceView(new NodeInstanceView); + QScopedPointer<NodeInstanceView> instanceView(new NodeInstanceView(0, NodeInstanceServerInterface::TestModus)); QVERIFY(instanceView.data()); model->attachView(instanceView.data()); @@ -5549,7 +5801,7 @@ void tst_TestCore::testInstancesAttachToExistingModel() void tst_TestCore::testQmlModelAddMultipleStates() { - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -5580,7 +5832,7 @@ void tst_TestCore::testQmlModelAddMultipleStates() void tst_TestCore::testQmlModelRemoveStates() { - QScopedPointer<Model> model(Model::create("Qt/Rectangle", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle", 1, 1)); QScopedPointer<TestView> view(new TestView(model.data())); QVERIFY(view.data()); @@ -5610,10 +5862,10 @@ void tst_TestCore::testQmlModelRemoveStates() void tst_TestCore::testQmlModelStateWithName() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Rectangle { id: theRect; width: 100; states: [ State { name: \"a\"; PropertyChanges { target: theRect; width: 200; } } ] }\n"); + textEdit1.setPlainText("import QtQuick 1.1; Rectangle { id: theRect; width: 100; states: [ State { name: \"a\"; PropertyChanges { target: theRect; width: 200; } } ] }\n"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); TestRewriterView *testRewriterView1 = new TestRewriterView(model1.data()); testRewriterView1->setTextModifier(&modifier1); @@ -5635,7 +5887,7 @@ void tst_TestCore::testQmlModelStateWithName() view->setCurrentState(rootNode.states().allStates().at(0)); rootNode.setVariantProperty("width", 112); - const QLatin1String expected1("import Qt 4.7; Rectangle { id: theRect; width: 100; states: [ State { name: \"a\"; PropertyChanges { target: theRect; width: 112 } } ] }\n"); + const QLatin1String expected1("import QtQuick 1.1; Rectangle { id: theRect; width: 100; states: [ State { name: \"a\"; PropertyChanges { target: theRect; width: 112 } } ] }\n"); QCOMPARE(textEdit1.toPlainText(), expected1); QVERIFY(!rootNode.isInBaseState()); @@ -5655,10 +5907,10 @@ void tst_TestCore::testQmlModelStateWithName() void tst_TestCore::testRewriterAutomaticSemicolonAfterChangedProperty() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Rectangle {\n width: 640\n height: 480\n}\n"); + textEdit1.setPlainText("import QtQuick 1.1; Rectangle {\n width: 640\n height: 480\n}\n"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); TestRewriterView *testRewriterView1 = new TestRewriterView(model1.data()); testRewriterView1->setTextModifier(&modifier1); @@ -5675,7 +5927,7 @@ void tst_TestCore::testRewriterAutomaticSemicolonAfterChangedProperty() void tst_TestCore::defaultPropertyValues() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -5685,12 +5937,12 @@ void tst_TestCore::defaultPropertyValues() QCOMPARE(view->rootModelNode().variantProperty("x").value().toDouble(), 0.0); QCOMPARE(view->rootModelNode().variantProperty("width").value().toDouble(), 0.0); - ModelNode rectNode(addNodeListChild(view->rootModelNode(), "Qt/Rectangle", 4, 7, "data")); + ModelNode rectNode(addNodeListChild(view->rootModelNode(), "QtQuick.Rectangle", 1, 0, "data")); QCOMPARE(rectNode.variantProperty("y").value().toDouble(), 0.0); QCOMPARE(rectNode.variantProperty("width").value().toDouble(), 0.0); - ModelNode imageNode(addNodeListChild(view->rootModelNode(), "Qt/Image", 4, 7, "data")); + ModelNode imageNode(addNodeListChild(view->rootModelNode(), "QtQuick.Image", 1, 0, "data")); QCOMPARE(imageNode.variantProperty("y").value().toDouble(), 0.0); QCOMPARE(imageNode.variantProperty("width").value().toDouble(), 0.0); @@ -5699,10 +5951,10 @@ void tst_TestCore::defaultPropertyValues() void tst_TestCore::testModelPropertyValueTypes() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Rectangle { width: 100; radius: 1.5; color: \"red\"; }"); + textEdit1.setPlainText("import QtQuick 1.1; Rectangle { width: 100; radius: 1.5; color: \"red\"; }"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model1(Model::create("Qt/Item")); + QScopedPointer<Model> model1(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -5720,7 +5972,7 @@ void tst_TestCore::testModelPropertyValueTypes() void tst_TestCore::testModelNodeInHierarchy() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -5728,9 +5980,9 @@ void tst_TestCore::testModelNodeInHierarchy() model->attachView(view.data()); QVERIFY(view->rootModelNode().isInHierarchy()); - ModelNode node1 = addNodeListChild(view->rootModelNode(), "Qt/Item", 4, 7, "data"); + ModelNode node1 = addNodeListChild(view->rootModelNode(), "QtQuick.Item", 1, 1, "data"); QVERIFY(node1.isInHierarchy()); - ModelNode node2 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node2 = view->createModelNode("QtQuick.Item", 1, 1); QVERIFY(!node2.isInHierarchy()); node2.nodeListProperty("data").reparentHere(node1); QVERIFY(!node2.isInHierarchy()); @@ -5741,11 +5993,11 @@ void tst_TestCore::testModelNodeInHierarchy() void tst_TestCore::testModelNodeIsAncestorOf() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); // - // import Qt 4.7 + // import QtQuick 1.1 // Item { // Item { // id: item2 @@ -5763,11 +6015,11 @@ void tst_TestCore::testModelNodeIsAncestorOf() model->attachView(view.data()); view->rootModelNode().setId("item1"); - ModelNode item2 = addNodeListChild(view->rootModelNode(), "Qt/Item", 4, 7, "data"); + ModelNode item2 = addNodeListChild(view->rootModelNode(), "QtQuick.Item", 1, 1, "data"); item2.setId("item2"); - ModelNode item3 = addNodeListChild(view->rootModelNode(), "Qt/Item", 4, 7, "data"); + ModelNode item3 = addNodeListChild(view->rootModelNode(), "QtQuick.Item", 1, 1, "data"); item3.setId("item3"); - ModelNode item4 = addNodeListChild(item3, "Qt/Item", 4, 7, "data"); + ModelNode item4 = addNodeListChild(item3, "QtQuick.Item", 1, 1, "data"); item4.setId("item4"); QVERIFY(view->rootModelNode().isAncestorOf(item2)); @@ -5780,8 +6032,7 @@ void tst_TestCore::testModelNodeIsAncestorOf() void tst_TestCore::testModelDefaultProperties() { - QSKIP("Fix metainfo", SkipAll); - QScopedPointer<Model> model(Model::create("Qt/Rectangle")); + QScopedPointer<Model> model(createModel("QtQuick.Rectangle")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -5797,10 +6048,10 @@ void tst_TestCore::testModelDefaultProperties() void tst_TestCore::loadAnchors() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item { width: 100; height: 100; Rectangle { anchors.left: parent.left; anchors.horizontalCenter: parent.horizontalCenter; anchors.rightMargin: 20; }}"); + textEdit1.setPlainText("import QtQuick 1.1; Item { width: 100; height: 100; Rectangle { anchors.left: parent.left; anchors.horizontalCenter: parent.horizontalCenter; anchors.rightMargin: 20; }}"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -5836,10 +6087,10 @@ void tst_TestCore::loadAnchors() void tst_TestCore::changeAnchors() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item { width: 100; height: 100; Rectangle { anchors.left: parent.left; anchors.horizontalCenter: parent.horizontalCenter; anchors.rightMargin: 20; }}"); + textEdit1.setPlainText("import QtQuick 1.1; Item { width: 100; height: 100; Rectangle { anchors.left: parent.left; anchors.horizontalCenter: parent.horizontalCenter; anchors.rightMargin: 20; }}"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -5897,10 +6148,10 @@ void tst_TestCore::changeAnchors() void tst_TestCore::anchorToSibling() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item { Rectangle {} Rectangle { id: secondChild } }"); + textEdit1.setPlainText("import QtQuick 1.1; Item { Rectangle {} Rectangle { id: secondChild } }"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -5941,10 +6192,10 @@ void tst_TestCore::anchorToSibling() void tst_TestCore::removeFillAnchorByDetaching() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item { width: 100; height: 100; Rectangle { id: child; anchors.fill: parent } }"); + textEdit1.setPlainText("import QtQuick 1.1; Item { width: 100; height: 100; Rectangle { id: child; anchors.fill: parent } }"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -6021,10 +6272,10 @@ void tst_TestCore::removeFillAnchorByDetaching() void tst_TestCore::removeFillAnchorByChanging() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item { width: 100; height: 100; Rectangle { id: child; anchors.fill: parent } }"); + textEdit1.setPlainText("import QtQuick 1.1; Item { width: 100; height: 100; Rectangle { id: child; anchors.fill: parent } }"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -6101,7 +6352,7 @@ void tst_TestCore::removeFillAnchorByChanging() void tst_TestCore::testModelBindings() { - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(createModel("QtQuick.Item", 1, 1)); QVERIFY(model.data()); NodeInstanceView *nodeInstanceView = new NodeInstanceView(model.data(), NodeInstanceServerInterface::TestModus); @@ -6111,9 +6362,9 @@ void tst_TestCore::testModelBindings() QCOMPARE(rootModelNode.allDirectSubModelNodes().count(), 0); NodeInstance rootInstance = nodeInstanceView->instanceForNode(rootModelNode); - // default width/height is forced to 100 - QCOMPARE(rootInstance.size().width(), 100.0); - QCOMPARE(rootInstance.size().height(), 100.0); + // default width/height is 0 + QCOMPARE(rootInstance.size().width(), 0.0); + QCOMPARE(rootInstance.size().height(), 0.0); rootModelNode.variantProperty("width") = 200; rootModelNode.variantProperty("height") = 100; @@ -6121,7 +6372,7 @@ void tst_TestCore::testModelBindings() QCOMPARE(rootInstance.size().width(), 200.0); QCOMPARE(rootInstance.size().height(), 100.0); - ModelNode childNode = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode childNode = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); childNode.variantProperty("width") = 100; childNode.variantProperty("height") = 100; @@ -6159,7 +6410,8 @@ void tst_TestCore::testModelBindings() void tst_TestCore::testModelDynamicProperties() { - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + MSKIP_ALL("Fix rewriter dynamic properties writing"); + QScopedPointer<Model> model(createModel("QtQuick.Item", 1, 1)); QVERIFY(model.data()); TestView *testView = new TestView(model.data()); @@ -6169,15 +6421,15 @@ void tst_TestCore::testModelDynamicProperties() ModelNode rootModelNode = rootQmlItemNode.modelNode(); rootModelNode.variantProperty("x") = 10; - rootModelNode.variantProperty("myDouble") = qMakePair(QString("real"), QVariant(10)); - rootModelNode.variantProperty("myColor").setDynamicTypeNameAndValue("color", Qt::red); + rootModelNode.variantProperty("myColor").setDynamicTypeNameAndValue("color", QVariant(QColor(Qt::red))); + rootModelNode.variantProperty("myDouble").setDynamicTypeNameAndValue("real", 10); QVERIFY(!rootModelNode.property("x").isDynamic()); QVERIFY(rootModelNode.property("myColor").isDynamic()); QVERIFY(rootModelNode.property("myDouble").isDynamic()); QCOMPARE(rootModelNode.property("myColor").dynamicTypeName(), QString("color")); - QCOMPARE(rootModelNode.variantProperty("myColor").value(), QVariant(Qt::red)); + QCOMPARE(rootModelNode.variantProperty("myColor").value(), QVariant(QColor(Qt::red))); //QCOMPARE(rootQmlItemNode.instanceValue("myColor"), QVariant(Qt::red)); //not working yet QCOMPARE(rootModelNode.property("myDouble").dynamicTypeName(), QString("real")); QCOMPARE(rootModelNode.variantProperty("myDouble").value(), QVariant(10)); @@ -6203,7 +6455,7 @@ void tst_TestCore::testModelDynamicProperties() void tst_TestCore::testModelSliding() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6212,10 +6464,10 @@ void tst_TestCore::testModelSliding() ModelNode rootModelNode(view->rootModelNode()); - ModelNode rect00(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); - ModelNode rect01(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); - ModelNode rect02(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); - ModelNode rect03(addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data")); + ModelNode rect00(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); + ModelNode rect01(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); + ModelNode rect02(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); + ModelNode rect03(addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data")); QVERIFY(rect00.isValid()); QVERIFY(rect01.isValid()); @@ -6271,13 +6523,13 @@ void tst_TestCore::testModelSliding() void tst_TestCore::testRewriterChangeId() { - const char* qmlString = "import Qt 4.7\nRectangle { }"; + const char* qmlString = "import QtQuick 1.1\nRectangle { }"; QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6296,25 +6548,25 @@ void tst_TestCore::testRewriterChangeId() QCOMPARE(rootModelNode.id(), QString("rectId")); - QString expected = "import Qt 4.7\n" + QString expected = "import QtQuick 1.1\n" "Rectangle { id: rectId }"; QCOMPARE(textEdit.toPlainText(), expected); // change id for node outside of hierarchy - ModelNode node = view->createModelNode("Qt/Item", 4, 7); + ModelNode node = view->createModelNode("QtQuick.Item", 1, 1); node.setId("myId"); } void tst_TestCore::testRewriterRemoveId() { - const char* qmlString = "import Qt 4.7\nRectangle { id: rect }"; + const char* qmlString = "import QtQuick 1.1\nRectangle { id: rect }"; QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6332,7 +6584,7 @@ void tst_TestCore::testRewriterRemoveId() // // remove id in text // - const char* qmlString2 = "import Qt 4.7\nRectangle { }"; + const char* qmlString2 = "import QtQuick 1.1\nRectangle { }"; textEdit.setPlainText(qmlString2); QCOMPARE(rootModelNode.id(), QString()); @@ -6340,13 +6592,13 @@ void tst_TestCore::testRewriterRemoveId() void tst_TestCore::testRewriterChangeValueProperty() { - const char* qmlString = "import Qt 4.7\nRectangle { x: 10; y: 10 }"; + const char* qmlString = "import QtQuick 1.1\nRectangle { x: 10; y: 10 }"; QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6369,14 +6621,14 @@ void tst_TestCore::testRewriterChangeValueProperty() // change property for node outside of hierarchy PropertyListType properties; properties.append(QPair<QString,QVariant>("x", 10)); - ModelNode node = view->createModelNode("Qt/Item", 4, 7, properties); + ModelNode node = view->createModelNode("QtQuick.Item", 1, 1, properties); node.variantProperty("x").setValue(20); } void tst_TestCore::testRewriterRemoveValueProperty() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "Rectangle {\n" " x: 10\n" " y: 10;\n" @@ -6386,7 +6638,7 @@ void tst_TestCore::testRewriterRemoveValueProperty() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6407,7 +6659,7 @@ void tst_TestCore::testRewriterRemoveValueProperty() rootModelNode.removeProperty("x"); const QLatin1String expected("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "Rectangle {\n" " y: 10;\n" "}\n"); @@ -6416,19 +6668,19 @@ void tst_TestCore::testRewriterRemoveValueProperty() // remove property for node outside of hierarchy PropertyListType properties; properties.append(QPair<QString,QVariant>("x", 10)); - ModelNode node = view->createModelNode("Qt/Item", 4, 7, properties); + ModelNode node = view->createModelNode("QtQuick.Item", 1, 1, properties); node.removeProperty("x"); } void tst_TestCore::testRewriterSignalProperty() { - const char* qmlString = "import Qt 4.7\nRectangle { onColorChanged: {} }"; + const char* qmlString = "import QtQuick 1.1\nRectangle { onColorChanged: {} }"; QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6448,13 +6700,13 @@ void tst_TestCore::testRewriterSignalProperty() void tst_TestCore::testRewriterObjectTypeProperty() { - const char* qmlString = "import Qt 4.7\nRectangle { x: 10; y: 10 }"; + const char* qmlString = "import QtQuick 1.1\nRectangle { x: 10; y: 10 }"; QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6468,11 +6720,11 @@ void tst_TestCore::testRewriterObjectTypeProperty() ModelNode rootModelNode(view->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QLatin1String("QtQuick.Rectangle")); - view->changeRootNodeType(QLatin1String("Qt/Text"), 4, 7); + view->changeRootNodeType(QLatin1String("QtQuick.Text"), 1, 1); - QCOMPARE(rootModelNode.type(), QLatin1String("Qt/Text")); + QCOMPARE(rootModelNode.type(), QLatin1String("QtQuick.Text")); } void tst_TestCore::testRewriterPropertyChanges() @@ -6482,7 +6734,7 @@ void tst_TestCore::testRewriterPropertyChanges() // Use a slightly more complicated example so that target properties are not resolved in default scope const char* qmlString - = "import Qt 4.7\n" + = "import QtQuick 1.1\n" "Rectangle {\n" " Text {\n" " id: targetObj\n" @@ -6502,7 +6754,7 @@ void tst_TestCore::testRewriterPropertyChanges() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6515,7 +6767,7 @@ void tst_TestCore::testRewriterPropertyChanges() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); QVERIFY(rootNode.propertyNames().contains(QLatin1String("data"))); QVERIFY(rootNode.propertyNames().contains(QLatin1String("states"))); QCOMPARE(rootNode.propertyNames().count(), 2); @@ -6526,7 +6778,7 @@ void tst_TestCore::testRewriterPropertyChanges() ModelNode stateNode = statesProperty.toModelNodeList().first(); QVERIFY(stateNode.isValid()); - QCOMPARE(stateNode.type(), QString("Qt/State")); + QCOMPARE(stateNode.type(), QString("QtQuick.State")); QCOMPARE(stateNode.propertyNames(), QStringList("changes")); NodeListProperty stateChangesProperty = stateNode.property("changes").toNodeListProperty(); @@ -6549,17 +6801,17 @@ void tst_TestCore::testRewriterPropertyChanges() void tst_TestCore::testRewriterListModel() { - QSKIP("See BAUHAUS-157", SkipAll); + MSKIP_ALL("See BAUHAUS-157"); try { // ListModel uses a custom parser - const char* qmlString = "import Qt 4.7; ListModel {\n ListElement {\n age: 12\n} \n}"; + const char* qmlString = "import QtQuick 1.1; ListModel {\n ListElement {\n age: 12\n} \n}"; QPlainTextEdit textEdit; textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -6588,7 +6840,7 @@ void tst_TestCore::testRewriterListModel() void tst_TestCore::testRewriterAddProperty() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -6596,7 +6848,7 @@ void tst_TestCore::testRewriterAddProperty() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6609,7 +6861,7 @@ void tst_TestCore::testRewriterAddProperty() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); rootNode.variantProperty(QLatin1String("x")).setValue(123); @@ -6618,7 +6870,7 @@ void tst_TestCore::testRewriterAddProperty() QCOMPARE(rootNode.variantProperty(QLatin1String("x")).value(), QVariant(123)); const QLatin1String expected("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "x: 123\n" @@ -6629,7 +6881,7 @@ void tst_TestCore::testRewriterAddProperty() void tst_TestCore::testRewriterAddPropertyInNestedObject() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Rectangle {\n" @@ -6640,7 +6892,7 @@ void tst_TestCore::testRewriterAddPropertyInNestedObject() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6653,18 +6905,18 @@ void tst_TestCore::testRewriterAddPropertyInNestedObject() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); ModelNode childNode = rootNode.nodeListProperty(QLatin1String("data")).toModelNodeList().at(0); QVERIFY(childNode.isValid()); - QCOMPARE(childNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(childNode.type(), QLatin1String("QtQuick.Rectangle")); QCOMPARE(childNode.id(), QLatin1String("rectangle1")); childNode.variantProperty(QLatin1String("x")).setValue(10); childNode.variantProperty(QLatin1String("y")).setValue(10); const QLatin1String expected("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Rectangle {\n" @@ -6678,7 +6930,7 @@ void tst_TestCore::testRewriterAddPropertyInNestedObject() void tst_TestCore::testRewriterAddObjectDefinition() { - const QLatin1String qmlString("import Qt 4.7\n" + const QLatin1String qmlString("import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -6686,7 +6938,7 @@ void tst_TestCore::testRewriterAddObjectDefinition() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6699,20 +6951,20 @@ void tst_TestCore::testRewriterAddObjectDefinition() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); - ModelNode childNode = view->createModelNode("Qt/MouseArea", 4, 7); + ModelNode childNode = view->createModelNode("QtQuick.MouseArea", 1, 1); rootNode.nodeAbstractProperty(QLatin1String("data")).reparentHere(childNode); QCOMPARE(rootNode.nodeProperty(QLatin1String("data")).toNodeListProperty().toModelNodeList().size(), 1); childNode = rootNode.nodeProperty(QLatin1String("data")).toNodeListProperty().toModelNodeList().at(0); - QCOMPARE(childNode.type(), QString(QLatin1String("Qt/MouseArea"))); + QCOMPARE(childNode.type(), QString(QLatin1String("QtQuick.MouseArea"))); } void tst_TestCore::testRewriterAddStatesArray() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -6720,7 +6972,7 @@ void tst_TestCore::testRewriterAddStatesArray() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6732,13 +6984,13 @@ void tst_TestCore::testRewriterAddStatesArray() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); - ModelNode stateNode = view->createModelNode("Qt/State", 4, 7); + ModelNode stateNode = view->createModelNode("QtQuick.State", 1, 0); rootNode.nodeListProperty(QLatin1String("states")).reparentHere(stateNode); const QString expected1 = QLatin1String("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "states: [\n" @@ -6748,11 +7000,11 @@ void tst_TestCore::testRewriterAddStatesArray() "}"); QCOMPARE(textEdit.toPlainText(), expected1); - ModelNode stateNode2 = view->createModelNode("Qt/State", 4, 7); + ModelNode stateNode2 = view->createModelNode("QtQuick.State", 1, 0); rootNode.nodeListProperty(QLatin1String("states")).reparentHere(stateNode2); const QString expected2 = QLatin1String("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "states: [\n" @@ -6768,7 +7020,7 @@ void tst_TestCore::testRewriterAddStatesArray() void tst_TestCore::testRewriterRemoveStates() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " states: [\n" @@ -6782,7 +7034,7 @@ void tst_TestCore::testRewriterRemoveStates() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6794,7 +7046,7 @@ void tst_TestCore::testRewriterRemoveStates() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); NodeListProperty statesProperty = rootNode.nodeListProperty(QLatin1String("states")); QVERIFY(statesProperty.isValid()); @@ -6804,7 +7056,7 @@ void tst_TestCore::testRewriterRemoveStates() state.destroy(); const QLatin1String expected1("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " states: [\n" @@ -6818,7 +7070,7 @@ void tst_TestCore::testRewriterRemoveStates() state.destroy(); const QLatin1String expected2("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -6828,7 +7080,7 @@ void tst_TestCore::testRewriterRemoveStates() void tst_TestCore::testRewriterRemoveObjectDefinition() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " MouseArea {\n" @@ -6840,7 +7092,7 @@ void tst_TestCore::testRewriterRemoveObjectDefinition() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6853,24 +7105,24 @@ void tst_TestCore::testRewriterRemoveObjectDefinition() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); QCOMPARE(rootNode.nodeProperty(QLatin1String("data")).toNodeListProperty().toModelNodeList().size(), 2); ModelNode childNode = rootNode.nodeProperty(QLatin1String("data")).toNodeListProperty().toModelNodeList().at(1); - QCOMPARE(childNode.type(), QString(QLatin1String("Qt/MouseArea"))); + QCOMPARE(childNode.type(), QString(QLatin1String("QtQuick.MouseArea"))); childNode.destroy(); QCOMPARE(rootNode.nodeProperty(QLatin1String("data")).toNodeListProperty().toModelNodeList().size(), 1); childNode = rootNode.nodeProperty(QLatin1String("data")).toNodeListProperty().toModelNodeList().at(0); - QCOMPARE(childNode.type(), QString(QLatin1String("Qt/MouseArea"))); + QCOMPARE(childNode.type(), QString(QLatin1String("QtQuick.MouseArea"))); childNode.destroy(); QVERIFY(!rootNode.hasProperty(QLatin1String("data"))); const QString expected = QLatin1String("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " // some comment here\n" @@ -6878,9 +7130,9 @@ void tst_TestCore::testRewriterRemoveObjectDefinition() QCOMPARE(textEdit.toPlainText(), expected); // don't crash when deleting nodes not in any hierarchy - ModelNode node1 = view->createModelNode("Qt/Rectangle", 4, 7); - ModelNode node2 = addNodeListChild(node1, "Qt/Item", 4, 7, "data"); - ModelNode node3 = addNodeListChild(node2, "Qt/Item", 4, 7, "data"); + ModelNode node1 = view->createModelNode("QtQuick.Rectangle", 1, 0); + ModelNode node2 = addNodeListChild(node1, "QtQuick.Item", 1, 1, "data"); + ModelNode node3 = addNodeListChild(node2, "QtQuick.Item", 1, 1, "data"); node3.destroy(); node1.destroy(); @@ -6889,7 +7141,7 @@ void tst_TestCore::testRewriterRemoveObjectDefinition() void tst_TestCore::testRewriterRemoveScriptBinding() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " x: 10; // some comment\n" @@ -6899,7 +7151,7 @@ void tst_TestCore::testRewriterRemoveScriptBinding() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6912,7 +7164,7 @@ void tst_TestCore::testRewriterRemoveScriptBinding() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); QCOMPARE(rootNode.properties().size(), 2); QVERIFY(rootNode.hasProperty(QLatin1String("x"))); @@ -6929,7 +7181,7 @@ void tst_TestCore::testRewriterRemoveScriptBinding() QCOMPARE(rootNode.properties().size(), 0); const QString expected = QLatin1String("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " // some comment\n" @@ -6940,7 +7192,7 @@ void tst_TestCore::testRewriterRemoveScriptBinding() void tst_TestCore::testRewriterNodeReparenting() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -6952,7 +7204,7 @@ void tst_TestCore::testRewriterNodeReparenting() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -6965,15 +7217,15 @@ void tst_TestCore::testRewriterNodeReparenting() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); ModelNode itemNode = rootNode.nodeListProperty("data").toModelNodeList().at(0); QVERIFY(itemNode.isValid()); - QCOMPARE(itemNode.type(), QLatin1String("Qt/Item")); + QCOMPARE(itemNode.type(), QLatin1String("QtQuick.Item")); ModelNode mouseArea = itemNode.nodeListProperty("data").toModelNodeList().at(0); QVERIFY(mouseArea.isValid()); - QCOMPARE(mouseArea.type(), QLatin1String("Qt/MouseArea")); + QCOMPARE(mouseArea.type(), QLatin1String("QtQuick.MouseArea")); rootNode.nodeListProperty("data").reparentHere(mouseArea); @@ -6981,7 +7233,7 @@ void tst_TestCore::testRewriterNodeReparenting() QCOMPARE(rootNode.nodeListProperty("data").toModelNodeList().size(), 2); QString expected = "\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -6993,9 +7245,9 @@ void tst_TestCore::testRewriterNodeReparenting() QCOMPARE(textEdit.toPlainText(), expected); // reparenting outside of the hierarchy - ModelNode node1 = view->createModelNode("Qt/Rectangle", 4, 7); - ModelNode node2 = view->createModelNode("Qt/Item", 4, 7); - ModelNode node3 = view->createModelNode("Qt/Item", 4, 7); + ModelNode node1 = view->createModelNode("QtQuick.Rectangle", 1, 0); + ModelNode node2 = view->createModelNode("QtQuick.Item", 1, 1); + ModelNode node3 = view->createModelNode("QtQuick.Item", 1, 1); node2.nodeListProperty("data").reparentHere(node3); node1.nodeListProperty("data").reparentHere(node2); @@ -7003,7 +7255,7 @@ void tst_TestCore::testRewriterNodeReparenting() rootNode.nodeListProperty("data").reparentHere(node1); expected = "\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -7023,11 +7275,11 @@ void tst_TestCore::testRewriterNodeReparenting() QCOMPARE(textEdit.toPlainText(), expected); // reparent out of the hierarchy - ModelNode node4 = view->createModelNode("Qt/Rectangle", 4, 7); + ModelNode node4 = view->createModelNode("QtQuick.Rectangle", 1, 0); node4.nodeListProperty("data").reparentHere(node1); expected = "\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -7043,7 +7295,7 @@ void tst_TestCore::testRewriterNodeReparenting() void tst_TestCore::testRewriterNodeReparentingWithTransaction() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: rootItem\n" @@ -7060,7 +7312,7 @@ void tst_TestCore::testRewriterNodeReparentingWithTransaction() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -7073,17 +7325,17 @@ void tst_TestCore::testRewriterNodeReparentingWithTransaction() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QLatin1String("QtQuick.Rectangle")); QCOMPARE(rootNode.id(), QLatin1String("rootItem")); ModelNode item1Node = rootNode.nodeListProperty("data").toModelNodeList().at(0); QVERIFY(item1Node.isValid()); - QCOMPARE(item1Node.type(), QLatin1String("Qt/Item")); + QCOMPARE(item1Node.type(), QLatin1String("QtQuick.Item")); QCOMPARE(item1Node.id(), QLatin1String("firstItem")); ModelNode item2Node = rootNode.nodeListProperty("data").toModelNodeList().at(1); QVERIFY(item2Node.isValid()); - QCOMPARE(item2Node.type(), QLatin1String("Qt/Item")); + QCOMPARE(item2Node.type(), QLatin1String("QtQuick.Item")); QCOMPARE(item2Node.id(), QLatin1String("secondItem")); RewriterTransaction transaction = testRewriterView->beginRewriterTransaction(); @@ -7094,7 +7346,7 @@ void tst_TestCore::testRewriterNodeReparentingWithTransaction() transaction.commit(); const QLatin1String expected("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " id: rootItem\n" @@ -7113,7 +7365,7 @@ void tst_TestCore::testRewriterNodeReparentingWithTransaction() void tst_TestCore::testRewriterMovingInOut() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -7121,7 +7373,7 @@ void tst_TestCore::testRewriterMovingInOut() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -7134,13 +7386,13 @@ void tst_TestCore::testRewriterMovingInOut() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); - ModelNode newNode = view->createModelNode("Qt/MouseArea", 4, 7); + ModelNode newNode = view->createModelNode("QtQuick.MouseArea", 1, 1); rootNode.nodeListProperty(QLatin1String("data")).reparentHere(newNode); const QLatin1String expected1("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "MouseArea {\n" @@ -7159,17 +7411,19 @@ void tst_TestCore::testRewriterMovingInOut() newNode.destroy(); const QLatin1String expected2("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); QCOMPARE(textEdit.toPlainText(), expected2); + + QApplication::processEvents(); } void tst_TestCore::testRewriterMovingInOutWithTransaction() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); @@ -7177,7 +7431,7 @@ void tst_TestCore::testRewriterMovingInOutWithTransaction() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -7190,11 +7444,11 @@ void tst_TestCore::testRewriterMovingInOutWithTransaction() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); RewriterTransaction transaction = view->beginRewriterTransaction(); - ModelNode newNode = view->createModelNode("Qt/MouseArea", 4, 7); + ModelNode newNode = view->createModelNode("QtQuick.MouseArea", 1, 1); rootNode.nodeListProperty(QLatin1String("data")).reparentHere(newNode); #define move(node, x, y) {\ @@ -7210,17 +7464,18 @@ void tst_TestCore::testRewriterMovingInOutWithTransaction() transaction.commit(); const QLatin1String expected2("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" "}"); QCOMPARE(textEdit.toPlainText(), expected2); + QApplication::processEvents(); } void tst_TestCore::testRewriterComplexMovingInOut() { const QLatin1String qmlString("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -7230,7 +7485,7 @@ void tst_TestCore::testRewriterComplexMovingInOut() textEdit.setPlainText(qmlString); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -7243,14 +7498,14 @@ void tst_TestCore::testRewriterComplexMovingInOut() ModelNode rootNode = view->rootModelNode(); QVERIFY(rootNode.isValid()); - QCOMPARE(rootNode.type(), QString("Qt/Rectangle")); + QCOMPARE(rootNode.type(), QString("QtQuick.Rectangle")); ModelNode itemNode = rootNode.nodeListProperty(QLatin1String("data")).toModelNodeList().at(0); - ModelNode newNode = view->createModelNode("Qt/MouseArea", 4, 7); + ModelNode newNode = view->createModelNode("QtQuick.MouseArea", 1, 1); rootNode.nodeListProperty(QLatin1String("data")).reparentHere(newNode); const QLatin1String expected1("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -7270,7 +7525,7 @@ void tst_TestCore::testRewriterComplexMovingInOut() move(newNode, 3, 3); const QLatin1String expected2("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -7286,7 +7541,7 @@ void tst_TestCore::testRewriterComplexMovingInOut() itemNode.nodeListProperty(QLatin1String("data")).reparentHere(newNode); const QLatin1String expected3("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" @@ -7306,22 +7561,23 @@ void tst_TestCore::testRewriterComplexMovingInOut() newNode.destroy(); const QLatin1String expected4("\n" - "import Qt 4.7\n" + "import QtQuick 1.1\n" "\n" "Rectangle {\n" " Item {\n" " }\n" "}"); QCOMPARE(textEdit.toPlainText(), expected4); + QApplication::processEvents(); } void tst_TestCore::removeCenteredInAnchorByDetaching() { QPlainTextEdit textEdit1; - textEdit1.setPlainText("import Qt 4.7; Item { Rectangle { id: child; anchors.centerIn: parent } }"); + textEdit1.setPlainText("import QtQuick 1.1; Item { Rectangle { id: child; anchors.centerIn: parent } }"); NotIndentingTextEditModifier modifier1(&textEdit1); - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(Model::create("QtQuick.Item")); QScopedPointer<TestRewriterView> testRewriterView1(new TestRewriterView()); testRewriterView1->setTextModifier(&modifier1); @@ -7372,7 +7628,7 @@ void tst_TestCore::removeCenteredInAnchorByDetaching() void tst_TestCore::changePropertyBinding() { - QScopedPointer<Model> model(Model::create("Qt/Item")); + QScopedPointer<Model> model(createModel("QtQuick.Item")); QVERIFY(model.data()); QScopedPointer<TestView> view(new TestView(model.data())); @@ -7381,7 +7637,7 @@ void tst_TestCore::changePropertyBinding() ModelNode rootModelNode(view->rootModelNode()); rootModelNode.variantProperty("width") = 20; - ModelNode firstChild = addNodeListChild(rootModelNode, "Qt/Rectangle", 4, 7, "data"); + ModelNode firstChild = addNodeListChild(rootModelNode, "QtQuick.Rectangle", 1, 0, "data"); firstChild.bindingProperty("width").setExpression(QString("parent.width")); firstChild.variantProperty("height")= 10; QVERIFY(firstChild.isValid()); @@ -7421,7 +7677,7 @@ void tst_TestCore::loadTestFiles() textEdit.setPlainText(QString(file.readAll())); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -7432,7 +7688,7 @@ void tst_TestCore::loadTestFiles() QVERIFY(model.data()); ModelNode rootModelNode(testRewriterView->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QLatin1String("Qt/Item")); + QCOMPARE(rootModelNode.type(), QLatin1String("QtQuick.Item")); QVERIFY(rootModelNode.allDirectSubModelNodes().isEmpty()); } @@ -7444,7 +7700,7 @@ void tst_TestCore::loadTestFiles() textEdit.setPlainText(QString(file.readAll())); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -7455,14 +7711,14 @@ void tst_TestCore::loadTestFiles() QVERIFY(model.data()); ModelNode rootModelNode(testRewriterView->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QLatin1String("QtQuick.Rectangle")); QCOMPARE(rootModelNode.allDirectSubModelNodes().count(), 1); QCOMPARE(rootModelNode.variantProperty("width").value().toInt(), 200); QCOMPARE(rootModelNode.variantProperty("height").value().toInt(), 200); ModelNode textNode(rootModelNode.allDirectSubModelNodes().first()); QVERIFY(textNode.isValid()); - QCOMPARE(textNode.type(), QLatin1String("Qt/Text")); + QCOMPARE(textNode.type(), QLatin1String("QtQuick.Text")); QCOMPARE(textNode.variantProperty("x").value().toInt(), 66); QCOMPARE(textNode.variantProperty("y").value().toInt(), 93); } @@ -7474,7 +7730,7 @@ void tst_TestCore::loadTestFiles() textEdit.setPlainText(QString(file.readAll())); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -7485,7 +7741,7 @@ void tst_TestCore::loadTestFiles() QVERIFY(model.data()); ModelNode rootModelNode(testRewriterView->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QLatin1String("QtQuick.Rectangle")); QCOMPARE(rootModelNode.allDirectSubModelNodes().count(), 4); QCOMPARE(rootModelNode.variantProperty("width").value().toInt(), 200); QCOMPARE(rootModelNode.variantProperty("height").value().toInt(), 200); @@ -7496,14 +7752,14 @@ void tst_TestCore::loadTestFiles() ModelNode textNode(rootModelNode.nodeListProperty("data").toModelNodeList().first()); QVERIFY(textNode.isValid()); QCOMPARE(textNode.id(), QLatin1String("text")); - QCOMPARE(textNode.type(), QLatin1String("Qt/Text")); + QCOMPARE(textNode.type(), QLatin1String("QtQuick.Text")); QCOMPARE(textNode.variantProperty("x").value().toInt(), 66); QCOMPARE(textNode.variantProperty("y").value().toInt(), 93); ModelNode imageNode(rootModelNode.nodeListProperty("data").toModelNodeList().last()); QVERIFY(imageNode.isValid()); QCOMPARE(imageNode.id(), QLatin1String("image1")); - QCOMPARE(imageNode.type(), QLatin1String("Qt/Image")); + QCOMPARE(imageNode.type(), QLatin1String("QtQuick.Image")); QCOMPARE(imageNode.variantProperty("x").value().toInt(), 41); QCOMPARE(imageNode.variantProperty("y").value().toInt(), 46); QCOMPARE(imageNode.variantProperty("source").value().toUrl(), QUrl("images/qtcreator.png")); @@ -7514,7 +7770,7 @@ void tst_TestCore::loadTestFiles() QCOMPARE(rootModelNode.nodeListProperty("states").toModelNodeList().count(), 2); } - QSKIP("Fails because the text editor model doesn't know about components", SkipAll); + MSKIP_ALL("Fails because the text editor model doesn't know about components"); { //usingbutton.qml QFile file(":/fx/usingbutton.qml"); QVERIFY(file.open(QIODevice::ReadOnly | QIODevice::Text)); @@ -7523,7 +7779,7 @@ void tst_TestCore::loadTestFiles() textEdit.setPlainText(QString(file.readAll())); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -7535,12 +7791,12 @@ void tst_TestCore::loadTestFiles() QVERIFY(model.data()); ModelNode rootModelNode(testRewriterView->rootModelNode()); QVERIFY(rootModelNode.isValid()); - QCOMPARE(rootModelNode.type(), QLatin1String("Qt/Rectangle")); + QCOMPARE(rootModelNode.type(), QLatin1String("QtQuick.Rectangle")); QVERIFY(!rootModelNode.allDirectSubModelNodes().isEmpty()); } } -static QString rectWithGradient = "import Qt 4.7\n" +static QString rectWithGradient = "import QtQuick 1.1\n" "Rectangle {\n" " gradient: Gradient {\n" " id: pGradient\n" @@ -7560,7 +7816,7 @@ void tst_TestCore::loadGradient() textEdit.setPlainText(rectWithGradient); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -7579,7 +7835,7 @@ void tst_TestCore::loadGradient() QVERIFY(gradientProperty.isNodeProperty()); ModelNode gradientPropertyModelNode = gradientProperty.toNodeProperty().modelNode(); QVERIFY(gradientPropertyModelNode.isValid()); - QCOMPARE(gradientPropertyModelNode.type(), QString("Qt/Gradient")); + QCOMPARE(gradientPropertyModelNode.type(), QString("QtQuick.Gradient")); QCOMPARE(gradientPropertyModelNode.allDirectSubModelNodes().size(), 2); AbstractProperty stopsProperty = gradientPropertyModelNode.property("stops"); @@ -7592,7 +7848,7 @@ void tst_TestCore::loadGradient() ModelNode pOne = stops.first(); ModelNode pTwo = stops.last(); - QCOMPARE(pOne.type(), QString("Qt/GradientStop")); + QCOMPARE(pOne.type(), QString("QtQuick.GradientStop")); QCOMPARE(pOne.id(), QString("pOne")); QCOMPARE(pOne.allDirectSubModelNodes().size(), 0); QCOMPARE(pOne.propertyNames().size(), 2); @@ -7601,7 +7857,7 @@ void tst_TestCore::loadGradient() QCOMPARE(pOne.variantProperty("color").value().type(), QVariant::Color); QCOMPARE(pOne.variantProperty("color").value().value<QColor>(), QColor("lightsteelblue")); - QCOMPARE(pTwo.type(), QString("Qt/GradientStop")); + QCOMPARE(pTwo.type(), QString("QtQuick.GradientStop")); QCOMPARE(pTwo.id(), QString("pTwo")); QCOMPARE(pTwo.allDirectSubModelNodes().size(), 0); QCOMPARE(pTwo.propertyNames().size(), 2); @@ -7614,8 +7870,8 @@ void tst_TestCore::loadGradient() { ModelNode gradientNode = rootModelNode.allDirectSubModelNodes().last(); QVERIFY(gradientNode.isValid()); - QVERIFY(!gradientNode.metaInfo().isSubclassOf("Qt/Item", -1, -1)); - QCOMPARE(gradientNode.type(), QString("Qt/Gradient")); + QVERIFY(!gradientNode.metaInfo().isSubclassOf("QtQuick.Item", -1, -1)); + QCOMPARE(gradientNode.type(), QString("QtQuick.Gradient")); QCOMPARE(gradientNode.id(), QString("secondGradient")); QCOMPARE(gradientNode.allDirectSubModelNodes().size(), 2); @@ -7629,7 +7885,7 @@ void tst_TestCore::loadGradient() ModelNode nOne = stops.first(); ModelNode nTwo = stops.last(); - QCOMPARE(nOne.type(), QString("Qt/GradientStop")); + QCOMPARE(nOne.type(), QString("QtQuick.GradientStop")); QCOMPARE(nOne.id(), QString("nOne")); QCOMPARE(nOne.allDirectSubModelNodes().size(), 0); QCOMPARE(nOne.propertyNames().size(), 2); @@ -7638,7 +7894,7 @@ void tst_TestCore::loadGradient() QCOMPARE(nOne.variantProperty("color").value().type(), QVariant::Color); QCOMPARE(nOne.variantProperty("color").value().value<QColor>(), QColor("blue")); - QCOMPARE(nTwo.type(), QString("Qt/GradientStop")); + QCOMPARE(nTwo.type(), QString("QtQuick.GradientStop")); QCOMPARE(nTwo.id(), QString("nTwo")); QCOMPARE(nTwo.allDirectSubModelNodes().size(), 0); QCOMPARE(nTwo.propertyNames().size(), 2); @@ -7656,7 +7912,7 @@ void tst_TestCore::changeGradientId() textEdit.setPlainText(rectWithGradient); NotIndentingTextEditModifier textModifier(&textEdit); - QScopedPointer<Model> model(Model::create("Qt/Item", 4, 7)); + QScopedPointer<Model> model(Model::create("QtQuick.Item", 1, 1)); QVERIFY(model.data()); QScopedPointer<TestRewriterView> testRewriterView(new TestRewriterView()); @@ -7689,7 +7945,7 @@ void tst_TestCore::changeGradientId() firstStop.destroy(); QVERIFY(!firstStop.isValid()); - ModelNode gradientStop = addNodeListChild(gradientNode, "Qt/GradientStop", 4, 7, "stops"); + ModelNode gradientStop = addNodeListChild(gradientNode, "QtQuick.GradientStop", 1, 0, "stops"); gradientStop.variantProperty("position") = 0.5; gradientStop.variantProperty("color") = QColor("yellow"); diff --git a/tests/auto/qml/qmldesigner/coretests/tst_testcore.h b/tests/auto/qml/qmldesigner/coretests/tst_testcore.h index f8489ed54b..a8293a33ae 100644 --- a/tests/auto/qml/qmldesigner/coretests/tst_testcore.h +++ b/tests/auto/qml/qmldesigner/coretests/tst_testcore.h @@ -44,6 +44,10 @@ public: private slots: void initTestCase(); void cleanupTestCase(); + void init(); + void cleanup(); + + // // unit tests MetaInfo, NodeMetaInfo, PropertyMetaInfo @@ -57,7 +61,10 @@ private slots: void testMetaInfoEnums(); void testMetaInfoProperties(); void testMetaInfoDotProperties(); + void testMetaInfoQtQuick1Vs2(); void testMetaInfoListProperties(); + void testQtQuick20Basic(); + void testQtQuick20BasicRectangle(); // // unit tests Model, ModelNode, NodeProperty, AbstractView @@ -161,6 +168,7 @@ private slots: // integration tests // void testBasicStates(); + void testBasicStatesQtQuick20(); void testStates(); void testStatesBaseState(); void testStatesRewriter(); diff --git a/tests/auto/qml/qmldesigner/testview.cpp b/tests/auto/qml/qmldesigner/testview.cpp index b4383ecb4c..b1d0aca75a 100644 --- a/tests/auto/qml/qmldesigner/testview.cpp +++ b/tests/auto/qml/qmldesigner/testview.cpp @@ -30,6 +30,7 @@ #include "testview.h" #include <QDebug> +#include <QUrl> #include <qtestcase.h> #include <abstractproperty.h> #include <bindingproperty.h> @@ -151,10 +152,10 @@ void TestView::nodeOrderChanged(const QmlDesigner::NodeListProperty &listPropert m_methodCalls += MethodCall("nodeOrderChanged", QStringList() << listProperty.name() << movedNode.id() << QString::number(oldIndex)); } -void TestView::stateChanged(const QmlDesigner::QmlModelState &newQmlModelState, const QmlDesigner::QmlModelState &oldQmlModelState) +void TestView::actualStateChanged(const QmlDesigner::ModelNode &node) { - QmlDesigner::QmlModelView::stateChanged(newQmlModelState, oldQmlModelState); - m_methodCalls += MethodCall("stateChanged", QStringList() << newQmlModelState.name() << oldQmlModelState.name()); + QmlDesigner::QmlModelView::actualStateChanged(node); + m_methodCalls += MethodCall("actualStateChanged", QStringList() << node.id()); } QList<TestView::MethodCall> &TestView::methodCalls() diff --git a/tests/auto/qml/qmldesigner/testview.h b/tests/auto/qml/qmldesigner/testview.h index 13033402a1..a377d38d92 100644 --- a/tests/auto/qml/qmldesigner/testview.h +++ b/tests/auto/qml/qmldesigner/testview.h @@ -72,8 +72,7 @@ public: void nodeOrderChanged(const QmlDesigner::NodeListProperty &listProperty, const QmlDesigner::ModelNode &movedNode, int oldIndex); - void stateChanged(const QmlDesigner::QmlModelState &newQmlModelState, const QmlDesigner::QmlModelState &oldQmlModelState); - + void actualStateChanged(const QmlDesigner::ModelNode &node); QList<MethodCall> &methodCalls(); QString lastFunction() const; diff --git a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp index 338015b9c1..d5358c3f61 100644 --- a/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp +++ b/tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp @@ -75,7 +75,8 @@ private Q_SLOTS: void ifStatementWithBraces3(); void ifStatementMixed(); void ifStatementAndComments(); - void ifStatementLongCondition(); + void ifStatementLongCondition1(); + void ifStatementLongCondition2(); void moreIfThenElse(); void strayElse(); void oneLineIf(); @@ -941,7 +942,7 @@ void tst_QMLCodeFormatter::ifStatementAndComments() checkIndent(data); } -void tst_QMLCodeFormatter::ifStatementLongCondition() +void tst_QMLCodeFormatter::ifStatementLongCondition1() { QList<Line> data; data << Line("Rectangle {") @@ -958,6 +959,23 @@ void tst_QMLCodeFormatter::ifStatementLongCondition() checkIndent(data); } +void tst_QMLCodeFormatter::ifStatementLongCondition2() +{ + QList<Line> data; + data << Line("function test() {") + << Line(" if (foo(function() {") + << Line(" if (xx) {") + << Line(" yy = yy - 1") + << Line(" } else {") + << Line(" yy = yy + 1") + << Line(" }") + << Line(" })) {") + << Line(" zz = !zz") + << Line(" }") + << Line("}"); + checkIndent(data); +} + void tst_QMLCodeFormatter::strayElse() { QList<Line> data; @@ -1572,7 +1590,7 @@ void tst_QMLCodeFormatter::bug3() checkIndent(data); } -QTEST_APPLESS_MAIN(tst_QMLCodeFormatter) +QTEST_MAIN(tst_QMLCodeFormatter) #include "tst_qmlcodeformatter.moc" diff --git a/tests/auto/qml/qmljssimplereader/qmljssimplereader.pro b/tests/auto/qml/qmljssimplereader/qmljssimplereader.pro new file mode 100644 index 0000000000..20722acddf --- /dev/null +++ b/tests/auto/qml/qmljssimplereader/qmljssimplereader.pro @@ -0,0 +1,12 @@ +include(../../qttest.pri) + +DEFINES+=QTCREATORDIR=\\\"$$IDE_SOURCE_TREE\\\" +DEFINES+=TESTSRCDIR=\\\"$$PWD\\\" + +include($$IDE_SOURCE_TREE/src/libs/utils/utils.pri) +include($$IDE_SOURCE_TREE/src/libs/qmljs/qmljs.pri) + +TARGET = tst_qmljssimplereader + +SOURCES += \ + tst_qmljssimplereader.cpp diff --git a/tests/auto/qml/qmljssimplereader/tst_qmljssimplereader.cpp b/tests/auto/qml/qmljssimplereader/tst_qmljssimplereader.cpp new file mode 100644 index 0000000000..80972ca410 --- /dev/null +++ b/tests/auto/qml/qmljssimplereader/tst_qmljssimplereader.cpp @@ -0,0 +1,257 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of Qt Creator. +** +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** 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, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +****************************************************************************/ + +#include <qmljs/qmljssimplereader.h> + +#include <QtTest> +#include <algorithm> + +using namespace QmlJS; + +class tst_SimpleReader : public QObject +{ + Q_OBJECT +public: + tst_SimpleReader(); + +private slots: + void testWellFormed(); + void testIllFormed01(); + void testIllFormed02(); + void testArrays(); + void testBug01(); +}; + +tst_SimpleReader::tst_SimpleReader() +{ +} + +void tst_SimpleReader::testWellFormed() +{ + char source[] = "RootNode {\n" + " ChildNode {\n" + " property01: 10\n" + " }\n" + " ChildNode {\n" + " propertyString: \"str\"\n" + " InnerChild {\n" + " test: \"test\"\n" + " }\n" + " }\n" + " propertyBlah: false\n" + "}\n"; + + QmlJS::SimpleReaderNode::WeakPtr weak01; + QmlJS::SimpleReaderNode::WeakPtr weak02; + { + QmlJS::SimpleReader reader; + QmlJS::SimpleReaderNode::Ptr rootNode = reader.readFromSource(source); + QVERIFY(reader.errors().isEmpty()); + QVERIFY(rootNode); + QVERIFY(rootNode->isValid()); + QCOMPARE(rootNode->name(), QLatin1String("RootNode")); + + QCOMPARE(rootNode->children().count(), 2); + QCOMPARE(rootNode->properties().count(), 1); + + QVERIFY(rootNode->properties().contains("propertyBlah")); + QCOMPARE(rootNode->property("property01").toBool(), false); + + QVERIFY(rootNode->children().first()->isValid()); + QVERIFY(!rootNode->children().first()->isRoot()); + + QVERIFY(rootNode->children().first()->properties().contains("property01")); + QCOMPARE(rootNode->children().first()->property("property01").toInt(), 10); + + QmlJS::SimpleReaderNode::Ptr secondChild = rootNode->children().at(1); + + QVERIFY(secondChild); + QVERIFY(secondChild->isValid()); + QVERIFY(!secondChild->isRoot()); + QCOMPARE(secondChild->name(), QLatin1String("ChildNode")); + + QVERIFY(secondChild->properties().contains("propertyString")); + QCOMPARE(secondChild->property("propertyString").toString(), QLatin1String("str")); + + QCOMPARE(secondChild->children().count(), 1); + + QmlJS::SimpleReaderNode::Ptr innerChild = secondChild->children().first(); + + QVERIFY(innerChild); + QVERIFY(innerChild->isValid()); + QVERIFY(!innerChild->isRoot()); + QCOMPARE(innerChild->name(), QLatin1String("InnerChild")); + + QVERIFY(innerChild->properties().contains("test")); + QCOMPARE(innerChild->property("test").toString(), QLatin1String("test")); + + weak01 = rootNode; + weak02 = secondChild; + } + + QVERIFY(!weak01); + QVERIFY(!weak02); +} + +void tst_SimpleReader::testIllFormed01() +{ + char source[] = "RootNode {\n" + " ChildNode {\n" + " property01: 10\n" + " }\n" + " ChildNode {\n" + " propertyString: \"str\"\n" + " InnerChild \n" //missing { + " test: \"test\"\n" + " }\n" + " }\n" + " propertyBlah: false\n" + "}\n"; + QmlJS::SimpleReader reader; + QmlJS::SimpleReaderNode::Ptr rootNode = reader.readFromSource(source); + + QVERIFY(!rootNode); + QVERIFY(!reader.errors().empty()); +} + +void tst_SimpleReader::testIllFormed02() +{ + char source[] = "RootNode {\n" + " ChildNode {\n" + " property01: 10\n" + " property01: 20\n" + " }\n" + " ChildNode {\n" + " propertyString: \"str\"\n" + " InnerChild {\n" + " test: \"test\"\n" + " test: \"test2\"\n" + " }\n" + " }\n" + "}\n"; + + QmlJS::SimpleReader reader; + QmlJS::SimpleReaderNode::Ptr rootNode = reader.readFromSource(source); + + QVERIFY(rootNode); + QVERIFY(rootNode->isValid()); + QVERIFY(rootNode->isRoot()); + + QVERIFY(!reader.errors().empty()); + QCOMPARE(reader.errors().count(), 2); + + QmlJS::SimpleReaderNode::Ptr firstChild = rootNode->children().at(0); + + QVERIFY(firstChild); + QVERIFY(firstChild->isValid()); + QVERIFY(!firstChild->isRoot()); + + QCOMPARE(firstChild->properties().count(), 1); + QVERIFY(firstChild->properties().contains("property01")); + QCOMPARE(firstChild->property("property01").toString(), QLatin1String("20")); +} + +void tst_SimpleReader::testArrays() +{ + char source[] = "RootNode {\n" + " propertyArray: [\"string01\", \"string02\" ]\n" + " ChildNode {\n" + " propertyArray: [\"string01\", \"string02\" ]\n" + " propertyArrayMixed: [\"string03\", [\"string01\", \"string02\"] ]\n" + " }\n" + "}\n"; + + QList<QVariant> variantList; + variantList << QVariant(QLatin1String("string01")) << QVariant(QLatin1String("string02")); + const QVariant variant = variantList; + + QmlJS::SimpleReader reader; + QmlJS::SimpleReaderNode::Ptr rootNode = reader.readFromSource(source); + + QVERIFY(rootNode); + QVERIFY(rootNode->isValid()); + QVERIFY(rootNode->isRoot()); + + QCOMPARE(rootNode->property("propertyArray"), variant); + + + QmlJS::SimpleReaderNode::Ptr firstChild = rootNode->children().at(0); + + QVERIFY(firstChild); + QVERIFY(firstChild->isValid()); + QVERIFY(!firstChild->isRoot()); + QCOMPARE(firstChild->property("propertyArray"), variant); + + QList<QVariant> variantList2; + variantList2 << QVariant(QLatin1String("string03")) << variant; + const QVariant variant2 = variantList2; + + QCOMPARE(firstChild->property("propertyArrayMixed"), variant2); +} + +void tst_SimpleReader::testBug01() +{ + char source[] = "\n" + "AutoTypes {\n" + " imports: [ \"import HelperWidgets 1.0\", \"import QtQuick 1.0\", \"import Bauhaus 1.0\" ]\n" + " Type {\n" + " typeNames: [\"int\"]\n" + " sourceFile: \"IntEditorTemplate.qml\"\n" + " }\n" + " Type {\n" + " typeNames: [\"real\", \"double\", \"qreal\"]\n" + " sourceFile: \"RealEditorTemplate.qml\"\n" + " }\n" + " Type {\n" + " typeNames: [\"string\", \"QString\", \"QUrl\", \"url\"]\n" + " sourceFile: \"StringEditorTemplate.qml\"\n" + " }\n" + " Type {\n" + " typeNames: [\"bool\", \"boolean\"]\n" + " sourceFile: \"BooleanEditorTemplate.qml\"\n" + " }\n" + " Type {\n" + " typeNames: [\"color\", \"QColor\"]\n" + " sourceFile: \"ColorEditorTemplate.qml\"\n" + " }\n" + "}\n"; + + QmlJS::SimpleReader reader; + QmlJS::SimpleReaderNode::Ptr rootNode = reader.readFromSource(source); + + QVERIFY(rootNode); + QVERIFY(rootNode->isValid()); + QVERIFY(rootNode->isRoot()); + + QCOMPARE(rootNode->propertyNames().count(), 1); +} + +QTEST_MAIN(tst_SimpleReader); + +#include "tst_qmljssimplereader.moc" diff --git a/tests/auto/qml/qmlprojectmanager/fileformat/fileformat.pro b/tests/auto/qml/qmlprojectmanager/fileformat/fileformat.pro index ec195534d9..639e7b7a04 100644 --- a/tests/auto/qml/qmlprojectmanager/fileformat/fileformat.pro +++ b/tests/auto/qml/qmlprojectmanager/fileformat/fileformat.pro @@ -6,6 +6,7 @@ QT += script \ PLUGIN_DIR=../../../../../src/plugins/qmlprojectmanager include($$PLUGIN_DIR/fileformat/fileformat.pri) +include($$IDE_SOURCE_TREE/src/libs/utils/utils.pri) INCLUDEPATH += $$PLUGIN_DIR/fileformat |