summaryrefslogtreecommitdiffstats
path: root/tests/auto/qmediaplayer/tst_qmediaplayer_xa.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qmediaplayer/tst_qmediaplayer_xa.cpp')
-rw-r--r--tests/auto/qmediaplayer/tst_qmediaplayer_xa.cpp1413
1 files changed, 1413 insertions, 0 deletions
diff --git a/tests/auto/qmediaplayer/tst_qmediaplayer_xa.cpp b/tests/auto/qmediaplayer/tst_qmediaplayer_xa.cpp
new file mode 100644
index 000000000..403fe5457
--- /dev/null
+++ b/tests/auto/qmediaplayer/tst_qmediaplayer_xa.cpp
@@ -0,0 +1,1413 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the Qt Mobility Components.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** GNU Lesser General Public License Usage
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "tst_QMediaPlayer_xa.h"
+
+QT_USE_NAMESPACE
+
+#define QTEST_MAIN_XA(TestObject) \
+ int main(int argc, char *argv[]) { \
+ char *new_argv[3]; \
+ QApplication app(argc, argv); \
+ \
+ QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \
+ QByteArray bytes = str.toAscii(); \
+ \
+ char arg1[] = "-o"; \
+ \
+ new_argv[0] = argv[0]; \
+ new_argv[1] = arg1; \
+ new_argv[2] = bytes.data(); \
+ \
+ TestObject tc; \
+ return QTest::qExec(&tc, 3, new_argv); \
+ }
+
+#define WAIT_FOR_CONDITION(a,e) \
+ for (int _i = 0; _i < 500; _i += 1) { \
+ if ((a) == (e)) break; \
+ QTest::qWait(10);}
+
+#define WAIT_FOR_EITHER_CONDITION(a,e,f) \
+ for (int _i = 0; _i < 500; _i += 1) { \
+ if (((a) == (e)) || ((a) == (f))) break; \
+ QTest::qWait(10);}
+
+#define WAIT_FOR_CONDITION1(a) \
+ for (int _i = 0; _i < 500; _i += 1) { \
+ if (a) break; \
+ QTest::qWait(10);}
+
+
+#define WAIT_LONG_FOR_CONDITION(a,e) \
+ for (int _i = 0; _i < 1800; _i += 1) { \
+ if ((a) == (e)) break; \
+ QTest::qWait(10);}
+
+#define WAIT_LONG_FOR_CONDITION1(a) \
+ for (int _i = 0; _i < 1800; _i += 1) { \
+ if (a) break; \
+ QTest::qWait(100);}
+
+tst_QMediaPlayer_xa::tst_QMediaPlayer_xa(): m_player(NULL), m_widget(NULL), m_windowWidget(NULL)
+{
+ audioOnlyContent = new QMediaContent(QUrl("file:///C:/data/testfiles/test.mp3"));
+ videoOnlyContent = new QMediaContent(QUrl("file:///C:/data/testfiles/test_video.3gp"));
+ audioVideoContent = new QMediaContent(QUrl("file:///C:/data/testfiles/test.3gp"));
+ audioVideoAltContent = new QMediaContent(QUrl("file:///C:/data/testfiles/test_alt.3gp"));
+ //streamingContent = new QMediaContent(QUrl("rtsp://10.48.2.51/Copyright_Free_Test_Content/Clips/Video/3GP/176x144/h263/h263_176x144_15fps_384kbps_AAC-LC_128kbps_mono_44.1kHz.3gp"));
+ streamingContent3gp = new QMediaContent(QUrl("http://www.mobileplayground.co.uk/video/Crazy Frog.3gp"));
+ audioStreamingContent = new QMediaContent(QUrl("http://myopusradio.com:8000/easy"));
+ mediaContent = audioVideoContent;
+}
+
+tst_QMediaPlayer_xa::~tst_QMediaPlayer_xa()
+{
+ delete audioOnlyContent;
+ delete videoOnlyContent;
+ delete audioVideoContent;
+ delete audioVideoAltContent;
+}
+
+void tst_QMediaPlayer_xa::initTestCase_data()
+{
+}
+
+void tst_QMediaPlayer_xa::initTestCase()
+{
+ m_player = new QMediaPlayer();
+
+ // Symbian back end needs coecontrol for creation.
+ m_widget = new QVideoWidget();
+ m_widget->setGeometry ( 0, 100, 350, 250 );
+ m_player->setVideoOutput(m_widget);
+ m_widget->showNormal();
+}
+
+void tst_QMediaPlayer_xa::cleanupTestCase()
+{
+ delete m_player;
+ delete m_widget;
+ delete m_windowWidget;
+}
+
+void tst_QMediaPlayer_xa::resetPlayer()
+{
+ delete m_player;
+ m_player = new QMediaPlayer();
+ m_player->setVideoOutput(m_widget);
+}
+
+void tst_QMediaPlayer_xa::resetPlayer_WindowControl()
+{
+ delete m_player;
+ m_player = new QMediaPlayer();
+
+ if(!m_windowWidget) {
+ m_windowWidget = new QWidget();
+ m_windowWidget->showMaximized();
+ }
+
+ QVideoWindowControl* windowControl = (QVideoWindowControl*)(m_player->service()->requestControl(QVideoWindowControl_iid));
+ if (windowControl)
+ windowControl->setWinId(m_windowWidget->winId());
+}
+
+void tst_QMediaPlayer_xa::init()
+{
+ qRegisterMetaType<QMediaPlayer::State>("QMediaPlayer::State");
+ qRegisterMetaType<QMediaPlayer::Error>("QMediaPlayer::Error");
+ qRegisterMetaType<QMediaPlayer::MediaStatus>("QMediaPlayer::MediaStatus");
+ qRegisterMetaType<QMediaContent>("QMediaContent");
+ updateLog("QT MediaPlayer Auto Test Cases", true);
+}
+
+void tst_QMediaPlayer_xa::cleanup()
+{
+}
+
+
+void tst_QMediaPlayer_xa::testMedia()
+{
+ updateLog("*****testMedia");
+
+ setAudioVideoContent();
+
+ QTest::qWait(500);
+ QCOMPARE(m_player->media(), *mediaContent);
+
+ updateLog("*****testMedia: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::testDuration()
+{
+ updateLog("*****testDuration");
+
+ resetPlayer();
+
+ QSignalSpy spy(m_player, SIGNAL(durationChanged(qint64)));
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION1(spy.count()>0);
+
+ QVERIFY(m_player->duration() == duration);
+
+ updateLog("*****testDuration: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testPosition()
+{
+ updateLog("*****testPosition");
+ resetPlayer();
+
+ qint64 position = 60000;
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ QCOMPARE(m_player->isSeekable(), true);
+
+ // preset position
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->setPosition(position);
+ WAIT_FOR_CONDITION(spy.count(), 1);
+ QCOMPARE(m_player->position(), position);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).toLongLong(), position);
+ }
+
+ // same pos second time
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->setPosition(position);
+ QCOMPARE(m_player->position(), position);
+ QCOMPARE(spy.count(), 0);
+ }
+
+ //zero pos
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->setPosition(0);
+ QCOMPARE(m_player->position(), qint64(0));
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).toLongLong(), qint64(0));
+ }
+
+ //end pos
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->setPosition(duration);
+ QCOMPARE(m_player->position(), duration);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).toLongLong(), duration);
+ }
+
+ //negative pos
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->setPosition(qint64(-1));
+ QCOMPARE(m_player->position(), qint64(0));
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).toLongLong(), qint64(0));
+ }
+
+ //over duration
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->setPosition(duration+1);
+ QCOMPARE(m_player->position(), duration);
+ QCOMPARE(spy.count(), 1);
+ QCOMPARE(spy.at(0).at(0).toLongLong(), duration);
+ }
+
+}
+
+
+void tst_QMediaPlayer_xa::testPositionWhilePlaying()
+{
+ updateLog("*****testPositionWhilePlaying");
+ resetPlayer();
+
+ qint64 position = 60000;
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ // preset position
+ {
+ QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ m_player->setPosition(position);
+ WAIT_FOR_CONDITION1(spy.count()>0);
+ QVERIFY(m_player->mediaStatus() == QMediaPlayer::BufferingMedia || m_player->mediaStatus() == QMediaPlayer::BufferedMedia);
+
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QVERIFY(m_player->position()>=position);
+ QVERIFY(spy.count()!=0);
+ }
+
+ //reset position
+ m_player->stop();
+ m_player->setPosition(position);
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ //zero pos
+ { QSignalSpy spy(m_player, SIGNAL(positionChanged(qint64)));
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ m_player->setPosition(0);
+ WAIT_FOR_CONDITION1(spy.count()>0);
+ QVERIFY(m_player->mediaStatus() == QMediaPlayer::BufferingMedia ||
+ m_player->mediaStatus() == QMediaPlayer::BufferedMedia);
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QVERIFY(m_player->position() >= qint64(0));
+ QVERIFY(spy.count()!=0);
+ }
+
+ //reset position
+ m_player->stop();
+ m_player->setPosition(position);
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testPositionWhilePlaying: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::testVolume()
+{
+ updateLog("*****testVolume");
+
+ int volume = 20;
+
+ // preset volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(volume);
+ QCOMPARE(m_player->volume(), volume);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // same volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ int currentVolume = m_player->volume();
+ m_player->setVolume(currentVolume);
+ QCOMPARE(m_player->volume(), currentVolume);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 0);
+ }
+
+ // zero volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(0);
+ QCOMPARE(m_player->volume(), 0);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // max volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(100);
+ QCOMPARE(m_player->volume(), 100);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // negative volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(int(-1));
+ QCOMPARE(m_player->volume(), 0);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // over max volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(1000);
+ QCOMPARE(m_player->volume(), 100);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ updateLog("*****testVolume: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testVolumeWhilePlaying()
+{
+ updateLog("*****testVideoAndAudioAvailability");
+ resetPlayer();
+
+ int volume = 20;
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+
+ m_player->play();
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ // preset volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(volume);
+ QCOMPARE(m_player->volume(), volume);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // same volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ int currentVolume = m_player->volume();
+ m_player->setVolume(currentVolume);
+ QCOMPARE(m_player->volume(), currentVolume);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 0);
+ }
+
+ // zero volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(0);
+ QCOMPARE(m_player->volume(), 0);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // max volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(100);
+ QCOMPARE(m_player->volume(), 100);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // negative volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(int(-1));
+ QCOMPARE(m_player->volume(), 0);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ // over max volume
+ {
+ QSignalSpy spy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setVolume(1000);
+ QCOMPARE(m_player->volume(), 100);
+ QCOMPARE(m_player->isMuted(), false);
+ QCOMPARE(spy.count(), 1);
+ }
+
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testVideoAndAudioAvailability: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::testMuted()
+{
+ updateLog("*****testMuted");
+
+ int volume = 20;
+
+ //reset mute & volume
+ m_player->setMuted(false);
+ m_player->setVolume(0);
+ QVERIFY(m_player->isMuted() == false);
+ QCOMPARE(m_player->volume(), 0);
+
+ // set muted
+ {
+ QSignalSpy spy(m_player, SIGNAL(mutedChanged(bool)));
+ m_player->setMuted(true);
+ QCOMPARE(spy.count(), 1);
+ QVERIFY(m_player->isMuted() == true);
+ }
+
+ // set muted again
+ {
+ QSignalSpy spy(m_player, SIGNAL(mutedChanged(bool)));
+ m_player->setMuted(true);
+ QCOMPARE(spy.count(), 0);
+ QVERIFY(m_player->isMuted() == true);
+ }
+
+ // unmute
+ {
+ QSignalSpy spy(m_player, SIGNAL(mutedChanged(bool)));
+ m_player->setMuted(false);
+ QCOMPARE(spy.count(), 1);
+ QVERIFY(m_player->isMuted() == false);
+ }
+
+ // set volume while muted
+ {
+ QSignalSpy muteSpy(m_player, SIGNAL(mutedChanged(bool)));
+ QSignalSpy volumeSpy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setMuted(true);
+ m_player->setVolume(volume);
+ QCOMPARE(m_player->volume(), volume);
+ QCOMPARE(muteSpy.count(), 1);
+ QCOMPARE(volumeSpy.count(), 1);
+ QVERIFY(m_player->isMuted() == true);
+ }
+
+ updateLog("*****testMuted: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testMutedWhilePlaying()
+{
+ updateLog("*****testMutedWhilePlaying");
+ resetPlayer();
+
+ int volume = 20;
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+
+ //reset mute & volume
+ m_player->setMuted(false);
+ m_player->setVolume(65);
+ QVERIFY(m_player->isMuted() == false);
+ QCOMPARE(m_player->volume(), 65);
+
+ m_player->play();
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ // set muted
+ {
+ QSignalSpy spy(m_player, SIGNAL(mutedChanged(bool)));
+ m_player->setMuted(true);
+ QCOMPARE(spy.count(), 1);
+ QVERIFY(m_player->isMuted() == true);
+ }
+
+ // set muted again
+ {
+ QSignalSpy spy(m_player, SIGNAL(mutedChanged(bool)));
+ m_player->setMuted(true);
+ QCOMPARE(spy.count(), 0);
+ QVERIFY(m_player->isMuted() == true);
+ }
+
+ // unmute
+ {
+ QSignalSpy spy(m_player, SIGNAL(mutedChanged(bool)));
+ m_player->setMuted(false);
+ QCOMPARE(spy.count(), 1);
+ QVERIFY(m_player->isMuted() == false);
+ }
+
+ // set volume while muted
+ {
+ QSignalSpy muteSpy(m_player, SIGNAL(mutedChanged(bool)));
+ QSignalSpy volumeSpy(m_player, SIGNAL(volumeChanged(int)));
+ m_player->setMuted(true);
+ m_player->setVolume(volume);
+ QCOMPARE(m_player->volume(), volume);
+ QCOMPARE(muteSpy.count(), 1);
+ QCOMPARE(volumeSpy.count(), 1);
+ QVERIFY(m_player->isMuted() == true);
+ }
+
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+
+ updateLog("*****testMutedWhilePlaying: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testVideoAndAudioAvailability()
+{
+ updateLog("*****testVideoAndAudioAvailability");
+ resetPlayer();
+
+ QList<QVariant> arguments;
+
+
+ setVideoOnlyContent();
+
+
+ QSignalSpy audioAvailableSpy(m_player, SIGNAL(audioAvailableChanged(bool)));
+ QSignalSpy videoAvailableSpy(m_player, SIGNAL(videoAvailableChanged(bool)));
+
+ setAudioOnlyContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ updateLog("SetMedia: audioOnlyContent");
+ WAIT_FOR_CONDITION(m_player->isAudioAvailable(), true);
+ updateLog("\t isAudioAvailable() == true");
+ QVERIFY(m_player->isVideoAvailable() == false);
+ updateLog("\t isVideoAvailable() == false");
+ QCOMPARE(audioAvailableSpy.count(), 1);
+ arguments = audioAvailableSpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == true);
+ updateLog("\t audioAvailableChanged(true)");
+ QCOMPARE(videoAvailableSpy.count(), 1);
+ arguments = videoAvailableSpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == false);
+ updateLog("\t videoAvailableChanged(false)");
+
+ setVideoOnlyContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ updateLog("SetMedia: videoOnlyContent");
+ WAIT_FOR_CONDITION(m_player->isVideoAvailable(), true);
+ updateLog("\t isVideoAvailable() == true");
+ QVERIFY(m_player->isAudioAvailable() == false);
+ updateLog("\t isAudioAvailable() == false");
+ QCOMPARE(audioAvailableSpy.count(), 1);
+ arguments = audioAvailableSpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == false);
+ updateLog("\t audioAvailableChanged(false)");
+ QCOMPARE(videoAvailableSpy.count(), 1);
+ arguments = videoAvailableSpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == true);
+ updateLog("\t videoAvailableChanged(true)");
+
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ updateLog("SetMedia: audioVideoContent");
+ WAIT_FOR_CONDITION(m_player->isAudioAvailable(), true);
+ updateLog("\t isAudioAvailable() == true");
+ QCOMPARE(audioAvailableSpy.count(), 1);
+ arguments = audioAvailableSpy.takeFirst();
+ QVERIFY(arguments.at(0).toBool() == true);
+ updateLog("\t audioAvailableChanged(true)");
+ QCOMPARE(videoAvailableSpy.count(), 0);
+
+ updateLog("*****testVideoAndAudioAvailability: PASSED");
+
+}
+
+void tst_QMediaPlayer_xa::testStreamInformation()
+{
+ updateLog("*****testStreamInformation");
+ resetPlayer();
+ QMediaStreamsControl* m_streamControl = (QMediaStreamsControl*)(m_player->service()->requestControl(QMediaStreamsControl_iid));
+ setVideoOnlyContent();
+
+ if(m_streamControl)
+ {
+ {
+ QSignalSpy streamInfoSpy(m_streamControl, SIGNAL(streamsChanged()));
+ setAudioOnlyContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_streamControl->streamCount() == 1);
+ QCOMPARE(streamInfoSpy.count(), 1);
+ }
+
+ {
+ QSignalSpy streamInfoSpy(m_streamControl, SIGNAL(streamsChanged()));
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_streamControl->streamCount() == 2);
+ QCOMPARE(streamInfoSpy.count(), 1);
+ }
+
+ {
+ QSignalSpy streamInfoSpy(m_streamControl, SIGNAL(streamsChanged()));
+ setAudioVideoContent(); //set alternate content
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_streamControl->streamCount() == 2);
+ QCOMPARE(streamInfoSpy.count(), 1);
+ }
+
+ {
+ QSignalSpy streamInfoSpy(m_streamControl, SIGNAL(streamsChanged()));
+ setVideoOnlyContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_streamControl->streamCount() == 1);
+ QCOMPARE(streamInfoSpy.count(), 1);
+ }
+
+ updateLog("*****testStreamInformation: PASSED");
+ }
+}
+
+void tst_QMediaPlayer_xa::testPlay()
+{
+ updateLog("*****testPlay");
+ resetPlayer();
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_player->media() == *mediaContent);
+ QSignalSpy spy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->play();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+
+ //Play->Play
+ {
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->play();
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QCOMPARE(stateSpy.count(), 0);
+ }
+
+ //Play->Pause
+ {
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->pause();
+ QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ QCOMPARE(stateSpy.count(), 1);
+ }
+
+ //Play->Stop
+ {
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.count(), 1);
+ }
+
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testPlay: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testPause()
+{
+ updateLog("*****testPause");
+ resetPlayer();
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_player->media() == *mediaContent);
+ QSignalSpy spy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->pause();
+ // at present there is no support for stop->pause state transition. TODO: uncomment when support added
+ //QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ //QCOMPARE(spy.count(), 1);
+
+ //Pause->Play
+ {
+ //QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->play();
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QCOMPARE(stateSpy.count(), 1);
+ }
+
+ //Pause->Pause
+ {
+ m_player->pause();
+ QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->pause();
+ QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ QCOMPARE(stateSpy.count(), 0);
+ }
+
+ //Pause->Stop
+ {
+ QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.count(), 1);
+ }
+
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testPause: PASSED");
+
+}
+
+void tst_QMediaPlayer_xa::testStop()
+{
+ updateLog("*****testStop");
+ resetPlayer();
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_player->media() == *mediaContent);
+
+ QSignalSpy spy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->stop();
+
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(spy.count(), 0);
+
+ //Stop->Play
+ {
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->play();
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ QCOMPARE(stateSpy.count(), 1);
+ }
+ // at present there is no support for stop->pause state transition. TODO: uncomment when support added
+ //Stop->Pause
+/* {
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->pause();
+ QCOMPARE(m_player->state(), QMediaPlayer::PausedState);
+ QCOMPARE(stateSpy.count(), 1);
+ }
+*/
+ //Stop->Stop
+ {
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QSignalSpy stateSpy(m_player, SIGNAL(stateChanged(QMediaPlayer::State)));
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(stateSpy.count(), 0);
+ }
+
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testStop: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testMediaStatus()
+{
+ updateLog("*****testMediaStatus");
+ resetPlayer();
+
+ QSignalSpy statusSpy(m_player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(statusSpy.count()>0);
+
+ {
+ QSignalSpy statusSpy(m_player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QVERIFY(statusSpy.count()>0);
+ }
+
+ {
+ QSignalSpy statusSpy(m_player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
+ m_player->setPosition(duration - 10);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::EndOfMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::EndOfMedia);
+ QVERIFY(statusSpy.count()>0);
+ }
+
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testMediaStatus: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testBufferStatus()
+{
+ updateLog("*****testBufferStatus");
+ resetPlayer();
+ m_player->setNotifyInterval(50); //Since default interval is 1 sec,could not receive any bufferStatusChanged SIGNAL,hence checking for 50milliseconds
+ QSignalSpy spy(m_player, SIGNAL(bufferStatusChanged(int)));
+ // setStreamingContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ WAIT_FOR_CONDITION(m_player->bufferStatus(), 100);
+ QVERIFY(spy.count()>0);
+ updateLog("*****testBufferStatus: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testPlaybackRate()
+{
+ updateLog("*****testPlaybackRate");
+
+ resetPlayer();
+
+ qreal playbackRate = 1.5;
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+
+ m_player->setPlaybackRate(playbackRate);
+ QVERIFY(m_player->playbackRate() == playbackRate);
+
+ QSignalSpy spy(m_player, SIGNAL(playbackRateChanged(qreal)));
+ m_player->setPlaybackRate(playbackRate + 0.5f);
+ QCOMPARE(m_player->playbackRate(), playbackRate + 0.5f);
+ QCOMPARE(spy.count(), 1);
+
+ updateLog("*****testPlaybackRate: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testPlaybackRateWhilePlaying()
+{
+ updateLog("*****testPlaybackRateWhilePlaying");
+ resetPlayer();
+
+ qreal playbackRate = 1.5;
+
+ setAudioVideoContent();
+
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ m_player->setPlaybackRate(playbackRate);
+ QVERIFY(m_player->playbackRate() == playbackRate);
+
+ QSignalSpy spy(m_player, SIGNAL(playbackRateChanged(qreal)));
+ m_player->setPlaybackRate(playbackRate + 0.5f);
+ QCOMPARE(m_player->playbackRate(), playbackRate + 0.5f);
+ QCOMPARE(spy.count(), 1);
+
+ updateLog("*****testPlaybackRateWhilePlaying: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testSeekable()
+{
+ updateLog("*****testBufferStatus");
+ resetPlayer();
+ QSignalSpy spy(m_player, SIGNAL(seekableChanged(bool)));
+ setAudioVideoContent();
+ qint64 position = 1000;
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_player->isSeekable()==true);
+ m_player->setPosition(position);
+ QCOMPARE(spy.count(), 0);
+ QVERIFY(m_player->isSeekable()==true);
+
+ updateLog("*****testBufferStatus: PASSED");
+
+}
+
+void tst_QMediaPlayer_xa::testAspectRatioMode()
+{
+ updateLog("*****testBufferStatus");
+ resetPlayer();
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVideoWidgetControl* m_videoWidgetControl = (QVideoWidgetControl*)(m_player->service()->requestControl(QVideoWidgetControl_iid));
+
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ QCOMPARE(m_videoWidgetControl->aspectRatioMode(), Qt::KeepAspectRatio); //default
+
+ QTest::qWait(5000); //wait for 5 seconds
+
+ {
+ m_videoWidgetControl->setAspectRatioMode(Qt::IgnoreAspectRatio);
+ QCOMPARE(m_videoWidgetControl->aspectRatioMode(), Qt::IgnoreAspectRatio);
+ QTest::qWait(5000); //wait for 5 seconds
+ }
+
+ {
+ m_videoWidgetControl->setAspectRatioMode(Qt::KeepAspectRatioByExpanding);
+ QCOMPARE(m_videoWidgetControl->aspectRatioMode(), Qt::KeepAspectRatioByExpanding);
+ QTest::qWait(5000); //wait for 5 seconds
+ }
+ {
+ m_videoWidgetControl->setAspectRatioMode(Qt::KeepAspectRatio);
+ QCOMPARE(m_videoWidgetControl->aspectRatioMode(), Qt::KeepAspectRatio);
+ QTest::qWait(5000); //wait for 5 seconds
+ }
+
+ updateLog("*****testBufferStatus: PASSED");
+
+}
+
+void tst_QMediaPlayer_xa::testFullScreen()
+{
+ updateLog("*****testFullScreen");
+ resetPlayer();
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVideoWidgetControl* m_videoWidgetControl = (QVideoWidgetControl*)(m_player->service()->requestControl(QVideoWidgetControl_iid));
+
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ //m_widget->resize(50, 50);
+ m_widget->showNormal();
+ QTest::qWait(10000); //wait for 5 seconds
+
+
+ if(m_videoWidgetControl)
+ {
+ QSignalSpy spy(m_videoWidgetControl, SIGNAL(fullScreenChanged(bool)));
+ m_videoWidgetControl->setFullScreen(true);
+ QTest::qWait(10000); //wait for 5 seconds
+ QCOMPARE(m_videoWidgetControl->isFullScreen(), true);
+ QCOMPARE(spy.count(), 1);
+ }
+
+
+ if(m_videoWidgetControl)
+ {
+ QSignalSpy spy(m_videoWidgetControl, SIGNAL(fullScreenChanged(bool)));
+ m_videoWidgetControl->setFullScreen(false);
+ QCOMPARE(m_videoWidgetControl->isFullScreen(), false);
+ QTest::qWait(10000); //wait for 5 seconds
+ QCOMPARE(spy.count(), 1);
+ }
+
+ updateLog("*****testFullScreen: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testWindowControl_NativeSize()
+{
+ updateLog("*****testWindowControl_NativeSize");
+ resetPlayer_WindowControl();
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVERIFY(m_player->media() == *mediaContent);
+ m_player->play();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ QVideoWindowControl* windowControl = (QVideoWindowControl*)(m_player->service()->requestControl(QVideoWindowControl_iid));
+ if (windowControl)
+ {
+ QSize size = windowControl->nativeSize();
+ }
+
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ updateLog("*****testWindowControl_NativeSize: PASSED");
+}
+
+void tst_QMediaPlayer_xa::testWindowControl_AspectRatioMode()
+{
+ updateLog("*****testWindowControl_AspectRatioMode");
+ resetPlayer_WindowControl();
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVideoWindowControl* windowControl = (QVideoWindowControl*)(m_player->service()->requestControl(QVideoWindowControl_iid));
+
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ QCOMPARE(windowControl->aspectRatioMode(), Qt::KeepAspectRatio); //default
+
+ QTest::qWait(5000); //wait for 5 seconds
+
+ {
+ windowControl->setAspectRatioMode(Qt::IgnoreAspectRatio);
+ QCOMPARE(windowControl->aspectRatioMode(), Qt::IgnoreAspectRatio);
+ QTest::qWait(5000); //wait for 5 seconds
+ }
+
+ {
+ windowControl->setAspectRatioMode(Qt::KeepAspectRatioByExpanding);
+ QCOMPARE(windowControl->aspectRatioMode(), Qt::KeepAspectRatioByExpanding);
+ QTest::qWait(5000); //wait for 5 seconds
+ }
+ {
+ windowControl->setAspectRatioMode(Qt::KeepAspectRatio);
+ QCOMPARE(windowControl->aspectRatioMode(), Qt::KeepAspectRatio);
+ QTest::qWait(5000); //wait for 5 seconds
+ }
+
+ updateLog("*****testWindowControl_AspectRatioMode: PASSED");
+
+}
+
+void tst_QMediaPlayer_xa::testWindowControl_FullScreen()
+{
+ updateLog("*****testWindowControl_FullScreen");
+ resetPlayer_WindowControl();
+ setAudioVideoContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QVideoWindowControl* windowControl = (QVideoWindowControl*)(m_player->service()->requestControl(QVideoWindowControl_iid));
+
+ m_player->play();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+
+ //m_windowWidget->resize(250, 350);
+ m_windowWidget->showNormal();
+ QTest::qWait(10000); //wait for 5 seconds
+
+ if(windowControl)
+ {
+ QSignalSpy spy(windowControl, SIGNAL(fullScreenChanged(bool)));
+ windowControl->setFullScreen(true);
+ QTest::qWait(10000); //wait for 5 seconds
+ QCOMPARE(windowControl->isFullScreen(), true);
+ QCOMPARE(spy.count(), 1);
+ }
+
+
+ if(windowControl)
+ {
+ QSignalSpy spy(windowControl, SIGNAL(fullScreenChanged(bool)));
+ windowControl->setFullScreen(false);
+ QCOMPARE(windowControl->isFullScreen(), false);
+ QTest::qWait(10000); //wait for 5 seconds
+ QCOMPARE(spy.count(), 1);
+ }
+
+ updateLog("*****testWindowControl_FullScreen: PASSED");
+}
+
+
+//adding access-point testcase
+
+
+void tst_QMediaPlayer_xa::testSetconfigurationsAP()
+{
+ updateLog("*****testSetconfigurationsAP");
+ resetPlayer();
+
+ //Passing only valid Accesspoint in QList
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ for (int i=0; i<=accesspointlist.size()-1;i++)
+ qDebug()<<"accesspointlist"<< accesspointlist.at(i).name();
+ configs<<accesspointlist.at(8);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ setStreamingContent3gp();
+ m_player->play();
+ QTest::qWait(100000);
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(8).name());
+ updateLog("*****testSetconfigurationsAP: PASSED");
+
+}
+
+
+void tst_QMediaPlayer_xa::testSetAccesspoint()
+{
+ updateLog("*****testSetAccesspoint");
+ resetPlayer();
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(0);
+ configs<<accesspointlist.at(3);
+ configs<<accesspointlist.at(10);
+ configs<<accesspointlist.at(8);
+ //Passing only valid Accesspoint in QList
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+
+ setStreamingContent3gp();
+ QTest::qWait(200000);
+ m_player->play();
+ QTest::qWait(10000);
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(8).name());
+
+ updateLog("*****testSetAccesspoint: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::testGetAccesspoint()
+{
+ updateLog("*****testGetAccesspoint");
+ resetPlayer();
+ //getting information about the current configured accesspoint without setting any configurations
+ QNetworkConfiguration getaccespoint;
+ getaccespoint = m_player->currentNetworkConfiguration();
+ QCOMPARE(getaccespoint.name(),QString(""));
+ updateLog("*****testGetAccesspoint: ");
+}
+
+
+void tst_QMediaPlayer_xa::testDiffmediacontentAP()
+{
+ updateLog("*****streaming Different mediacontent files via AP");
+ resetPlayer();
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(8);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ //first mediacontent file
+ setAudioStreamingContent();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ QTest::qWait(30000);
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::EndOfMedia);
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ //second mediacontent file
+ setStreamingContent3gp();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ QTest::qWait(20000);
+ QCOMPARE(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::EndOfMedia);
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(8).name());
+ QNetworkConfiguration getaccespoint;
+ getaccespoint = m_player->currentNetworkConfiguration();
+ QCOMPARE(getaccespoint.name(), QString("MMMW"));
+
+ updateLog("*****testDiffmediacontentAP: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::testInvalidaddressAP()
+{
+ updateLog("*****testInvalidaddressAP");
+ resetPlayer();
+ //setting all invalid accesspoint
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(0);
+ configs<<accesspointlist.at(2);
+ configs<<accesspointlist.at(3);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ QNetworkConfiguration getaccespoint;
+ getaccespoint = m_player->currentNetworkConfiguration();
+ QCOMPARE(getaccespoint.name(), QString(""));
+
+ updateLog("*****testInvalidaddressAP: PASSED");
+}
+
+
+
+void tst_QMediaPlayer_xa::testMultipleAccesspoints()
+{
+ updateLog("*****testMultipleAccesspoints");
+ resetPlayer();
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(8);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ setStreamingContent3gp();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QTest::qWait(20000);
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(8).name());
+ //Second configuration list
+ QList<QNetworkConfiguration> secconfigs;
+ secaccesspoint = manager.allConfigurations();
+ secconfigs<<secaccesspoint.at(5);
+ QSignalSpy spy1(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(secconfigs);
+ setStreamingContent3gp();
+ // setAudioStreamingContent();
+ QTest::qWait(30000);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QTest::qWait(10000);
+ updateLog("*****testSetAccesspoint: PASSED");
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(5).name());
+ QNetworkConfiguration getaccespoint;
+ getaccespoint = m_player->currentNetworkConfiguration();
+ QCOMPARE(getaccespoint.name(), QString("Mobile Office"));
+
+ updateLog("*****testMultipleAccesspoints: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::testReconnectAPWhilestreaming()
+{
+ updateLog("*****testReconnectAPWhilestreaming");
+ resetPlayer();
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(15);
+ configs<<accesspointlist.at(12);
+ configs<<accesspointlist.at(0);
+ configs<<accesspointlist.at(8);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ setAudioStreamingContent();
+ m_player->play();
+ QTest::qWait(200000);
+ configs<<accesspointlist.at(5);
+ m_player->setNetworkConfigurations(configs);
+ m_player->play();
+ QTest::qWait(20000);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::EndOfMedia);
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(8).name());
+ QNetworkConfiguration getaccespoint;
+ getaccespoint = m_player->currentNetworkConfiguration();
+ QCOMPARE(getaccespoint.name(), QString("MMMW"));
+ updateLog("*****testReconnectAPWhilestreaming: PASSED");
+}
+
+
+void tst_QMediaPlayer_xa::teststreampausestream()
+{
+ updateLog("*****teststreampausestream");
+ resetPlayer();
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(8);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ setStreamingContent3gp();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QTest::qWait(10000);
+ m_player->pause();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PausedState);
+
+ //Setting up the accesspoint when the player is in paused state
+ QList<QNetworkConfiguration> secconfigs;
+ secaccesspoint = manager.allConfigurations();
+ secconfigs<<secaccesspoint.at(5);
+ m_player->setNetworkConfigurations(secconfigs);
+ m_player->play();
+ QTest::qWait(20000);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ QCOMPARE((m_player->currentNetworkConfiguration()).name(), accesspointlist.at(8).name());
+ m_player->stop();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::StoppedState);
+ setStreamingContent3gp();
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ QCOMPARE(m_player->mediaStatus(), QMediaPlayer::LoadedMedia);
+ m_player->play();
+ QTest::qWait(20000);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ m_player->stop();
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(5).name());
+
+ updateLog("*****teststreampausestream: PASSED");
+}
+
+
+
+void tst_QMediaPlayer_xa::testStressAccessPoint()
+{
+ updateLog("*****testStressAccessPoint");
+ resetPlayer();
+ for (int i=0; i<=50; i++) {
+ QList<QNetworkConfiguration> configs;
+ accesspointlist = manager.allConfigurations();
+ configs<<accesspointlist.at(8);
+ QSignalSpy spy(m_player, SIGNAL(networkConfigurationChanged(const QNetworkConfiguration&)));
+ m_player->setNetworkConfigurations(configs);
+ setStreamingContent3gp();
+ m_player->play();
+ QTest::qWait(20000);
+ WAIT_LONG_FOR_CONDITION(m_player->state(), QMediaPlayer::PlayingState);
+ WAIT_FOR_CONDITION(m_player->mediaStatus(), QMediaPlayer::BufferedMedia);
+ m_player->stop();
+ QCOMPARE(m_player->state(), QMediaPlayer::StoppedState);
+ QCOMPARE((m_player->currentNetworkConfiguration().name()), accesspointlist.at(8).name());
+ resetPlayer();
+ }
+
+ updateLog("*****testStressAccessPoint: PASSED");
+}
+
+
+
+void tst_QMediaPlayer_xa::updateLog(QString log, bool delFile)
+{
+ QString logFileName = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + "_detailed.log";
+ if(delFile)
+ {
+ QFile::remove(logFileName);
+ }
+
+ QFile f(logFileName);
+
+ if( !f.open( QIODevice::WriteOnly | QIODevice::Append ) )
+ {
+ return;
+ }
+
+ QTextStream ts( &f );
+
+ ts<<log<<"\n";
+
+ f.close();
+}