diff options
author | Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com> | 2011-08-25 12:31:00 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-08-26 06:18:10 +0200 |
commit | ba62df130c91ba472cadb77bd596e19fd6ca5ccb (patch) | |
tree | 06c1ce65ae9666925afbbf6eeaafe216f04d2bd7 /tests/auto | |
parent | 5d71ee6abf9f3ab4ba88d929b61038f4f994125f (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.cpp | 20 | ||||
-rwxr-xr-x | tests/auto/qmediarecorder/tst_qmediarecorder.h | 1 |
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(); |