summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLev Zelenskiy <lev.zelenskiy@nokia.com>2012-04-26 16:53:37 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-27 05:05:42 +0200
commite44bcf0a384c15e7df593ec3f3cee30775f3f1ef (patch)
tree40aeaad059138eac4a558ba3a32147d8d8277dee /tests
parent4d1579d37b104670766582177c8520138f31465b (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')
-rw-r--r--tests/auto/unit/qsamplecache/qsamplecache.pro1
-rw-r--r--tests/auto/unit/qsamplecache/testdata/test.wav (renamed from tests/auto/unit/qsamplecache/data/test.wav)bin88232 -> 88232 bytes
-rw-r--r--tests/auto/unit/qsamplecache/testdata/test2.wav (renamed from tests/auto/unit/qsamplecache/data/test2.wav)bin88232 -> 88232 bytes
-rw-r--r--tests/auto/unit/qsamplecache/tst_qsamplecache.cpp64
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
index 4dd022661..4dd022661 100644
--- a/tests/auto/unit/qsamplecache/data/test.wav
+++ b/tests/auto/unit/qsamplecache/testdata/test.wav
Binary files differ
diff --git a/tests/auto/unit/qsamplecache/data/test2.wav b/tests/auto/unit/qsamplecache/testdata/test2.wav
index 4dd022661..4dd022661 100644
--- a/tests/auto/unit/qsamplecache/data/test2.wav
+++ b/tests/auto/unit/qsamplecache/testdata/test2.wav
Binary files differ
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)