| /**************************************************************************** |
| ** |
| ** 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 bars3d: null |
| |
| function constructBars() { |
| bars3d = Qt.createQmlObject(" |
| import QtQuick 2.2 |
| import QtDataVisualization 1.2 |
| Bars3D { |
| anchors.fill: parent |
| }", top) |
| bars3d.anchors.fill = top |
| } |
| |
| TestCase { |
| name: "Bars3D Series" |
| when: windowShown |
| |
| Bar3DSeries { id: series1 } |
| Bar3DSeries { id: series2 } |
| |
| function test_1_add_series() { |
| constructBars() |
| |
| bars3d.seriesList = [series1, series2] |
| compare(bars3d.seriesList.length, 2) |
| console.log("top:", top) |
| waitForRendering(top) |
| } |
| |
| function test_2_remove_series() { |
| bars3d.seriesList = [series1] |
| compare(bars3d.seriesList.length, 1) |
| waitForRendering(top) |
| } |
| |
| function test_3_remove_series() { |
| bars3d.seriesList = [] |
| compare(bars3d.seriesList.length, 0) |
| waitForRendering(top) |
| } |
| |
| function test_4_primary_series() { |
| bars3d.seriesList = [series1, series2] |
| compare(bars3d.primarySeries, series1) |
| bars3d.primarySeries = series2 |
| compare(bars3d.primarySeries, series2) |
| waitForRendering(top) |
| } |
| |
| function test_5_selected_series() { |
| bars3d.seriesList[0].selectedBar = Qt.point(0, 0) |
| compare(bars3d.selectedSeries, series1) |
| |
| waitForRendering(top) |
| bars3d.destroy() |
| waitForRendering(top) |
| } |
| } |
| |
| // The following tests are not required for scatter or surface, as they are handled identically |
| |
| Custom3DItem { id: item1; meshFile: ":/customitem.obj" } |
| Custom3DItem { id: item2; meshFile: ":/customitem.obj" } |
| Custom3DItem { id: item3; meshFile: ":/customitem.obj" } |
| Custom3DItem { id: item4; meshFile: ":/customitem.obj"; position: Qt.vector3d(0.0, 1.0, 0.0) } |
| |
| function constructBarsWithCustomItemList() { |
| bars3d = Qt.createQmlObject(" |
| import QtQuick 2.2 |
| import QtDataVisualization 1.2 |
| Bars3D { |
| anchors.fill: parent |
| customItemList: [item1, item2] |
| }", top) |
| bars3d.anchors.fill = top |
| } |
| |
| TestCase { |
| name: "Bars3D Theme" |
| when: windowShown |
| |
| Theme3D { id: newTheme } |
| |
| function test_1_add_theme() { |
| constructBars() |
| |
| bars3d.theme = newTheme |
| compare(bars3d.theme, newTheme) |
| waitForRendering(top) |
| } |
| |
| function test_2_change_theme() { |
| newTheme.type = Theme3D.ThemePrimaryColors |
| compare(bars3d.theme.type, Theme3D.ThemePrimaryColors) |
| |
| waitForRendering(top) |
| bars3d.destroy() |
| waitForRendering(top) |
| } |
| } |
| |
| TestCase { |
| name: "Bars3D Input" |
| when: windowShown |
| |
| function test_1_remove_input() { |
| constructBars() |
| bars3d.inputHandler = null |
| compare(bars3d.inputHandler, null) |
| |
| waitForRendering(top) |
| bars3d.destroy() |
| waitForRendering(top) |
| } |
| } |
| |
| TestCase { |
| name: "Bars3D Custom" |
| when: windowShown |
| |
| function test_1_custom_items() { |
| constructBarsWithCustomItemList() |
| compare(bars3d.customItemList.length, 2) |
| waitForRendering(top) |
| } |
| |
| function test_2_add_custom_items() { |
| bars3d.addCustomItem(item3) |
| compare(bars3d.customItemList.length, 3) |
| bars3d.addCustomItem(item4) |
| compare(bars3d.customItemList.length, 4) |
| waitForRendering(top) |
| } |
| |
| function test_3_change_custom_items() { |
| item1.position = Qt.vector3d(1.0, 1.0, 1.0) |
| compare(bars3d.customItemList[0].position, Qt.vector3d(1.0, 1.0, 1.0)) |
| waitForRendering(top) |
| } |
| |
| function test_4_remove_custom_items() { |
| bars3d.removeCustomItemAt(Qt.vector3d(0.0, 1.0, 0.0)) |
| compare(bars3d.customItemList.length, 3) |
| bars3d.releaseCustomItem(item1) |
| compare(bars3d.customItemList[0], item2) |
| bars3d.releaseCustomItem(item2) |
| compare(bars3d.customItemList.length, 1) |
| bars3d.removeCustomItems() |
| compare(bars3d.customItemList.length, 0) |
| |
| waitForRendering(top) |
| bars3d.destroy() |
| waitForRendering(top) |
| } |
| } |
| } |