blob: 75cf10a237de07dc10812346618da30e1331ea91 [file] [log] [blame]
/****************************************************************************
**
** 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)
}
}
}