summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorAngus Cummings <angus.cummings@nokia.com>2012-04-12 14:44:28 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-14 06:57:33 +0200
commite24f4fed534dfee0dc3f31be0a70f9348c73be19 (patch)
treefa9d298af7742ae0d1324e5bdaccc4cdf541bac4 /tests/auto
parent02efdccae982452a101ea0c703d308ab8189e9fb (diff)
expanding unit test for QAudioDecoder
Looking for feedback concerning: implementation of the change desired functionality of QAudioDecoder Changed the behaviour of QAudioDecoder for more sane error output Change-Id: I82193a94b6fe1ef4202a4ac7bd95c607e0bee9c6 Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/unit/qaudiodecoder/tst_qaudiodecoder.cpp83
-rw-r--r--tests/auto/unit/qmultimedia_common/mockaudiodecoderservice.h12
2 files changed, 95 insertions, 0 deletions
diff --git a/tests/auto/unit/qaudiodecoder/tst_qaudiodecoder.cpp b/tests/auto/unit/qaudiodecoder/tst_qaudiodecoder.cpp
index 43c51e35c..e124710c4 100644
--- a/tests/auto/unit/qaudiodecoder/tst_qaudiodecoder.cpp
+++ b/tests/auto/unit/qaudiodecoder/tst_qaudiodecoder.cpp
@@ -62,6 +62,8 @@ private Q_SLOTS:
void format();
void source();
void readAll();
+ void nullControl();
+ void nullService();
private:
MockAudioDecoderService *mockAudioDecoderService;
@@ -338,6 +340,87 @@ void tst_QAudioDecoder::readAll()
}
}
+void tst_QAudioDecoder::nullControl()
+{
+ mockAudioDecoderService->setControlNull();
+ QAudioDecoder d;
+
+ QVERIFY(d.error() == QAudioDecoder::ServiceMissingError);
+ QVERIFY(!d.errorString().isEmpty());
+
+ QVERIFY(d.hasSupport("MIME") == QtMultimedia::MaybeSupported);
+
+ QVERIFY(d.state() == QAudioDecoder::StoppedState);
+
+ QVERIFY(d.sourceFilename().isEmpty());
+ d.setSourceFilename("test");
+ QVERIFY(d.sourceFilename().isEmpty());
+
+ QFile f;
+ QVERIFY(d.sourceDevice() == 0);
+ d.setSourceDevice(&f);
+ QVERIFY(d.sourceDevice() == 0);
+
+ QAudioFormat format;
+ format.setChannels(2);
+ QVERIFY(!d.audioFormat().isValid());
+ d.setAudioFormat(format);
+ QVERIFY(!d.audioFormat().isValid());
+
+ QVERIFY(!d.read().isValid());
+ QVERIFY(!d.bufferAvailable());
+
+ QVERIFY(d.position() == -1);
+ QVERIFY(d.duration() == -1);
+
+ d.start();
+ QVERIFY(d.error() == QAudioDecoder::ServiceMissingError);
+ QVERIFY(!d.errorString().isEmpty());
+ QVERIFY(d.state() == QAudioDecoder::StoppedState);
+ d.stop();
+}
+
+
+void tst_QAudioDecoder::nullService()
+{
+ mockProvider->service = 0;
+ QAudioDecoder d;
+
+ QVERIFY(d.error() == QAudioDecoder::ServiceMissingError);
+ QVERIFY(!d.errorString().isEmpty());
+
+ QVERIFY(d.hasSupport("MIME") == QtMultimedia::MaybeSupported);
+
+ QVERIFY(d.state() == QAudioDecoder::StoppedState);
+
+ QVERIFY(d.sourceFilename().isEmpty());
+ d.setSourceFilename("test");
+ QVERIFY(d.sourceFilename().isEmpty());
+
+ QFile f;
+ QVERIFY(d.sourceDevice() == 0);
+ d.setSourceDevice(&f);
+ QVERIFY(d.sourceDevice() == 0);
+
+ QAudioFormat format;
+ format.setChannels(2);
+ QVERIFY(!d.audioFormat().isValid());
+ d.setAudioFormat(format);
+ QVERIFY(!d.audioFormat().isValid());
+
+ QVERIFY(!d.read().isValid());
+ QVERIFY(!d.bufferAvailable());
+
+ QVERIFY(d.position() == -1);
+ QVERIFY(d.duration() == -1);
+
+ d.start();
+ QVERIFY(d.error() == QAudioDecoder::ServiceMissingError);
+ QVERIFY(!d.errorString().isEmpty());
+ QVERIFY(d.state() == QAudioDecoder::StoppedState);
+ d.stop();
+}
+
QTEST_MAIN(tst_QAudioDecoder)
#include "tst_qaudiodecoder.moc"
diff --git a/tests/auto/unit/qmultimedia_common/mockaudiodecoderservice.h b/tests/auto/unit/qmultimedia_common/mockaudiodecoderservice.h
index 35db819e7..d3228686b 100644
--- a/tests/auto/unit/qmultimedia_common/mockaudiodecoderservice.h
+++ b/tests/auto/unit/qmultimedia_common/mockaudiodecoderservice.h
@@ -55,6 +55,7 @@ public:
: QMediaService(parent)
{
mockControl = new MockAudioDecoderControl(this);
+ validControl = mockControl;
}
~MockAudioDecoderService()
@@ -74,7 +75,18 @@ public:
Q_UNUSED(control);
}
+ void setControlNull()
+ {
+ mockControl = 0;
+ }
+
+ void setControlValid()
+ {
+ mockControl = validControl;
+ }
+
MockAudioDecoderControl *mockControl;
+ MockAudioDecoderControl *validControl;
};