diff options
author | Lev Zelenskiy <lev.zelenskiy@nokia.com> | 2012-04-26 16:53:37 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-27 05:05:42 +0200 |
commit | e44bcf0a384c15e7df593ec3f3cee30775f3f1ef (patch) | |
tree | 40aeaad059138eac4a558ba3a32147d8d8277dee /tests/auto/unit/qsamplecache | |
parent | 4d1579d37b104670766582177c8520138f31465b (diff) |
QSampleCache unit test: correctly check whether sample is cached.
Use QSample::isCached instead of relying on pointers.
Also added a test for loading an invalid file.
Change-Id: I9f4f1e8c3dc3cdb4a88a756cc6cad85e68c3a1b6
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests/auto/unit/qsamplecache')
-rw-r--r-- | tests/auto/unit/qsamplecache/qsamplecache.pro | 1 | ||||
-rw-r--r-- | tests/auto/unit/qsamplecache/testdata/test.wav (renamed from tests/auto/unit/qsamplecache/data/test.wav) | bin | 88232 -> 88232 bytes | |||
-rw-r--r-- | tests/auto/unit/qsamplecache/testdata/test2.wav (renamed from tests/auto/unit/qsamplecache/data/test2.wav) | bin | 88232 -> 88232 bytes | |||
-rw-r--r-- | tests/auto/unit/qsamplecache/tst_qsamplecache.cpp | 64 |
4 files changed, 41 insertions, 24 deletions
diff --git a/tests/auto/unit/qsamplecache/qsamplecache.pro b/tests/auto/unit/qsamplecache/qsamplecache.pro index 8aa321ff5..c17c15919 100644 --- a/tests/auto/unit/qsamplecache/qsamplecache.pro +++ b/tests/auto/unit/qsamplecache/qsamplecache.pro @@ -5,3 +5,4 @@ QT += multimedia-private testlib SOURCES += tst_qsamplecache.cpp +TESTDATA += testdata/* diff --git a/tests/auto/unit/qsamplecache/data/test.wav b/tests/auto/unit/qsamplecache/testdata/test.wav Binary files differindex 4dd022661..4dd022661 100644 --- a/tests/auto/unit/qsamplecache/data/test.wav +++ b/tests/auto/unit/qsamplecache/testdata/test.wav diff --git a/tests/auto/unit/qsamplecache/data/test2.wav b/tests/auto/unit/qsamplecache/testdata/test2.wav Binary files differindex 4dd022661..4dd022661 100644 --- a/tests/auto/unit/qsamplecache/data/test2.wav +++ b/tests/auto/unit/qsamplecache/testdata/test2.wav diff --git a/tests/auto/unit/qsamplecache/tst_qsamplecache.cpp b/tests/auto/unit/qsamplecache/tst_qsamplecache.cpp index 36ae14d26..218df1c44 100644 --- a/tests/auto/unit/qsamplecache/tst_qsamplecache.cpp +++ b/tests/auto/unit/qsamplecache/tst_qsamplecache.cpp @@ -56,6 +56,7 @@ private slots: void testNotCachedSample(); void testEnoughCapacity(); void testNotEnoughCapacity(); + void testInvalidFile(); private: @@ -66,14 +67,15 @@ void tst_QSampleCache::testCachedSample() QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); - QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); loadingSpy.clear(); - QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QCOMPARE(sample, sampleCached); // sample is cached + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); // loading thread still starts, but does nothing in this case QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); @@ -87,21 +89,13 @@ void tst_QSampleCache::testNotCachedSample() QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); - QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); - QTestEventLoop::instance().enterLoop(1); // make sure the sample is destroyed - - loadingSpy.clear(); - QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); - QVERIFY(sample != sampleCached); // sample is not cached - QTRY_COMPARE(loadingSpy.count(), 2); - QTRY_VERIFY(!cache.isLoading()); - - sampleCached->release(); + QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); } void tst_QSampleCache::testEnoughCapacity() @@ -109,7 +103,7 @@ void tst_QSampleCache::testEnoughCapacity() QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); - QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); // make sure sample is loaded QTRY_VERIFY(!cache.isLoading()); @@ -117,24 +111,33 @@ void tst_QSampleCache::testEnoughCapacity() sample->release(); cache.setCapacity(sampleSize * 2); + QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); + loadingSpy.clear(); - sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); + // load another sample and make sure first sample is not destroyed loadingSpy.clear(); - QSample* sampleOther = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test2.wav"))); + QSample* sampleOther = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test2.wav"))); QVERIFY(sampleOther); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sampleOther->release(); + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test2.wav")))); + loadingSpy.clear(); - QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QCOMPARE(sample, sampleCached); // sample is cached + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test2.wav")))); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); @@ -146,36 +149,49 @@ void tst_QSampleCache::testNotEnoughCapacity() QSampleCache cache; QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); - QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + QSample* sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); // make sure sample is loaded QTRY_VERIFY(!cache.isLoading()); int sampleSize = sample->data().size(); sample->release(); - cache.setCapacity(sampleSize / 2); + cache.setCapacity(sampleSize / 2); // unloads all samples + + QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); loadingSpy.clear(); - sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); + sample = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav"))); QVERIFY(sample); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sample->release(); + QVERIFY(cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); + // load another sample to force sample cache to destroy first sample loadingSpy.clear(); - QSample* sampleOther = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test2.wav"))); + QSample* sampleOther = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test2.wav"))); QVERIFY(sampleOther); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); sampleOther->release(); - loadingSpy.clear(); - QSample* sampleCached = cache.requestSample(QUrl::fromLocalFile(QFINDTESTDATA("data/test.wav"))); - QVERIFY(sample != sampleCached); // sample is not cached + QVERIFY(!cache.isCached(QUrl::fromLocalFile(QFINDTESTDATA("testdata/test.wav")))); +} + +void tst_QSampleCache::testInvalidFile() +{ + QSampleCache cache; + QSignalSpy loadingSpy(&cache, SIGNAL(isLoadingChanged())); + + QSample* sample = cache.requestSample(QUrl::fromLocalFile("invalid")); + QVERIFY(sample); + QTRY_COMPARE(sample->state(), QSample::Error); QTRY_COMPARE(loadingSpy.count(), 2); QTRY_VERIFY(!cache.isLoading()); + sample->release(); - sampleCached->release(); + QVERIFY(!cache.isCached(QUrl::fromLocalFile("invalid"))); } QTEST_MAIN(tst_QSampleCache) |