summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorDmytro Poplavskiy <dmytro.poplavskiy@nokia.com>2011-08-25 12:31:00 +1000
committerQt by Nokia <qt-info@nokia.com>2011-08-26 06:18:10 +0200
commitba62df130c91ba472cadb77bd596e19fd6ca5ccb (patch)
tree06c1ce65ae9666925afbbf6eeaafe216f04d2bd7 /tests/auto
parent5d71ee6abf9f3ab4ba88d929b61038f4f994125f (diff)
Fixed crash when QMediaObject is deleted before QMediaRecorder.
Change-Id: I8a1674b6f3d2b2c9ab888facff21f94af41b81de Reviewed-on: http://codereview.qt.nokia.com/3544 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qmediarecorder/tst_qmediarecorder.cpp20
-rwxr-xr-xtests/auto/qmediarecorder/tst_qmediarecorder.h1
2 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/qmediarecorder/tst_qmediarecorder.cpp b/tests/auto/qmediarecorder/tst_qmediarecorder.cpp
index 6805a2680..4f46f54f5 100644
--- a/tests/auto/qmediarecorder/tst_qmediarecorder.cpp
+++ b/tests/auto/qmediarecorder/tst_qmediarecorder.cpp
@@ -165,6 +165,26 @@ void tst_QMediaRecorder::testNullControls()
QCOMPARE(spy.count(), 0);
}
+void tst_QMediaRecorder::testDeleteMediaObject()
+{
+ MockMediaRecorderControl *mock = new MockMediaRecorderControl(this);
+ MockMediaRecorderService *service = new MockMediaRecorderService(this, mock);
+ MockMediaObject *object = new MockMediaObject(this, service);
+ QMediaRecorder *capture = new QMediaRecorder(object);
+
+ QVERIFY(capture->mediaObject() == object);
+ QVERIFY(capture->isAvailable());
+
+ delete object;
+ delete service;
+ delete mock;
+
+ QVERIFY(capture->mediaObject() == 0);
+ QVERIFY(!capture->isAvailable());
+
+ delete capture;
+}
+
void tst_QMediaRecorder::testError()
{
const QString errorString(QLatin1String("format error"));
diff --git a/tests/auto/qmediarecorder/tst_qmediarecorder.h b/tests/auto/qmediarecorder/tst_qmediarecorder.h
index 253a750e6..d0202a0c0 100755
--- a/tests/auto/qmediarecorder/tst_qmediarecorder.h
+++ b/tests/auto/qmediarecorder/tst_qmediarecorder.h
@@ -70,6 +70,7 @@ public slots:
private slots:
void testNullService();
void testNullControls();
+ void testDeleteMediaObject();
void testError();
void testSink();
void testRecord();