diff options
author | Antti Määttä <antti.maatta@qt.io> | 2016-11-14 11:33:14 +0200 |
---|---|---|
committer | Antti Määttä <antti.maatta@qt.io> | 2017-01-27 13:57:28 +0000 |
commit | 2f44f4ecb3b0c9eb3f00c9a08e30ba7dd11785ba (patch) | |
tree | 239f75f7dd8c63beccb52e30e6b8c39892346e7a | |
parent | d5c5a12cf45d9b0e72f9cfe78223813485b929ac (diff) |
Rename and update qrenderqmltotexture unit tests
Change-Id: Ib80c7ade344a83c2ee900f87f69a8f7c4bf8cc2e
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r-- | tests/auto/render/qrenderqmltotexture/qrenderqmltotexture.pro | 11 | ||||
-rw-r--r-- | tests/auto/render/qrenderqmltotexture/tst_qrenderqmltotexture.cpp | 284 | ||||
-rw-r--r-- | tests/auto/render/qscene2d/qscene2d.pro | 12 | ||||
-rw-r--r-- | tests/auto/render/qscene2d/tst_qscene2d.cpp | 316 | ||||
-rw-r--r-- | tests/auto/render/render.pro | 3 |
5 files changed, 330 insertions, 296 deletions
diff --git a/tests/auto/render/qrenderqmltotexture/qrenderqmltotexture.pro b/tests/auto/render/qrenderqmltotexture/qrenderqmltotexture.pro deleted file mode 100644 index 8b2840929..000000000 --- a/tests/auto/render/qrenderqmltotexture/qrenderqmltotexture.pro +++ /dev/null @@ -1,11 +0,0 @@ -TEMPLATE = app - -TARGET = qrenderqmltotexture - -QT += 3dcore 3dcore-private 3drender 3drender-private testlib - -CONFIG += testcase - -SOURCES += tst_qrenderqmltotexture.cpp - -include(../commons/commons.pri) diff --git a/tests/auto/render/qrenderqmltotexture/tst_qrenderqmltotexture.cpp b/tests/auto/render/qrenderqmltotexture/tst_qrenderqmltotexture.cpp deleted file mode 100644 index b337306be..000000000 --- a/tests/auto/render/qrenderqmltotexture/tst_qrenderqmltotexture.cpp +++ /dev/null @@ -1,284 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt3D module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** 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 The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <QtTest/QTest> -#include <Qt3DRender/qrenderqmltotexture.h> -#include <Qt3DRender/qtexture.h> -#include <Qt3DRender/private/qrenderqmltotexture_p.h> -#include <QObject> -#include <QSignalSpy> -#include <Qt3DCore/qpropertyupdatedchange.h> -#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h> -#include <Qt3DCore/qnodecreatedchange.h> -#include "testpostmanarbiter.h" - -class tst_QRenderQmlToTexture : public QObject -{ - Q_OBJECT - -private Q_SLOTS: - - void checkDefaultConstruction() - { - // GIVEN - Qt3DRender::QRenderQmlToTexture renderQmlToTexture; - - // THEN - QCOMPARE(renderQmlToTexture.texture(), nullptr); - QCOMPARE(renderQmlToTexture.source(), QUrl(QStringLiteral(""))); - QCOMPARE(renderQmlToTexture.renderOnce(), false); - QCOMPARE(renderQmlToTexture.loaded(), false); - } - - void checkPropertyChanges() - { - // GIVEN - Qt3DRender::QRenderQmlToTexture renderQmlToTexture; - QScopedPointer<Qt3DRender::QTexture2D> texture(new Qt3DRender::QTexture2D()); - - { - // WHEN - QSignalSpy spy(&renderQmlToTexture, SIGNAL(textureChanged(Qt3DRender::QAbstractTexture *))); - Qt3DRender::QAbstractTexture * newValue = texture.data(); - renderQmlToTexture.setTexture(newValue); - - // THEN - QVERIFY(spy.isValid()); - QCOMPARE(renderQmlToTexture.texture(), newValue); - QCOMPARE(spy.count(), 1); - - // WHEN - spy.clear(); - renderQmlToTexture.setTexture(newValue); - - // THEN - QCOMPARE(renderQmlToTexture.texture(), newValue); - QCOMPARE(spy.count(), 0); - } - { - // WHEN - QSignalSpy spy(&renderQmlToTexture, SIGNAL(sourceChanged(QUrl))); - const QUrl newValue = QUrl(QStringLiteral("qrc://source.qml")); - renderQmlToTexture.setSource(newValue); - - // THEN - QVERIFY(spy.isValid()); - QCOMPARE(renderQmlToTexture.source(), newValue); - QCOMPARE(spy.count(), 1); - - // WHEN - spy.clear(); - renderQmlToTexture.setSource(newValue); - - // THEN - QCOMPARE(renderQmlToTexture.source(), newValue); - QCOMPARE(spy.count(), 0); - } - { - // WHEN - QSignalSpy spy(&renderQmlToTexture, SIGNAL(renderOnceChanged(bool))); - const bool newValue = true; - renderQmlToTexture.setRenderOnce(newValue); - - // THEN - QVERIFY(spy.isValid()); - QCOMPARE(renderQmlToTexture.renderOnce(), newValue); - QCOMPARE(spy.count(), 1); - - // WHEN - spy.clear(); - renderQmlToTexture.setRenderOnce(newValue); - - // THEN - QCOMPARE(renderQmlToTexture.renderOnce(), newValue); - QCOMPARE(spy.count(), 0); - } - } - - void checkCreationData() - { - // GIVEN - Qt3DRender::QRenderQmlToTexture renderQmlToTexture; - QScopedPointer<Qt3DRender::QTexture2D> texture(new Qt3DRender::QTexture2D()); - - renderQmlToTexture.setTexture(texture.data()); - renderQmlToTexture.setSource(QUrl(QStringLiteral("qrc://source.qml"))); - renderQmlToTexture.setRenderOnce(true); - - // WHEN - QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges; - - { - Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(&renderQmlToTexture); - creationChanges = creationChangeGenerator.creationChanges(); - } - - // THEN - { - QCOMPARE(creationChanges.size(), 1); - - const auto creationChangeData = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QRenderQmlToTextureData>>(creationChanges.first()); - const Qt3DRender::QRenderQmlToTextureData cloneData = creationChangeData->data; - - QCOMPARE(renderQmlToTexture.texture()->id(), cloneData.textureId); - QCOMPARE(renderQmlToTexture.renderOnce(), cloneData.renderOnce); - QCOMPARE(renderQmlToTexture.id(), creationChangeData->subjectId()); - QCOMPARE(renderQmlToTexture.isEnabled(), true); - QCOMPARE(renderQmlToTexture.isEnabled(), creationChangeData->isNodeEnabled()); - QCOMPARE(renderQmlToTexture.metaObject(), creationChangeData->metaObject()); - } - - // WHEN - renderQmlToTexture.setEnabled(false); - - { - Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(&renderQmlToTexture); - creationChanges = creationChangeGenerator.creationChanges(); - } - - // THEN - { - QCOMPARE(creationChanges.size(), 1); - - const auto creationChangeData = qSharedPointerCast<Qt3DCore::QNodeCreatedChange<Qt3DRender::QRenderQmlToTextureData>>(creationChanges.first()); - const Qt3DRender::QRenderQmlToTextureData cloneData = creationChangeData->data; - - QCOMPARE(renderQmlToTexture.texture()->id(), cloneData.textureId); - QCOMPARE(renderQmlToTexture.renderOnce(), cloneData.renderOnce); - QCOMPARE(renderQmlToTexture.id(), creationChangeData->subjectId()); - QCOMPARE(renderQmlToTexture.isEnabled(), false); - QCOMPARE(renderQmlToTexture.isEnabled(), creationChangeData->isNodeEnabled()); - QCOMPARE(renderQmlToTexture.metaObject(), creationChangeData->metaObject()); - } - } - - void checkTextureUpdate() - { - // GIVEN - TestArbiter arbiter; - Qt3DRender::QRenderQmlToTexture renderQmlToTexture; - arbiter.setArbiterOnNode(&renderQmlToTexture); - QScopedPointer<Qt3DRender::QTexture2D> texture(new Qt3DRender::QTexture2D()); - - { - // WHEN - renderQmlToTexture.setTexture(texture.data()); - QCoreApplication::processEvents(); - - // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "texture"); - QCOMPARE(change->value().value<Qt3DRender::QAbstractTexture *>(), renderQmlToTexture.texture()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); - } - - { - // WHEN - renderQmlToTexture.setTexture(texture.data()); - QCoreApplication::processEvents(); - - // THEN - QCOMPARE(arbiter.events.size(), 0); - } - - } - - void checkSourceUpdate() - { - // GIVEN - TestArbiter arbiter; - Qt3DRender::QRenderQmlToTexture renderQmlToTexture; - arbiter.setArbiterOnNode(&renderQmlToTexture); - - { - // WHEN - renderQmlToTexture.setSource(QUrl(QStringLiteral("qrc://source.qml"))); - QCoreApplication::processEvents(); - - // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "source"); - QCOMPARE(change->value().value<QUrl>(), renderQmlToTexture.source()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); - } - - { - // WHEN - renderQmlToTexture.setSource(QUrl(QStringLiteral("qrc://source.qml"))); - QCoreApplication::processEvents(); - - // THEN - QCOMPARE(arbiter.events.size(), 0); - } - - } - - void checkRenderOnceUpdate() - { - // GIVEN - TestArbiter arbiter; - Qt3DRender::QRenderQmlToTexture renderQmlToTexture; - arbiter.setArbiterOnNode(&renderQmlToTexture); - - { - // WHEN - renderQmlToTexture.setRenderOnce(true); - QCoreApplication::processEvents(); - - // THEN - QCOMPARE(arbiter.events.size(), 1); - auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); - QCOMPARE(change->propertyName(), "renderOnce"); - QCOMPARE(change->value().value<bool>(), renderQmlToTexture.renderOnce()); - QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); - - arbiter.events.clear(); - } - - { - // WHEN - renderQmlToTexture.setRenderOnce(true); - QCoreApplication::processEvents(); - - // THEN - QCOMPARE(arbiter.events.size(), 0); - } - - } - -}; - -QTEST_MAIN(tst_QRenderQmlToTexture) - -#include "tst_qrenderqmltotexture.moc" diff --git a/tests/auto/render/qscene2d/qscene2d.pro b/tests/auto/render/qscene2d/qscene2d.pro new file mode 100644 index 000000000..b7458d1c2 --- /dev/null +++ b/tests/auto/render/qscene2d/qscene2d.pro @@ -0,0 +1,12 @@ +TEMPLATE = app + +TARGET = qscene2d + +QT += 3dcore 3dcore-private 3drender 3drender-private testlib 3dquickrender 3dquickrender-private + +CONFIG += testcase + +SOURCES += tst_qscene2d.cpp + +include(../../core/common/common.pri) +include(../commons/commons.pri) diff --git a/tests/auto/render/qscene2d/tst_qscene2d.cpp b/tests/auto/render/qscene2d/tst_qscene2d.cpp new file mode 100644 index 000000000..8d27945e4 --- /dev/null +++ b/tests/auto/render/qscene2d/tst_qscene2d.cpp @@ -0,0 +1,316 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** 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 The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtTest/QTest> +#include <Qt3DQuickRender/qscene2d.h> +#include <Qt3DRender/qrendertargetoutput.h> +#include <private/qscene2d_p.h> +#include <QObject> +#include <QSignalSpy> +#include <Qt3DCore/qpropertyupdatedchange.h> +#include <Qt3DCore/private/qnodecreatedchangegenerator_p.h> +#include <Qt3DCore/qnodecreatedchange.h> +#include "testpostmanarbiter.h" + +using namespace Qt3DRender::Quick; + +class tst_QScene2D : public QObject +{ + Q_OBJECT + +private Q_SLOTS: + + void initTestCase() + { + qRegisterMetaType<Qt3DRender::Quick::QScene2D::RenderPolicy>( + "QScene2D::RenderPolicy"); + } + + void checkDefaultConstruction() + { + // GIVEN + Qt3DRender::Quick::QScene2D scene2d; + + // THEN + QCOMPARE(scene2d.output(), nullptr); + QCOMPARE(scene2d.source(), QUrl(QStringLiteral(""))); + QCOMPARE(scene2d.renderPolicy(), QScene2D::Continuous); + QCOMPARE(scene2d.loaded(), false); + QCOMPARE(scene2d.item(), nullptr); + } + + void checkPropertyChanges() + { + // GIVEN + Qt3DRender::Quick::QScene2D scene2d; + QScopedPointer<Qt3DRender::QRenderTargetOutput> output(new Qt3DRender::QRenderTargetOutput()); + QScopedPointer<QQuickItem> item(new QQuickItem()); + + { + // WHEN + QSignalSpy spy(&scene2d, SIGNAL(outputChanged(Qt3DRender::QRenderTargetOutput*))); + Qt3DRender::QRenderTargetOutput *newValue = output.data(); + scene2d.setOutput(newValue); + + // THEN + QVERIFY(spy.isValid()); + QCOMPARE(scene2d.output(), newValue); + QCOMPARE(spy.count(), 1); + + // WHEN + spy.clear(); + scene2d.setOutput(newValue); + + // THEN + QCOMPARE(scene2d.output(), newValue); + QCOMPARE(spy.count(), 0); + } + { + // WHEN + QSignalSpy spy(&scene2d, SIGNAL(sourceChanged(QUrl))); + const QUrl newValue = QUrl(QStringLiteral("qrc://source.qml")); + scene2d.setSource(newValue); + + // THEN + QVERIFY(spy.isValid()); + QCOMPARE(scene2d.source(), newValue); + QCOMPARE(spy.count(), 1); + + // WHEN + spy.clear(); + scene2d.setSource(newValue); + + // THEN + QCOMPARE(scene2d.source(), newValue); + QCOMPARE(spy.count(), 0); + } + { + // WHEN + QSignalSpy spy(&scene2d, SIGNAL(renderPolicyChanged(QScene2D::RenderPolicy))); + const QScene2D::RenderPolicy newValue = QScene2D::SingleShot; + scene2d.setRenderPolicy(newValue); + + // THEN + QVERIFY(spy.isValid()); + QCOMPARE(scene2d.renderPolicy(), newValue); + QCOMPARE(spy.count(), 1); + + // WHEN + spy.clear(); + scene2d.setRenderPolicy(newValue); + + // THEN + QCOMPARE(scene2d.renderPolicy(), newValue); + QCOMPARE(spy.count(), 0); + } + { + // WHEN + QSignalSpy spy(&scene2d, SIGNAL(itemChanged(QQuickItem*))); + QQuickItem *newValue = item.data(); + scene2d.setItem(newValue); + + // THEN + QVERIFY(spy.isValid()); + QCOMPARE(scene2d.item(), newValue); + QCOMPARE(spy.count(), 1); + + // WHEN + spy.clear(); + scene2d.setItem(newValue); + + // THEN + QCOMPARE(scene2d.item(), newValue); + QCOMPARE(spy.count(), 0); + } + } + + void checkCreationData() + { + // GIVEN + Qt3DRender::Quick::QScene2D scene2d; + QScopedPointer<Qt3DRender::QRenderTargetOutput> output(new Qt3DRender::QRenderTargetOutput()); + + scene2d.setOutput(output.data()); + scene2d.setSource(QUrl(QStringLiteral("qrc://source.qml"))); + scene2d.setRenderPolicy(QScene2D::SingleShot); + + // WHEN + QVector<Qt3DCore::QNodeCreatedChangeBasePtr> creationChanges; + + { + Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(&scene2d); + creationChanges = creationChangeGenerator.creationChanges(); + } + + // THEN + { + QCOMPARE(creationChanges.size(), 1); + + const auto creationChangeData = qSharedPointerCast<Qt3DCore::QNodeCreatedChange< + Qt3DRender::Quick::QScene2DData>>(creationChanges.first()); + const Qt3DRender::Quick::QScene2DData cloneData = creationChangeData->data; + + QCOMPARE(scene2d.output()->id(), cloneData.output); + QCOMPARE(scene2d.renderPolicy(), cloneData.renderPolicy); + QCOMPARE(scene2d.id(), creationChangeData->subjectId()); + QCOMPARE(scene2d.isEnabled(), true); + QCOMPARE(scene2d.isEnabled(), creationChangeData->isNodeEnabled()); + QCOMPARE(scene2d.metaObject(), creationChangeData->metaObject()); + } + + // WHEN + scene2d.setEnabled(false); + + { + Qt3DCore::QNodeCreatedChangeGenerator creationChangeGenerator(&scene2d); + creationChanges = creationChangeGenerator.creationChanges(); + } + + // THEN + { + QCOMPARE(creationChanges.size(), 1); + + const auto creationChangeData = qSharedPointerCast<Qt3DCore::QNodeCreatedChange< + Qt3DRender::Quick::QScene2DData>>(creationChanges.first()); + const Qt3DRender::Quick::QScene2DData cloneData = creationChangeData->data; + + QCOMPARE(scene2d.output()->id(), cloneData.output); + QCOMPARE(scene2d.renderPolicy(), cloneData.renderPolicy); + QCOMPARE(scene2d.id(), creationChangeData->subjectId()); + QCOMPARE(scene2d.isEnabled(), false); + QCOMPARE(scene2d.isEnabled(), creationChangeData->isNodeEnabled()); + QCOMPARE(scene2d.metaObject(), creationChangeData->metaObject()); + } + } + + void checkOutputUpdate() + { + // GIVEN + TestArbiter arbiter; + Qt3DRender::Quick::QScene2D scene2d; + arbiter.setArbiterOnNode(&scene2d); + QScopedPointer<Qt3DRender::QRenderTargetOutput> output(new Qt3DRender::QRenderTargetOutput()); + + { + // WHEN + scene2d.setOutput(output.data()); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 1); + auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + QCOMPARE(change->propertyName(), "output"); + QCOMPARE(change->value().value<Qt3DCore::QNodeId>(), scene2d.output()->id()); + QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + + arbiter.events.clear(); + } + + { + // WHEN + scene2d.setOutput(output.data()); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 0); + } + + } + + void checkSourceUpdate() + { + // GIVEN + TestArbiter arbiter; + Qt3DRender::Quick::QScene2D scene2d; + arbiter.setArbiterOnNode(&scene2d); + + { + // WHEN + scene2d.setSource(QUrl(QStringLiteral("qrc://source.qml"))); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 1); + auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + QCOMPARE(change->propertyName(), "source"); + QCOMPARE(change->value().value<QUrl>(), scene2d.source()); + QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + + arbiter.events.clear(); + } + + { + // WHEN + scene2d.setSource(QUrl(QStringLiteral("qrc://source.qml"))); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 0); + } + + } + + void checkRenderPolicyUpdate() + { + // GIVEN + TestArbiter arbiter; + Qt3DRender::Quick::QScene2D scene2d; + arbiter.setArbiterOnNode(&scene2d); + + { + // WHEN + scene2d.setRenderPolicy(QScene2D::SingleShot); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 1); + auto change = arbiter.events.first().staticCast<Qt3DCore::QPropertyUpdatedChange>(); + QCOMPARE(change->propertyName(), "renderPolicy"); + QCOMPARE(change->value().value<Qt3DRender::Quick::QScene2D::RenderPolicy>(), + scene2d.renderPolicy()); + QCOMPARE(change->type(), Qt3DCore::PropertyUpdated); + + arbiter.events.clear(); + } + + { + // WHEN + scene2d.setRenderPolicy(QScene2D::SingleShot); + QCoreApplication::processEvents(); + + // THEN + QCOMPARE(arbiter.events.size(), 0); + } + + } + +}; + +QTEST_MAIN(tst_QScene2D) + +#include "tst_qscene2d.moc" diff --git a/tests/auto/render/render.pro b/tests/auto/render/render.pro index 34c07f7dc..c89299095 100644 --- a/tests/auto/render/render.pro +++ b/tests/auto/render/render.pro @@ -98,7 +98,8 @@ qtConfig(private_tests) { trianglevisitor \ qmemorybarrier \ qeventforward \ - eventforward + eventforward \ + qscene2d !macos: SUBDIRS += graphicshelpergl4 } |