API unit tests from Maemo API test team.

A large number of tweaks and changes to original tests, and refactor
a lot of the mock backends to reduce duplication.

Changed viewfinder test case to use mock service and provider so
that it matches the image capture test case.

Reviewed-by: Jonas Rabbe
(cherry picked from commit e40bef5508a4165cec4a46b97115aed461027fa5)

Also licence header fix:
(cherry picked from commit e9ee9e8c48b45b97d62ee4a82e400fa9d8ea8107)

Change-Id: Ic59891d75563bb2e008a336eea859e8c44d8d831
Reviewed-on: http://codereview.qt.nokia.com/2078
Reviewed-by: Jonas Rabbe <jonas.rabbe@nokia.com>
This commit is contained in:
Michael Goddard
2011-07-25 15:02:51 +10:00
committed by Qt by Nokia
parent 1e4dda9710
commit a6128410da
94 changed files with 8814 additions and 2396 deletions

View File

@@ -79,6 +79,8 @@
QT_USE_NAMESPACE
#include "mockvideosurface.h"
void tst_QMediaPlayer::initTestCase_data()
{
QTest::addColumn<bool>("valid");
@@ -126,8 +128,8 @@ void tst_QMediaPlayer::initTestCase()
qRegisterMetaType<QMediaPlayer::MediaStatus>("QMediaPlayer::MediaStatus");
qRegisterMetaType<QMediaContent>("QMediaContent");
mockService = new MockPlayerService;
mockProvider = new MockProvider(mockService);
mockService = new MockMediaPlayerService;
mockProvider = new MockMediaServiceProvider(mockService, true);
player = new QMediaPlayer(0, 0, mockProvider);
}
@@ -147,7 +149,7 @@ void tst_QMediaPlayer::cleanup()
void tst_QMediaPlayer::testNullService()
{
MockProvider provider(0);
MockMediaServiceProvider provider(0);
QMediaPlayer player(0, 0, &provider);
const QIODevice *nullDevice = 0;
@@ -842,6 +844,68 @@ void tst_QMediaPlayer::testPlaylist()
}
void tst_QMediaPlayer::testPlayerFlags()
{
MockMediaServiceProvider provider(0, true);
QMediaPlayer::Flag flags = QMediaPlayer::LowLatency;
QMediaPlayer player(0, flags, &provider);
QMediaServiceProviderHint::Feature feature;
if (flags & QMediaPlayer::LowLatency)
{
/* if the flag is low latency set the low latency play back for the service provider */
feature = QMediaServiceProviderHint::LowLatencyPlayback;
const QByteArray service(Q_MEDIASERVICE_MEDIAPLAYER);
const QMediaServiceProviderHint providerHint(feature);
/* request service for the service provider */
provider.requestService(service,providerHint);
/* Constructs a SupportedFeatures media service provider hint. */
QMediaServiceProviderHint servicepro(feature);
/* compare the flag value */
QVERIFY(servicepro.features() == QMediaServiceProviderHint::LowLatencyPlayback);
}
/* The player is expected to play QIODevice based streams.
If passed to QMediaPlayer constructor,
the service supporting streams playback will be chosen. */
flags = QMediaPlayer::StreamPlayback;
/* Construct a QMediaPlayer that uses the playback service from provider,
parented to parent and with flags.*/
QMediaPlayer player2(0,flags , &provider);
if (flags & QMediaPlayer::StreamPlayback)
{
/* if the flag is stream play back set the stream play back for the service provider */
feature = QMediaServiceProviderHint::StreamPlayback;
const QByteArray service(Q_MEDIASERVICE_MEDIAPLAYER);
const QMediaServiceProviderHint providerHint(feature);
/* request service for the service provider */
provider.requestService(service,providerHint);
/* Constructs a SupportedFeatures media service provider hint. */
QMediaServiceProviderHint servicepro(feature);
/* compare the flag value */
QVERIFY(servicepro.features() == QMediaServiceProviderHint::StreamPlayback);
}
}
void tst_QMediaPlayer::testDestructor()
{
/* create an object for player */
QMediaPlayer *player = new QMediaPlayer;
/* check whether the object is created */
QVERIFY(player);
/* delete the instance */
delete player;
}
void tst_QMediaPlayer::testNetworkAccess()
{
QNetworkConfigurationManager manager;
@@ -876,9 +940,8 @@ void tst_QMediaPlayer::testSetVideoOutput()
QGraphicsVideoItem item;
MockVideoSurface surface;
MockPlayerService service;
MockProvider provider(&service);
provider.deleteServiceOnRelease = false;
MockMediaPlayerService service;
MockMediaServiceProvider provider(&service);
QMediaPlayer player(0, 0, &provider);
player.setVideoOutput(&widget);
@@ -922,7 +985,7 @@ void tst_QMediaPlayer::testSetVideoOutputNoService()
QGraphicsVideoItem item;
MockVideoSurface surface;
MockProvider provider(0);
MockMediaServiceProvider provider(0, true);
QMediaPlayer player(0, 0, &provider);
player.setVideoOutput(&widget);
@@ -941,12 +1004,11 @@ void tst_QMediaPlayer::testSetVideoOutputNoControl()
QGraphicsVideoItem item;
MockVideoSurface surface;
MockPlayerService service;
MockMediaPlayerService service;
service.rendererRef = 1;
service.windowRef = 1;
MockProvider provider(&service);
provider.deleteServiceOnRelease = false;
MockMediaServiceProvider provider(&service);
QMediaPlayer player(0, 0, &provider);
player.setVideoOutput(&widget);
@@ -963,9 +1025,8 @@ void tst_QMediaPlayer::testSetVideoOutputDestruction()
{
MockVideoSurface surface;
MockPlayerService service;
MockProvider provider(&service);
provider.deleteServiceOnRelease = false;
MockMediaPlayerService service;
MockMediaServiceProvider provider(&service);
{
QMediaPlayer player(0, 0, &provider);
@@ -1016,4 +1077,9 @@ void tst_QMediaPlayer::debugEnums()
qDebug() << QMediaPlayer::NetworkError;
}
void tst_QMediaPlayer::testSupportedMimeTypes()
{
QStringList mimeList = QMediaPlayer::supportedMimeTypes(QMediaPlayer::LowLatency);
// This is empty on some platforms, and not on others, so can't test something here at the moment.
}