summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/cpptest/cpptest.pro5
-rw-r--r--tests/auto/cpptest/q3dscene-camera/q3dscene-camera.pro8
-rw-r--r--tests/auto/cpptest/q3dscene-camera/tst_camera.cpp179
-rw-r--r--tests/auto/cpptest/q3dscene-light/q3dscene-light.pro8
-rw-r--r--tests/auto/cpptest/q3dscene-light/tst_light.cpp92
-rw-r--r--tests/auto/cpptest/q3dscene/q3dscene.pro8
-rw-r--r--tests/auto/cpptest/q3dscene/tst_scene.cpp170
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"