From 1f6bdc4f6b74629761b4f0e58eb1391f624dd876 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 Nov 2009 17:02:03 +1000 Subject: More Loader testing. --- tests/auto/declarative/declarative.pro | 2 +- tests/auto/declarative/qfxloader/NoResize.qml | 7 - tests/auto/declarative/qfxloader/Rect120x60.qml | 6 - .../declarative/qfxloader/SetSourceComponent.qml | 6 - tests/auto/declarative/qfxloader/SizeToItem.qml | 6 - tests/auto/declarative/qfxloader/SizeToLoader.qml | 7 - tests/auto/declarative/qfxloader/qfxloader.pro | 7 - tests/auto/declarative/qfxloader/tst_qfxloader.cpp | 218 ---------------- .../declarative/qmlgraphicsloader/NoResize.qml | 7 + .../declarative/qmlgraphicsloader/Rect120x60.qml | 6 + .../qmlgraphicsloader/SetSourceComponent.qml | 6 + .../declarative/qmlgraphicsloader/SizeToItem.qml | 6 + .../declarative/qmlgraphicsloader/SizeToLoader.qml | 7 + .../qmlgraphicsloader/qmlgraphicsloader.pro | 7 + .../qmlgraphicsloader/tst_qmlgraphicsloader.cpp | 283 +++++++++++++++++++++ 15 files changed, 323 insertions(+), 258 deletions(-) delete mode 100644 tests/auto/declarative/qfxloader/NoResize.qml delete mode 100644 tests/auto/declarative/qfxloader/Rect120x60.qml delete mode 100644 tests/auto/declarative/qfxloader/SetSourceComponent.qml delete mode 100644 tests/auto/declarative/qfxloader/SizeToItem.qml delete mode 100644 tests/auto/declarative/qfxloader/SizeToLoader.qml delete mode 100644 tests/auto/declarative/qfxloader/qfxloader.pro delete mode 100644 tests/auto/declarative/qfxloader/tst_qfxloader.cpp create mode 100644 tests/auto/declarative/qmlgraphicsloader/NoResize.qml create mode 100644 tests/auto/declarative/qmlgraphicsloader/Rect120x60.qml create mode 100644 tests/auto/declarative/qmlgraphicsloader/SetSourceComponent.qml create mode 100644 tests/auto/declarative/qmlgraphicsloader/SizeToItem.qml create mode 100644 tests/auto/declarative/qmlgraphicsloader/SizeToLoader.qml create mode 100644 tests/auto/declarative/qmlgraphicsloader/qmlgraphicsloader.pro create mode 100644 tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index 930eb09..17c2d2a 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -12,7 +12,7 @@ SUBDIRS += \ numberformatter \ # Cover parserstress \ # Cover pathview \ # Cover - qfxloader \ # Cover + qmlgraphicsloader \ # Cover qmetaobjectbuilder \ # Cover qmlbinding \ # Cover qmlconnection \ # Cover diff --git a/tests/auto/declarative/qfxloader/NoResize.qml b/tests/auto/declarative/qfxloader/NoResize.qml deleted file mode 100644 index cfbb55a..0000000 --- a/tests/auto/declarative/qfxloader/NoResize.qml +++ /dev/null @@ -1,7 +0,0 @@ -import Qt 4.6 - -Loader { - resizeMode: "NoResize" - width: 200; height: 80 - source: "Rect120x60.qml" -} diff --git a/tests/auto/declarative/qfxloader/Rect120x60.qml b/tests/auto/declarative/qfxloader/Rect120x60.qml deleted file mode 100644 index aa4b0c2..0000000 --- a/tests/auto/declarative/qfxloader/Rect120x60.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Qt 4.6 - -Rectangle { - width: 120 - height:60 -} diff --git a/tests/auto/declarative/qfxloader/SetSourceComponent.qml b/tests/auto/declarative/qfxloader/SetSourceComponent.qml deleted file mode 100644 index 1db56c4..0000000 --- a/tests/auto/declarative/qfxloader/SetSourceComponent.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Qt 4.6 - -Item { - Component { id: comp; Rectangle { width: 100; height: 50 } } - Loader { sourceComponent: comp } -} diff --git a/tests/auto/declarative/qfxloader/SizeToItem.qml b/tests/auto/declarative/qfxloader/SizeToItem.qml deleted file mode 100644 index b52fa03..0000000 --- a/tests/auto/declarative/qfxloader/SizeToItem.qml +++ /dev/null @@ -1,6 +0,0 @@ -import Qt 4.6 - -Loader { - resizeMode: "SizeLoaderToItem" - source: "Rect120x60.qml" -} diff --git a/tests/auto/declarative/qfxloader/SizeToLoader.qml b/tests/auto/declarative/qfxloader/SizeToLoader.qml deleted file mode 100644 index 1a107e1..0000000 --- a/tests/auto/declarative/qfxloader/SizeToLoader.qml +++ /dev/null @@ -1,7 +0,0 @@ -import Qt 4.6 - -Loader { - resizeMode: "SizeItemToLoader" - width: 200; height: 80 - source: "Rect120x60.qml" -} diff --git a/tests/auto/declarative/qfxloader/qfxloader.pro b/tests/auto/declarative/qfxloader/qfxloader.pro deleted file mode 100644 index aee52cc..0000000 --- a/tests/auto/declarative/qfxloader/qfxloader.pro +++ /dev/null @@ -1,7 +0,0 @@ -load(qttest_p4) -contains(QT_CONFIG,declarative): QT += declarative gui -macx:CONFIG -= app_bundle - -SOURCES += tst_qfxloader.cpp - -DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp b/tests/auto/declarative/qfxloader/tst_qfxloader.cpp deleted file mode 100644 index 9a3da90..0000000 --- a/tests/auto/declarative/qfxloader/tst_qfxloader.cpp +++ /dev/null @@ -1,218 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include -#include -#include -#include - -class tst_qfxloader : public QObject - -{ - Q_OBJECT -public: - tst_qfxloader(); - -private slots: - void url(); - void component(); - void clear(); - void urlToComponent(); - void componentToUrl(); - void sizeLoaderToItem(); - void sizeItemToLoader(); - void noResize(); - -private: - QmlEngine engine; -}; - -/* -inline QUrl TEST_FILE(const QString &filename) -{ - QFileInfo fileInfo(__FILE__); - return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); -} - -inline QUrl TEST_FILE(const char *filename) -{ - return TEST_FILE(QLatin1String(filename)); -} -*/ - -tst_qfxloader::tst_qfxloader() -{ -} - -void tst_qfxloader::url() -{ - QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"Rect120x60.qml\" }"), QUrl("file://" SRCDIR "/")); - QmlGraphicsLoader *loader = qobject_cast(component.create()); - QVERIFY(loader != 0); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast(loader)->children().count(), 1); - - delete loader; -} - -void tst_qfxloader::component() -{ - QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); - QmlGraphicsItem *item = qobject_cast(component.create()); - QVERIFY(item); - - QmlGraphicsLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); - QVERIFY(loader); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast(loader)->children().count(), 1); - - delete loader; -} - -void tst_qfxloader::clear() -{ - QmlComponent component(&engine, QByteArray( - "import Qt 4.6\n" - " Loader { id: loader\n" - " source: 'Rect120x60.qml'\n" - " Timer { interval: 200; running: true; onTriggered: loader.source = '' }\n" - " }") - , QUrl("file://" SRCDIR "/")); - QmlGraphicsLoader *loader = qobject_cast(component.create()); - QVERIFY(loader != 0); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast(loader)->children().count(), 1); - - QTest::qWait(500); - - QVERIFY(loader->item() == 0); - QCOMPARE(loader->progress(), 0.0); - QCOMPARE(static_cast(loader)->children().count(), 0); - - delete loader; -} - -void tst_qfxloader::urlToComponent() -{ - QmlComponent component(&engine, QByteArray("import Qt 4.6\n" - "Loader {\n" - " id: loader\n" - " Component { id: myComp; Rectangle { width: 10; height: 10 } }\n" - " source: \"Rect120x60.qml\"\n" - " Timer { interval: 100; running: true; onTriggered: loader.sourceComponent = myComp }\n" - "}" ) - , QUrl("file://" SRCDIR "/")); - QmlGraphicsLoader *loader = qobject_cast(component.create()); - QTest::qWait(500); - QVERIFY(loader != 0); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast(loader)->children().count(), 1); - QCOMPARE(loader->width(), 10.0); - QCOMPARE(loader->height(), 10.0); - - delete loader; -} - -void tst_qfxloader::componentToUrl() -{ - QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); - QmlGraphicsItem *item = qobject_cast(component.create()); - QVERIFY(item); - - QmlGraphicsLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); - QVERIFY(loader); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast(loader)->children().count(), 1); - - loader->setSource(QUrl("file://" SRCDIR "/Rect120x60.qml")); - QVERIFY(loader->item()); - QCOMPARE(loader->progress(), 1.0); - QCOMPARE(static_cast(loader)->children().count(), 1); - QCOMPARE(loader->width(), 120.0); - QCOMPARE(loader->height(), 60.0); - - delete loader; -} - -void tst_qfxloader::sizeLoaderToItem() -{ - QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToItem.qml")); - QmlGraphicsLoader *loader = qobject_cast(component.create()); - QVERIFY(loader != 0); - QCOMPARE(loader->width(), 120.0); - QCOMPARE(loader->height(), 60.0); -} - -void tst_qfxloader::sizeItemToLoader() -{ - QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToLoader.qml")); - QmlGraphicsLoader *loader = qobject_cast(component.create()); - QVERIFY(loader != 0); - QCOMPARE(loader->width(), 200.0); - QCOMPARE(loader->height(), 80.0); - - QmlGraphicsItem *rect = loader->item(); - QVERIFY(rect); - QCOMPARE(rect->width(), 200.0); - QCOMPARE(rect->height(), 80.0); -} - -void tst_qfxloader::noResize() -{ - QmlComponent component(&engine, QUrl("file://" SRCDIR "/NoResize.qml")); - QmlGraphicsLoader *loader = qobject_cast(component.create()); - QVERIFY(loader != 0); - QCOMPARE(loader->width(), 200.0); - QCOMPARE(loader->height(), 80.0); - - QmlGraphicsItem *rect = loader->item(); - QVERIFY(rect); - QCOMPARE(rect->width(), 120.0); - QCOMPARE(rect->height(), 60.0); -} - -QTEST_MAIN(tst_qfxloader) - -#include "tst_qfxloader.moc" diff --git a/tests/auto/declarative/qmlgraphicsloader/NoResize.qml b/tests/auto/declarative/qmlgraphicsloader/NoResize.qml new file mode 100644 index 0000000..cfbb55a --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/NoResize.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +Loader { + resizeMode: "NoResize" + width: 200; height: 80 + source: "Rect120x60.qml" +} diff --git a/tests/auto/declarative/qmlgraphicsloader/Rect120x60.qml b/tests/auto/declarative/qmlgraphicsloader/Rect120x60.qml new file mode 100644 index 0000000..aa4b0c2 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/Rect120x60.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Rectangle { + width: 120 + height:60 +} diff --git a/tests/auto/declarative/qmlgraphicsloader/SetSourceComponent.qml b/tests/auto/declarative/qmlgraphicsloader/SetSourceComponent.qml new file mode 100644 index 0000000..1db56c4 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/SetSourceComponent.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Item { + Component { id: comp; Rectangle { width: 100; height: 50 } } + Loader { sourceComponent: comp } +} diff --git a/tests/auto/declarative/qmlgraphicsloader/SizeToItem.qml b/tests/auto/declarative/qmlgraphicsloader/SizeToItem.qml new file mode 100644 index 0000000..b52fa03 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/SizeToItem.qml @@ -0,0 +1,6 @@ +import Qt 4.6 + +Loader { + resizeMode: "SizeLoaderToItem" + source: "Rect120x60.qml" +} diff --git a/tests/auto/declarative/qmlgraphicsloader/SizeToLoader.qml b/tests/auto/declarative/qmlgraphicsloader/SizeToLoader.qml new file mode 100644 index 0000000..1a107e1 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/SizeToLoader.qml @@ -0,0 +1,7 @@ +import Qt 4.6 + +Loader { + resizeMode: "SizeItemToLoader" + width: 200; height: 80 + source: "Rect120x60.qml" +} diff --git a/tests/auto/declarative/qmlgraphicsloader/qmlgraphicsloader.pro b/tests/auto/declarative/qmlgraphicsloader/qmlgraphicsloader.pro new file mode 100644 index 0000000..8be8cdf --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/qmlgraphicsloader.pro @@ -0,0 +1,7 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative gui +macx:CONFIG -= app_bundle + +SOURCES += tst_qmlgraphicsloader.cpp + +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp new file mode 100644 index 0000000..8fda991 --- /dev/null +++ b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp @@ -0,0 +1,283 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include +#include +#include +#include + +class tst_QmlGraphicsLoader : public QObject + +{ + Q_OBJECT +public: + tst_QmlGraphicsLoader(); + +private slots: + void url(); + void invalidUrl(); + void component(); + void clear(); + void urlToComponent(); + void componentToUrl(); + void sizeLoaderToItem(); + void sizeItemToLoader(); + void noResize(); + +private: + QmlEngine engine; +}; + +/* +inline QUrl TEST_FILE(const QString &filename) +{ + QFileInfo fileInfo(__FILE__); + return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(filename)); +} + +inline QUrl TEST_FILE(const char *filename) +{ + return TEST_FILE(QLatin1String(filename)); +} +*/ + +tst_QmlGraphicsLoader::tst_QmlGraphicsLoader() +{ +} + +void tst_QmlGraphicsLoader::url() +{ + QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"Rect120x60.qml\" }"), QUrl("file://" SRCDIR "/")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QVERIFY(loader != 0); + QVERIFY(loader->item()); + QVERIFY(loader->source() == QUrl("file://" SRCDIR "/Rect120x60.qml")); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Ready); + QCOMPARE(static_cast(loader)->children().count(), 1); + + delete loader; +} + +void tst_QmlGraphicsLoader::component() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); + QmlGraphicsItem *item = qobject_cast(component.create()); + QVERIFY(item); + + QmlGraphicsLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); + QVERIFY(loader); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Ready); + QCOMPARE(static_cast(loader)->children().count(), 1); + + delete loader; +} + +void tst_QmlGraphicsLoader::invalidUrl() +{ +// QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml)"); + + QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"IDontExist.qml\" }"), QUrl("file://" SRCDIR "/")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QVERIFY(loader != 0); + QVERIFY(loader->item() == 0); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Error); + QCOMPARE(static_cast(loader)->children().count(), 0); + + delete loader; +} + +void tst_QmlGraphicsLoader::clear() +{ + { + QmlComponent component(&engine, QByteArray( + "import Qt 4.6\n" + " Loader { id: loader\n" + " source: 'Rect120x60.qml'\n" + " Timer { interval: 200; running: true; onTriggered: loader.source = '' }\n" + " }") + , QUrl("file://" SRCDIR "/")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QVERIFY(loader != 0); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast(loader)->children().count(), 1); + + QTest::qWait(500); + + QVERIFY(loader->item() == 0); + QCOMPARE(loader->progress(), 0.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Null); + QCOMPARE(static_cast(loader)->children().count(), 0); + + delete loader; + } + { + QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); + QmlGraphicsItem *item = qobject_cast(component.create()); + QVERIFY(item); + + QmlGraphicsLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); + QVERIFY(loader); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast(loader)->children().count(), 1); + + loader->setSourceComponent(0); + + QVERIFY(loader->item() == 0); + QCOMPARE(loader->progress(), 0.0); + QCOMPARE(loader->status(), QmlGraphicsLoader::Null); + QCOMPARE(static_cast(loader)->children().count(), 0); + + delete loader; + } +} + +void tst_QmlGraphicsLoader::urlToComponent() +{ + QmlComponent component(&engine, QByteArray("import Qt 4.6\n" + "Loader {\n" + " id: loader\n" + " Component { id: myComp; Rectangle { width: 10; height: 10 } }\n" + " source: \"Rect120x60.qml\"\n" + " Timer { interval: 100; running: true; onTriggered: loader.sourceComponent = myComp }\n" + "}" ) + , QUrl("file://" SRCDIR "/")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QTest::qWait(500); + QVERIFY(loader != 0); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast(loader)->children().count(), 1); + QCOMPARE(loader->width(), 10.0); + QCOMPARE(loader->height(), 10.0); + + delete loader; +} + +void tst_QmlGraphicsLoader::componentToUrl() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/SetSourceComponent.qml")); + QmlGraphicsItem *item = qobject_cast(component.create()); + QVERIFY(item); + + QmlGraphicsLoader *loader = qobject_cast(item->QGraphicsObject::children().at(1)); + QVERIFY(loader); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast(loader)->children().count(), 1); + + loader->setSource(QUrl("file://" SRCDIR "/Rect120x60.qml")); + QVERIFY(loader->item()); + QCOMPARE(loader->progress(), 1.0); + QCOMPARE(static_cast(loader)->children().count(), 1); + QCOMPARE(loader->width(), 120.0); + QCOMPARE(loader->height(), 60.0); + + delete loader; +} + +void tst_QmlGraphicsLoader::sizeLoaderToItem() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToItem.qml")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QVERIFY(loader != 0); + QVERIFY(loader->resizeMode() == QmlGraphicsLoader::SizeLoaderToItem); + QCOMPARE(loader->width(), 120.0); + QCOMPARE(loader->height(), 60.0); + + // Check resize + QmlGraphicsItem *rect = loader->item(); + QVERIFY(rect); + rect->setWidth(150); + rect->setHeight(45); + QCOMPARE(loader->width(), 150.0); + QCOMPARE(loader->height(), 45.0); + + // Switch mode + loader->setResizeMode(QmlGraphicsLoader::SizeItemToLoader); + loader->setWidth(180); + loader->setHeight(30); + QCOMPARE(rect->width(), 180.0); + QCOMPARE(rect->height(), 30.0); +} + +void tst_QmlGraphicsLoader::sizeItemToLoader() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/SizeToLoader.qml")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QVERIFY(loader != 0); + QVERIFY(loader->resizeMode() == QmlGraphicsLoader::SizeItemToLoader); + QCOMPARE(loader->width(), 200.0); + QCOMPARE(loader->height(), 80.0); + + QmlGraphicsItem *rect = loader->item(); + QVERIFY(rect); + QCOMPARE(rect->width(), 200.0); + QCOMPARE(rect->height(), 80.0); + + // Check resize + loader->setWidth(180); + loader->setHeight(30); + QCOMPARE(rect->width(), 180.0); + QCOMPARE(rect->height(), 30.0); +} + +void tst_QmlGraphicsLoader::noResize() +{ + QmlComponent component(&engine, QUrl("file://" SRCDIR "/NoResize.qml")); + QmlGraphicsLoader *loader = qobject_cast(component.create()); + QVERIFY(loader != 0); + QCOMPARE(loader->width(), 200.0); + QCOMPARE(loader->height(), 80.0); + + QmlGraphicsItem *rect = loader->item(); + QVERIFY(rect); + QCOMPARE(rect->width(), 120.0); + QCOMPARE(rect->height(), 60.0); +} + +QTEST_MAIN(tst_QmlGraphicsLoader) + +#include "tst_qmlgraphicsloader.moc" -- cgit v0.12