From d7ed7ef6b38f303cc5e3a84d3864c3d61affc322 Mon Sep 17 00:00:00 2001 From: Kurt Korbatits Date: Tue, 17 Jul 2012 13:32:54 +1000 Subject: [PATCH] Added base and soundeffect test Change-Id: I50527c75e5e25d897ddf192bfdc34de62dd56127 Reviewed-by: Michael Goddard Reviewed-by: Daniel Kovacic --- tests/auto/integration/qml/qml.pro | 10 + .../qml/soundeffect/tst_soundeffect.qml | 208 +++++++++++++++++++++ tests/auto/integration/qml/tst_qml.cpp | 43 +++++ 3 files changed, 261 insertions(+) create mode 100644 tests/auto/integration/qml/qml.pro create mode 100644 tests/auto/integration/qml/soundeffect/tst_soundeffect.qml create mode 100644 tests/auto/integration/qml/tst_qml.cpp diff --git a/tests/auto/integration/qml/qml.pro b/tests/auto/integration/qml/qml.pro new file mode 100644 index 0000000..b288b05 --- /dev/null +++ b/tests/auto/integration/qml/qml.pro @@ -0,0 +1,10 @@ +TEMPLATE=app +TARGET=tst_qml +CONFIG += warn_on qmltestcase +SOURCES += tst_qml.cpp + + +importFiles.files = soundeffect + +importFiles.path = . +DEPLOYMENT += importFiles diff --git a/tests/auto/integration/qml/soundeffect/tst_soundeffect.qml b/tests/auto/integration/qml/soundeffect/tst_soundeffect.qml new file mode 100644 index 0000000..c46b4a4 --- /dev/null +++ b/tests/auto/integration/qml/soundeffect/tst_soundeffect.qml @@ -0,0 +1,208 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtMultimedia 5.0 +import QtTest 1.0 + +/* + Component { + name: "QSoundEffect" + prototype: "QObject" + exports: ["SoundEffect 5.0"] + Enum { + name: "Loop" + values: { + "Infinite": -2 + } + } + Enum { + name: "Status" + values: { + "Null": 0, + "Loading": 1, + "Ready": 2, + "Error": 3 + } + } + Property { name: "source"; type: "QUrl" } + Property { name: "loops"; type: "int" } + Property { name: "loopsRemaining"; type: "int"; isReadonly: true } + Property { name: "volume"; type: "double" } + Property { name: "muted"; type: "bool" } + Property { name: "playing"; type: "bool"; isReadonly: true } + Property { name: "status"; type: "Status"; isReadonly: true } + Property { name: "category"; type: "string" } + Signal { name: "sourceChanged"; type: "void" } + Signal { name: "loopCountChanged"; type: "void" } + Signal { name: "loopsRemainingChanged"; type: "void" } + Signal { name: "volumeChanged"; type: "void" } + Signal { name: "mutedChanged"; type: "void" } + Signal { name: "loadedChanged"; type: "void" } + Signal { name: "playingChanged"; type: "void" } + Signal { name: "statusChanged"; type: "void" } + Signal { name: "categoryChanged"; type: "void" } + Method { name: "play"; type: "void" } + Method { name: "stop"; type: "void" } + } +*/ + +Item { + id: top + + property string srcWav: "../../../integration/qsoundeffect/test.wav" + + SoundEffect { + id: sound1 + source: srcWav + } + + SignalSpy { + id: spySource + target: sound1 + signalName: "sourceChanged" + } + + SignalSpy { + id: spyLoop + target: sound1 + signalName: "loopCountChanged" + } + + SignalSpy { + id: spyRemaining + target: sound1 + signalName: "loopsRemainingChanged" + } + + SignalSpy { + id: spyVolume + target: sound1 + signalName: "volumeChanged" + } + + SignalSpy { + id: spyMuted + target: sound1 + signalName: "mutedChanged" + } + + SignalSpy { + id: spyLoaded + target: sound1 + signalName: "loadedChanged" + } + + TestCase { + name: "SoundEffects" + + function initTestCase() { + // Check initial properties + verify(sound1.loops == 1) + verify(sound1.volume == 1.0) + verify(sound1.loopsRemaining == 0) + verify(sound1.muted == false) + verify(sound1.playing == false) + verify(sound1.status == 1) // Status.Loading + verify(sound1.category == "") + } + + function test_muting() { + compare(spyMuted.count, 0) + sound1.muted = true + compare(sound1.muted, true) + compare(spyMuted.count, 1) + + sound1.muted = false + compare(sound1.muted, false) + compare(spyMuted.count, 2) + } + + function test_looping() { + spyLoop.clear + sound1.loops = 2 + compare(sound1.loops, 2) + compare(spyLoop.count, 1) + sound1.loops = 1 + compare(sound1.loops, 1) + } + + function test_source() { + spyLoaded.clear + spySource.clear + sound1.source = "../../../integration/qsoundeffect/test.wav" + compare(spySource.count, 1) + tryCompare(spyLoaded, "count", 1, 3000) + tryCompare(spySource, "count", 1, 3000) + } + + function test_playSound() { + spyRemaining.clear + sound1.source = srcWav + sound1.loops = 0 + sound1.play() + tryCompare(sound1, "playing", false) + compare(sound1.loopsRemaining, 0) + } + + function test_loopsRemaining() + { + spyRemaining.clear + sound1.loops = 3 + compare(sound1.loops, 3) + sound1.play() + tryCompare(sound1, "playing", false) + compare(spyRemaining.count, 4) + compare(sound1.loopsRemaining, 0) + } + + function test_volume() + { + spyVolume.clear + sound1.volume = 0.5 + compare(sound1.volume, 0.5) + sound1.volume = 0 + compare(sound1.volume, 0) + sound1.volume = 1 + compare(spyVolume.count, 3) + } + } +} diff --git a/tests/auto/integration/qml/tst_qml.cpp b/tests/auto/integration/qml/tst_qml.cpp new file mode 100644 index 0000000..67c9cf1 --- /dev/null +++ b/tests/auto/integration/qml/tst_qml.cpp @@ -0,0 +1,43 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +QUICK_TEST_MAIN(qml) -- 2.7.4