From ba62df130c91ba472cadb77bd596e19fd6ca5ccb Mon Sep 17 00:00:00 2001 From: Dmytro Poplavskiy Date: Thu, 25 Aug 2011 12:31:00 +1000 Subject: Fixed crash when QMediaObject is deleted before QMediaRecorder. Change-Id: I8a1674b6f3d2b2c9ab888facff21f94af41b81de Reviewed-on: http://codereview.qt.nokia.com/3544 Reviewed-by: Qt Sanity Bot Reviewed-by: Michael Goddard --- tests/auto/qmediarecorder/tst_qmediarecorder.cpp | 20 ++++++++++++++++++++ tests/auto/qmediarecorder/tst_qmediarecorder.h | 1 + 2 files changed, 21 insertions(+) (limited to 'tests') 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(); -- cgit v1.2.3