diff options
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/cpptest/cpptest.pro | 5 | ||||
-rw-r--r-- | tests/auto/cpptest/q3dscene-camera/q3dscene-camera.pro | 8 | ||||
-rw-r--r-- | tests/auto/cpptest/q3dscene-camera/tst_camera.cpp | 179 | ||||
-rw-r--r-- | tests/auto/cpptest/q3dscene-light/q3dscene-light.pro | 8 | ||||
-rw-r--r-- | tests/auto/cpptest/q3dscene-light/tst_light.cpp | 92 | ||||
-rw-r--r-- | tests/auto/cpptest/q3dscene/q3dscene.pro | 8 | ||||
-rw-r--r-- | tests/auto/cpptest/q3dscene/tst_scene.cpp | 170 |
7 files changed, 469 insertions, 1 deletions
diff --git a/tests/auto/cpptest/cpptest.pro b/tests/auto/cpptest/cpptest.pro index 578f5c53..9c8d944a 100644 --- a/tests/auto/cpptest/cpptest.pro +++ b/tests/auto/cpptest/cpptest.pro @@ -14,4 +14,7 @@ SUBDIRS = q3dbars \ q3dsurface-series \ q3daxis-category \ q3daxis-logvalue \ - q3daxis-value + q3daxis-value \ + q3dscene \ + q3dscene-camera \ + q3dscene-light diff --git a/tests/auto/cpptest/q3dscene-camera/q3dscene-camera.pro b/tests/auto/cpptest/q3dscene-camera/q3dscene-camera.pro new file mode 100644 index 00000000..c575a55e --- /dev/null +++ b/tests/auto/cpptest/q3dscene-camera/q3dscene-camera.pro @@ -0,0 +1,8 @@ +QT += testlib datavisualization + +TARGET = tst_cpptest +CONFIG += console testcase + +TEMPLATE = app + +SOURCES += tst_camera.cpp diff --git a/tests/auto/cpptest/q3dscene-camera/tst_camera.cpp b/tests/auto/cpptest/q3dscene-camera/tst_camera.cpp new file mode 100644 index 00000000..ee321b22 --- /dev/null +++ b/tests/auto/cpptest/q3dscene-camera/tst_camera.cpp @@ -0,0 +1,179 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <QtDataVisualization/Q3DCamera> + +using namespace QtDataVisualization; + +class tst_camera: public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + + void construct(); + + void initialProperties(); + void initializeProperties(); + void invalidProperties(); + + void changePresets(); + +private: + Q3DCamera *m_camera; +}; + +void tst_camera::initTestCase() +{ +} + +void tst_camera::cleanupTestCase() +{ +} + +void tst_camera::init() +{ + m_camera = new Q3DCamera(); +} + +void tst_camera::cleanup() +{ + delete m_camera; +} + +void tst_camera::construct() +{ + Q3DCamera *camera = new Q3DCamera(); + QVERIFY(camera); + delete camera; +} + +void tst_camera::initialProperties() +{ + QVERIFY(m_camera); + + QCOMPARE(m_camera->cameraPreset(), Q3DCamera::CameraPresetNone); + QCOMPARE(m_camera->maxZoomLevel(), 500.0f); + QCOMPARE(m_camera->minZoomLevel(), 10.0f); + QCOMPARE(m_camera->target(), QVector3D(0.0, 0.0, 0.0)); + QCOMPARE(m_camera->wrapXRotation(), true); + QCOMPARE(m_camera->wrapYRotation(), false); + QCOMPARE(m_camera->xRotation(), 0.0f); + QCOMPARE(m_camera->yRotation(), 0.0f); + QCOMPARE(m_camera->zoomLevel(), 100.0f); + + // Common (from Q3DObject) + QVERIFY(!m_camera->parentScene()); + QCOMPARE(m_camera->position(), QVector3D(0, 0, 0)); +} + +void tst_camera::initializeProperties() +{ + QVERIFY(m_camera); + + m_camera->setMaxZoomLevel(1000.0f); + m_camera->setMinZoomLevel(100.0f); + m_camera->setTarget(QVector3D(1.0, -1.0, 1.0)); + m_camera->setWrapXRotation(false); + m_camera->setWrapYRotation(true); + m_camera->setXRotation(30.0f); + m_camera->setYRotation(30.0f); + m_camera->setZoomLevel(500.0f); + + QCOMPARE(m_camera->maxZoomLevel(), 1000.0f); + QCOMPARE(m_camera->minZoomLevel(), 100.0f); + QCOMPARE(m_camera->target(), QVector3D(1.0, -1.0, 1.0)); + QCOMPARE(m_camera->wrapXRotation(), false); + QCOMPARE(m_camera->wrapYRotation(), true); + QCOMPARE(m_camera->xRotation(), 30.0f); + QCOMPARE(m_camera->yRotation(), 30.0f); + QCOMPARE(m_camera->zoomLevel(), 500.0f); + + m_camera->setPosition(QVector3D(1.0, 1.0, 1.0)); + + // Common (from Q3DObject) + QCOMPARE(m_camera->position(), QVector3D(1.0, 1.0, 1.0)); +} + +void tst_camera::invalidProperties() +{ + m_camera->setTarget(QVector3D(-1.5, -1.5, -1.5)); + QCOMPARE(m_camera->target(), QVector3D(-1.0, -1.0, -1.0)); + + m_camera->setTarget(QVector3D(1.5, 1.5, 1.5)); + QCOMPARE(m_camera->target(), QVector3D(1.0, 1.0, 1.0)); + + m_camera->setMinZoomLevel(0.1f); + QCOMPARE(m_camera->minZoomLevel(), 1.0f); +} + +void tst_camera::changePresets() +{ + m_camera->setCameraPreset(Q3DCamera::CameraPresetBehind); // Will be overridden by the the following sets + m_camera->setMaxZoomLevel(1000.0f); + m_camera->setMinZoomLevel(100.0f); + m_camera->setTarget(QVector3D(1.0, -1.0, 1.0)); + m_camera->setWrapXRotation(false); + m_camera->setWrapYRotation(true); + m_camera->setXRotation(30.0f); + m_camera->setYRotation(30.0f); + m_camera->setZoomLevel(500.0f); + + QCOMPARE(m_camera->cameraPreset(), Q3DCamera::CameraPresetNone); + QCOMPARE(m_camera->maxZoomLevel(), 1000.0f); + QCOMPARE(m_camera->minZoomLevel(), 100.0f); + QCOMPARE(m_camera->target(), QVector3D(1.0, -1.0, 1.0)); + QCOMPARE(m_camera->wrapXRotation(), false); + QCOMPARE(m_camera->wrapYRotation(), true); + QCOMPARE(m_camera->xRotation(), 30.0f); + QCOMPARE(m_camera->yRotation(), 30.0f); + QCOMPARE(m_camera->zoomLevel(), 500.0f); + + m_camera->setCameraPreset(Q3DCamera::CameraPresetBehind); // Sets target and rotations + + QCOMPARE(m_camera->cameraPreset(), Q3DCamera::CameraPresetBehind); + QCOMPARE(m_camera->maxZoomLevel(), 1000.0f); + QCOMPARE(m_camera->minZoomLevel(), 100.0f); + QCOMPARE(m_camera->target(), QVector3D(0.0, 0.0, 0.0)); + QCOMPARE(m_camera->wrapXRotation(), false); + QCOMPARE(m_camera->wrapYRotation(), true); + QCOMPARE(m_camera->xRotation(), 180.0f); + QCOMPARE(m_camera->yRotation(), 22.5f); + QCOMPARE(m_camera->zoomLevel(), 500.0f); + + m_camera->setCameraPosition(10.0f, 15.0f, 125.0f); // Overrides preset + + QCOMPARE(m_camera->cameraPreset(), Q3DCamera::CameraPresetNone); + QCOMPARE(m_camera->maxZoomLevel(), 1000.0f); + QCOMPARE(m_camera->minZoomLevel(), 100.0f); + QCOMPARE(m_camera->target(), QVector3D(0.0, 0.0, 0.0)); + QCOMPARE(m_camera->wrapXRotation(), false); + QCOMPARE(m_camera->wrapYRotation(), true); + QCOMPARE(m_camera->xRotation(), 10.0f); + QCOMPARE(m_camera->yRotation(), 15.0f); + QCOMPARE(m_camera->zoomLevel(), 125.0f); +} + +QTEST_MAIN(tst_camera) +#include "tst_camera.moc" diff --git a/tests/auto/cpptest/q3dscene-light/q3dscene-light.pro b/tests/auto/cpptest/q3dscene-light/q3dscene-light.pro new file mode 100644 index 00000000..21a3c934 --- /dev/null +++ b/tests/auto/cpptest/q3dscene-light/q3dscene-light.pro @@ -0,0 +1,8 @@ +QT += testlib datavisualization + +TARGET = tst_cpptest +CONFIG += console testcase + +TEMPLATE = app + +SOURCES += tst_light.cpp diff --git a/tests/auto/cpptest/q3dscene-light/tst_light.cpp b/tests/auto/cpptest/q3dscene-light/tst_light.cpp new file mode 100644 index 00000000..4568b01e --- /dev/null +++ b/tests/auto/cpptest/q3dscene-light/tst_light.cpp @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <QtDataVisualization/Q3DLight> + +using namespace QtDataVisualization; + +class tst_light: public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + + void construct(); + + void initialProperties(); + void initializeProperties(); + +private: + Q3DLight *m_light; +}; + +void tst_light::initTestCase() +{ +} + +void tst_light::cleanupTestCase() +{ +} + +void tst_light::init() +{ + m_light = new Q3DLight(); +} + +void tst_light::cleanup() +{ + delete m_light; +} + +void tst_light::construct() +{ + Q3DLight *light = new Q3DLight(); + QVERIFY(light); + delete light; +} + +void tst_light::initialProperties() +{ + QVERIFY(m_light); + + // TODO: Has no adjustable properties yet. + // Keeping this as a placeholder for future implementations (QTRD-2406) + + // Common (from Q3DObject) + QVERIFY(!m_light->parentScene()); + QCOMPARE(m_light->position(), QVector3D(0, 0, 0)); +} + +void tst_light::initializeProperties() +{ + QVERIFY(m_light); + + m_light->setPosition(QVector3D(1.0, 1.0, 1.0)); + + // Common (from Q3DObject) + QCOMPARE(m_light->position(), QVector3D(1.0, 1.0, 1.0)); +} + +QTEST_MAIN(tst_light) +#include "tst_light.moc" diff --git a/tests/auto/cpptest/q3dscene/q3dscene.pro b/tests/auto/cpptest/q3dscene/q3dscene.pro new file mode 100644 index 00000000..b9be69c0 --- /dev/null +++ b/tests/auto/cpptest/q3dscene/q3dscene.pro @@ -0,0 +1,8 @@ +QT += testlib datavisualization + +TARGET = tst_cpptest +CONFIG += console testcase + +TEMPLATE = app + +SOURCES += tst_scene.cpp diff --git a/tests/auto/cpptest/q3dscene/tst_scene.cpp b/tests/auto/cpptest/q3dscene/tst_scene.cpp new file mode 100644 index 00000000..7d1ecad3 --- /dev/null +++ b/tests/auto/cpptest/q3dscene/tst_scene.cpp @@ -0,0 +1,170 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include <QtTest/QtTest> + +#include <QtDataVisualization/Q3DScene> +#include <QtDataVisualization/Q3DBars> + +using namespace QtDataVisualization; + +class tst_scene: public QObject +{ + Q_OBJECT + +private slots: + void initTestCase(); + void cleanupTestCase(); + void init(); + void cleanup(); + + void construct(); + + void initialProperties(); + void initializeProperties(); + void invalidProperties(); + + void subViews(); + +private: + Q3DScene *m_scene; +}; + +void tst_scene::initTestCase() +{ +} + +void tst_scene::cleanupTestCase() +{ +} + +void tst_scene::init() +{ + m_scene = new Q3DScene(); +} + +void tst_scene::cleanup() +{ + delete m_scene; +} + +void tst_scene::construct() +{ + Q3DScene *scene = new Q3DScene(); + QVERIFY(scene); + delete scene; +} + +void tst_scene::initialProperties() +{ + QVERIFY(m_scene); + + QVERIFY(m_scene->activeCamera()); + QVERIFY(m_scene->activeLight()); + QCOMPARE(m_scene->devicePixelRatio(), 1.0f); + QCOMPARE(m_scene->graphPositionQuery(), m_scene->invalidSelectionPoint()); + QCOMPARE(m_scene->primarySubViewport(), QRect(0, 0, 0, 0)); + QCOMPARE(m_scene->secondarySubViewport(), QRect(0, 0, 0, 0)); + QCOMPARE(m_scene->isSecondarySubviewOnTop(), true); + QCOMPARE(m_scene->selectionQueryPosition(), m_scene->invalidSelectionPoint()); + QCOMPARE(m_scene->isSlicingActive(), false); + QCOMPARE(m_scene->viewport(), QRect(0, 0, 0, 0)); +} + +void tst_scene::initializeProperties() +{ + QVERIFY(m_scene); + + Q3DCamera *camera1 = new Q3DCamera(); + Q3DLight *light1 = new Q3DLight(); + + m_scene->setActiveCamera(camera1); + m_scene->setActiveLight(light1); + m_scene->setDevicePixelRatio(2.0f); + m_scene->setGraphPositionQuery(QPoint(0, 0)); + m_scene->setPrimarySubViewport(QRect(0, 0, 50, 50)); + m_scene->setSecondarySubViewport(QRect(50, 50, 100, 100)); + m_scene->setSecondarySubviewOnTop(false); + m_scene->setSelectionQueryPosition(QPoint(0, 0)); + m_scene->setSlicingActive(true); + + QCOMPARE(m_scene->activeCamera(), camera1); + QCOMPARE(m_scene->activeLight(), light1); + QCOMPARE(m_scene->devicePixelRatio(), 2.0f); + QCOMPARE(m_scene->graphPositionQuery(), QPoint(0, 0)); // TODO: When doing signal checks, add tests to check that queries return something (asynchronously) + // TODO: subviewports are not set (QTRD-2435) + //QCOMPARE(m_scene->primarySubViewport(), QRect(0, 0, 50, 50)); + //QCOMPARE(m_scene->secondarySubViewport(), QRect(50, 50, 100, 100)); + QCOMPARE(m_scene->isSecondarySubviewOnTop(), false); + QCOMPARE(m_scene->selectionQueryPosition(), QPoint(0, 0)); // TODO: When doing signal checks, add tests to check that queries return something (asynchronously) + QCOMPARE(m_scene->isSlicingActive(), true); + // TODO: viewport is not set by subviewports (QTRD-2435) + //QCOMPARE(m_scene->viewport(), QRect(0, 0, 100, 100)); +} + +void tst_scene::invalidProperties() +{ + m_scene->setPrimarySubViewport(QRect(0, 0, -50, -50)); + m_scene->setSecondarySubViewport(QRect(-50, -50, -100, -100)); + QCOMPARE(m_scene->primarySubViewport(), QRect(0, 0, 0, 0)); + QCOMPARE(m_scene->secondarySubViewport(), QRect(0, 0, 0, 0)); +} + +void tst_scene::subViews() +{ + Q3DBars *graph = new Q3DBars(); + graph->setPosition(QPoint(0, 0)); + graph->setWidth(200); + graph->setHeight(200); + + Q3DScene *scene = graph->scene(); + + QCoreApplication::processEvents(); + + QCOMPARE(scene->viewport(), QRect(0, 0, 200, 200)); + QCOMPARE(scene->primarySubViewport(), QRect(0, 0, 200, 200)); + QCOMPARE(scene->secondarySubViewport(), QRect(0, 0, 0, 0)); + + QCOMPARE(scene->isSecondarySubviewOnTop(), true); + QCOMPARE(scene->isPointInPrimarySubView(QPoint(100, 100)), true); + QCOMPARE(scene->isPointInPrimarySubView(QPoint(201, 201)), false); + QCOMPARE(scene->isPointInSecondarySubView(QPoint(100, 100)), false); + + scene->setSlicingActive(true); + + QCOMPARE(scene->isSecondarySubviewOnTop(), false); + QCOMPARE(scene->primarySubViewport(), QRect(0, 0, 40, 40)); + QCOMPARE(scene->secondarySubViewport(), QRect(0, 0, 200, 200)); + QCOMPARE(scene->isPointInPrimarySubView(QPoint(100, 100)), false); + QCOMPARE(scene->isPointInPrimarySubView(QPoint(30, 30)), true); + QCOMPARE(scene->isPointInSecondarySubView(QPoint(100, 100)), true); + QCOMPARE(scene->isPointInSecondarySubView(QPoint(30, 30)), false); + + scene->setSecondarySubviewOnTop(true); + + QCOMPARE(scene->isSecondarySubviewOnTop(), true); + QCOMPARE(scene->primarySubViewport(), QRect(0, 0, 40, 40)); + QCOMPARE(scene->secondarySubViewport(), QRect(0, 0, 200, 200)); + QCOMPARE(scene->isPointInPrimarySubView(QPoint(100, 100)), false); + QCOMPARE(scene->isPointInPrimarySubView(QPoint(30, 30)), false); + QCOMPARE(scene->isPointInSecondarySubView(QPoint(100, 100)), true); + QCOMPARE(scene->isPointInSecondarySubView(QPoint(30, 30)), true); +} + +QTEST_MAIN(tst_scene) +#include "tst_scene.moc" |