From 700910d938c75c978f765ec8438f81e70676999a Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Wed, 23 Jan 2013 14:08:58 -0800 Subject: Add QtQml.Models module The moved Model classes can now be exposed in a QtQml import. To keep the QtQml import resticted to more core functionality, they are being exposed in a plugin module. Change-Id: I0a84642a72c7c9bbf9b6ffd2a6c33549f8e61c29 Reviewed-by: Alan Alpert Reviewed-by: Lars Knoll --- tests/auto/qml/qtqmlmodules/data/base.qml | 14 ++++ tests/auto/qml/qtqmlmodules/data/models.qml | 15 ++++ tests/auto/qml/qtqmlmodules/data/unavailable.qml | 35 +++++++++ tests/auto/qml/qtqmlmodules/qtqmlmodules.pro | 12 +++ tests/auto/qml/qtqmlmodules/tst_qtqmlmodules.cpp | 95 ++++++++++++++++++++++++ 5 files changed, 171 insertions(+) create mode 100644 tests/auto/qml/qtqmlmodules/data/base.qml create mode 100644 tests/auto/qml/qtqmlmodules/data/models.qml create mode 100644 tests/auto/qml/qtqmlmodules/data/unavailable.qml create mode 100644 tests/auto/qml/qtqmlmodules/qtqmlmodules.pro create mode 100644 tests/auto/qml/qtqmlmodules/tst_qtqmlmodules.cpp (limited to 'tests/auto/qml/qtqmlmodules') diff --git a/tests/auto/qml/qtqmlmodules/data/base.qml b/tests/auto/qml/qtqmlmodules/data/base.qml new file mode 100644 index 0000000000..942b270572 --- /dev/null +++ b/tests/auto/qml/qtqmlmodules/data/base.qml @@ -0,0 +1,14 @@ +import QtQml 2.0 + +QtObject { + property bool success: { + prop1 != undefined && + prop2 != undefined && + prop3 != undefined && + prop4 != undefined + } + property Component prop1: Component { QtObject {}} + property Timer prop2: Timer {} + property Connections prop3: Connections{} + property Binding prop4: Binding{} +} diff --git a/tests/auto/qml/qtqmlmodules/data/models.qml b/tests/auto/qml/qtqmlmodules/data/models.qml new file mode 100644 index 0000000000..d253565932 --- /dev/null +++ b/tests/auto/qml/qtqmlmodules/data/models.qml @@ -0,0 +1,15 @@ +import QtQml 2.0 +import QtQml.Models 2.1 + +QtObject { + property bool success: { + prop1 != undefined && + prop2 != undefined && + prop3 != undefined && + prop4 != undefined + } + property DelegateModelGroup prop1: DelegateModelGroup{} + property DelegateModel prop2: DelegateModel{} + property ObjectModel prop3: ObjectModel{} + property ListModel prop4: ListModel{ListElement{dummy: true}} +} diff --git a/tests/auto/qml/qtqmlmodules/data/unavailable.qml b/tests/auto/qml/qtqmlmodules/data/unavailable.qml new file mode 100644 index 0000000000..5841e3f677 --- /dev/null +++ b/tests/auto/qml/qtqmlmodules/data/unavailable.qml @@ -0,0 +1,35 @@ +import QtQml 2.0 + +QtObject { + id: root + property bool success: false; + Component.onCompleted: { + var strings = [ + "QtObject{}", + "Binding{}", + "Connections{}", + "Timer{}", + "Component{QtObject{}}", + "ListModel{ListElement{}}", + "ObjectModel{QtObject{}}", + "import QtQml 2.0 Item{}", + "import QtQml 2.0 ListModel{}", + "import QtQml 2.0 ObjectModel{}" + ]; + var idx; + for (idx in strings) { + var errored = false; + var item; + try { + item = Qt.createQmlObject(strings[idx], root); + } catch (err) { + errored = true; + } + if (!errored) { + console.log("It worked? ", item); + return; + } + } + root.success = true; + } +} diff --git a/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro new file mode 100644 index 0000000000..36ece8d7e0 --- /dev/null +++ b/tests/auto/qml/qtqmlmodules/qtqmlmodules.pro @@ -0,0 +1,12 @@ +CONFIG += testcase +TARGET = tst_qtqmlmodules +SOURCES += tst_qtqmlmodules.cpp + +include (../../shared/util.pri) + +macx:CONFIG -= app_bundle + +TESTDATA = data/* + +QT += core-private v8-private qml-private testlib gui gui-private +DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/qml/qtqmlmodules/tst_qtqmlmodules.cpp b/tests/auto/qml/qtqmlmodules/tst_qtqmlmodules.cpp new file mode 100644 index 0000000000..1e98c53694 --- /dev/null +++ b/tests/auto/qml/qtqmlmodules/tst_qtqmlmodules.cpp @@ -0,0 +1,95 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Research in Motion. +** Contact: http://www.qt-project.org/legal +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** 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. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include "../../shared/util.h" + +class tst_qtqmlmodules : public QQmlDataTest +{ + Q_OBJECT +public: + tst_qtqmlmodules() {} + +private slots: + void baseTypes(); + void modelsTypes(); + void unavailableTypes(); +}; + +void tst_qtqmlmodules::baseTypes() +{ + QQmlEngine engine; + QQmlComponent component(&engine, testFileUrl("base.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + QVERIFY(object->property("success").toBool()); + + delete object; +} + +void tst_qtqmlmodules::modelsTypes() +{ + QQmlEngine engine; + QQmlComponent component(&engine, testFileUrl("models.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + QVERIFY(object->property("success").toBool()); + + delete object; +} + +void tst_qtqmlmodules::unavailableTypes() +{ + QQmlEngine engine; + QQmlComponent component(&engine, testFileUrl("unavailable.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + QVERIFY(object->property("success").toBool()); + + delete object; +} + +QTEST_MAIN(tst_qtqmlmodules) + +#include "tst_qtqmlmodules.moc" -- cgit v1.2.3