diff options
author | Angus Cummings <angus.cummings@nokia.com> | 2012-04-12 14:44:28 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-14 06:57:33 +0200 |
commit | e24f4fed534dfee0dc3f31be0a70f9348c73be19 (patch) | |
tree | fa9d298af7742ae0d1324e5bdaccc4cdf541bac4 /tests/auto/unit | |
parent | 02efdccae982452a101ea0c703d308ab8189e9fb (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/unit')
-rw-r--r-- | tests/auto/unit/qaudiodecoder/tst_qaudiodecoder.cpp | 83 | ||||
-rw-r--r-- | tests/auto/unit/qmultimedia_common/mockaudiodecoderservice.h | 12 |
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; }; |