Added base and soundeffect test
authorKurt Korbatits <kurt.korbatits@nokia.com>
Tue, 17 Jul 2012 03:32:54 +0000 (13:32 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 19 Jul 2012 05:44:06 +0000 (07:44 +0200)
Change-Id: I50527c75e5e25d897ddf192bfdc34de62dd56127
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Reviewed-by: Daniel Kovacic <daniel.kovacic@nokia.com>
tests/auto/integration/qml/qml.pro [new file with mode: 0644]
tests/auto/integration/qml/soundeffect/tst_soundeffect.qml [new file with mode: 0644]
tests/auto/integration/qml/tst_qml.cpp [new file with mode: 0644]

diff --git a/tests/auto/integration/qml/qml.pro b/tests/auto/integration/qml/qml.pro
new file mode 100644 (file)
index 0000000..b288b05
--- /dev/null
@@ -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 (file)
index 0000000..c46b4a4
--- /dev/null
@@ -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 (file)
index 0000000..67c9cf1
--- /dev/null
@@ -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 <QtQuickTest/quicktest.h>
+QUICK_TEST_MAIN(qml)