/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Data Visualization module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL$ ** 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 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** 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$ ** ****************************************************************************/ import QtQuick 2.0 import QtDataVisualization 1.2 import QtTest 1.0 Item { id: top height: 150 width: 150 property var empty: null property var basic: null property var common: null property var common_init: null function constructEmpty() { empty = Qt.createQmlObject(" import QtQuick 2.2 import QtDataVisualization 1.2 Surface3D { }", top) } function constructBasic() { basic = Qt.createQmlObject(" import QtQuick 2.2 import QtDataVisualization 1.2 Surface3D { anchors.fill: parent flipHorizontalGrid: true }", top) basic.anchors.fill = top } function constructCommon() { common = Qt.createQmlObject(" import QtQuick 2.2 import QtDataVisualization 1.2 Surface3D { anchors.fill: parent }", top) common.anchors.fill = top } function constructCommonInit() { common_init = Qt.createQmlObject(" import QtQuick 2.2 import QtDataVisualization 1.2 Surface3D { anchors.fill: parent selectionMode: AbstractGraph3D.SelectionNone shadowQuality: AbstractGraph3D.ShadowQualityLow msaaSamples: 2 theme: Theme3D { } renderingMode: AbstractGraph3D.RenderIndirect measureFps: true orthoProjection: false aspectRatio: 3.0 optimizationHints: AbstractGraph3D.OptimizationStatic polar: false radialLabelOffset: 2 horizontalAspectRatio: 0.2 reflection: true reflectivity: 0.1 locale: Qt.locale(\"UK\") margin: 0.2 }", top) common_init.anchors.fill = top } TestCase { name: "Surface3D Empty" when: windowShown function test_empty() { constructEmpty() compare(empty.width, 0, "width") compare(empty.height, 0, "height") compare(empty.seriesList.length, 0, "seriesList") compare(empty.selectedSeries, null, "selectedSeries") compare(empty.flipHorizontalGrid, false, "flipHorizontalGrid") compare(empty.axisX.orientation, AbstractAxis3D.AxisOrientationX) compare(empty.axisZ.orientation, AbstractAxis3D.AxisOrientationZ) compare(empty.axisY.orientation, AbstractAxis3D.AxisOrientationY) compare(empty.axisX.type, AbstractAxis3D.AxisTypeValue) compare(empty.axisZ.type, AbstractAxis3D.AxisTypeValue) compare(empty.axisY.type, AbstractAxis3D.AxisTypeValue) waitForRendering(top) empty.destroy() waitForRendering(top) } } TestCase { name: "Surface3D Basic" when: windowShown function test_1_basic() { constructBasic() compare(basic.width, 150, "width") compare(basic.height, 150, "height") compare(basic.flipHorizontalGrid, true, "flipHorizontalGrid") } function test_2_change_basic() { basic.flipHorizontalGrid = false compare(basic.flipHorizontalGrid, false, "flipHorizontalGrid") waitForRendering(top) basic.destroy() waitForRendering(top) } } TestCase { name: "Surface3D Common" when: windowShown function test_1_common() { constructCommon() compare(common.selectionMode, AbstractGraph3D.SelectionItem, "selectionMode") compare(common.shadowQuality, AbstractGraph3D.ShadowQualityMedium, "shadowQuality") if (common.shadowsSupported === true) compare(common.msaaSamples, 4, "msaaSamples") else compare(common.msaaSamples, 0, "msaaSamples") compare(common.theme.type, Theme3D.ThemeQt, "theme") compare(common.renderingMode, AbstractGraph3D.RenderIndirect, "renderingMode") compare(common.measureFps, false, "measureFps") compare(common.customItemList.length, 0, "customItemList") compare(common.orthoProjection, false, "orthoProjection") compare(common.selectedElement, AbstractGraph3D.ElementNone, "selectedElement") compare(common.aspectRatio, 2.0, "aspectRatio") compare(common.optimizationHints, AbstractGraph3D.OptimizationDefault, "optimizationHints") compare(common.polar, false, "polar") compare(common.radialLabelOffset, 1, "radialLabelOffset") compare(common.horizontalAspectRatio, 0, "horizontalAspectRatio") compare(common.reflection, false, "reflection") compare(common.reflectivity, 0.5, "reflectivity") compare(common.locale, Qt.locale("C"), "locale") compare(common.queriedGraphPosition, Qt.vector3d(0, 0, 0), "queriedGraphPosition") compare(common.margin, -1, "margin") waitForRendering(top) } function test_2_change_common() { common.selectionMode = AbstractGraph3D.SelectionItem | AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionSlice common.shadowQuality = AbstractGraph3D.ShadowQualitySoftHigh compare(common.shadowQuality, AbstractGraph3D.ShadowQualitySoftHigh, "shadowQuality") common.msaaSamples = 8 if (common.shadowsSupported === true) compare(common.msaaSamples, 8, "msaaSamples") else compare(common.msaaSamples, 0, "msaaSamples") common.theme.type = Theme3D.ThemeRetro common.renderingMode = AbstractGraph3D.RenderDirectToBackground_NoClear common.measureFps = true common.orthoProjection = true common.aspectRatio = 1.0 common.optimizationHints = AbstractGraph3D.OptimizationStatic common.polar = true common.radialLabelOffset = 2 common.horizontalAspectRatio = 1 common.reflection = true common.reflectivity = 1.0 common.locale = Qt.locale("FI") common.margin = 1.0 compare(common.selectionMode, AbstractGraph3D.SelectionItem | AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionSlice, "selectionMode") compare(common.shadowQuality, AbstractGraph3D.ShadowQualityNone, "shadowQuality") // Ortho disables shadows compare(common.msaaSamples, 0, "msaaSamples") // Rendering mode changes this to zero compare(common.theme.type, Theme3D.ThemeRetro, "theme") compare(common.renderingMode, AbstractGraph3D.RenderDirectToBackground_NoClear, "renderingMode") compare(common.measureFps, true, "measureFps") compare(common.orthoProjection, true, "orthoProjection") compare(common.aspectRatio, 1.0, "aspectRatio") compare(common.optimizationHints, AbstractGraph3D.OptimizationStatic, "optimizationHints") compare(common.polar, true, "polar") compare(common.radialLabelOffset, 2, "radialLabelOffset") compare(common.horizontalAspectRatio, 1, "horizontalAspectRatio") compare(common.reflection, true, "reflection") compare(common.reflectivity, 1.0, "reflectivity") compare(common.locale, Qt.locale("FI"), "locale") compare(common.margin, 1.0, "margin") waitForRendering(top) } function test_3_change_invalid_common() { common.selectionMode = AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionColumn | AbstractGraph3D.SelectionSlice common.theme.type = -2 common.renderingMode = -1 common.measureFps = false common.orthoProjection = false common.aspectRatio = -1.0 common.polar = false common.horizontalAspectRatio = -2 common.reflection = false common.reflectivity = -1.0 compare(common.selectionMode, AbstractGraph3D.SelectionItem | AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionSlice, "selectionMode") compare(common.theme.type, -2/*Theme3D.ThemeRetro*/, "theme") // TODO: Fix once QTRD-3367 is done compare(common.renderingMode, -1/*AbstractGraph3D.RenderDirectToBackground_NoClear*/, "renderingMode") // TODO: Fix once QTRD-3367 is done compare(common.aspectRatio, -1.0/*1.0*/, "aspectRatio") // TODO: Fix once QTRD-3367 is done compare(common.horizontalAspectRatio, -2/*1*/, "horizontalAspectRatio") // TODO: Fix once QTRD-3367 is done compare(common.reflectivity, -1.0/*1.0*/, "reflectivity") // TODO: Fix once QTRD-3367 is done waitForRendering(top) common.destroy() waitForRendering(top) } function test_4_common_initialized() { constructCommonInit() compare(common_init.selectionMode, AbstractGraph3D.SelectionNone, "selectionMode") if (common_init.shadowsSupported === true) { tryCompare(common_init, "shadowQuality", AbstractGraph3D.ShadowQualityLow) compare(common_init.msaaSamples, 2, "msaaSamples") } else { tryCompare(common_init, "shadowQuality", AbstractGraph3D.ShadowQualityNone) compare(common_init.msaaSamples, 0, "msaaSamples") } compare(common_init.theme.type, Theme3D.ThemeUserDefined, "theme") compare(common_init.renderingMode, AbstractGraph3D.RenderIndirect, "renderingMode") compare(common_init.measureFps, true, "measureFps") compare(common_init.customItemList.length, 0, "customItemList") compare(common_init.orthoProjection, false, "orthoProjection") compare(common_init.aspectRatio, 3.0, "aspectRatio") compare(common_init.optimizationHints, AbstractGraph3D.OptimizationStatic, "optimizationHints") compare(common_init.polar, false, "polar") compare(common_init.radialLabelOffset, 2, "radialLabelOffset") compare(common_init.horizontalAspectRatio, 0.2, "horizontalAspectRatio") compare(common_init.reflection, true, "reflection") compare(common_init.reflectivity, 0.1, "reflectivity") compare(common_init.locale, Qt.locale("UK"), "locale") compare(common_init.margin, 0.2, "margin") waitForRendering(top) common_init.destroy(); waitForRendering(top) } } }