qtmobility/tests/auto/qmediaplayer/tst_qmediaplayer.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
child 15 1f895d8a5b2b
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
   153     void setStreamCount(int count) { _streams.resize(count); }
   153     void setStreamCount(int count) { _streams.resize(count); }
   154 
   154 
   155     StreamType streamType(int index) { return _streams.at(index).type; }
   155     StreamType streamType(int index) { return _streams.at(index).type; }
   156     void setStreamType(int index, StreamType type) { _streams[index].type = type; }
   156     void setStreamType(int index, StreamType type) { _streams[index].type = type; }
   157 
   157 
   158     QVariant metaData(int index, QtMediaServices::MetaData key) {
   158     QVariant metaData(int index, QtMultimedia::MetaData key) {
   159         return _streams.at(index).metaData.value(key); }
   159         return _streams.at(index).metaData.value(key); }
   160     void setMetaData(int index, QtMediaServices::MetaData key, const QVariant &value) {
   160     void setMetaData(int index, QtMultimedia::MetaData key, const QVariant &value) {
   161         _streams[index].metaData.insert(key, value); }
   161         _streams[index].metaData.insert(key, value); }
   162 
   162 
   163     bool isActive(int index) { return _streams.at(index).active; }
   163     bool isActive(int index) { return _streams.at(index).active; }
   164     void setActive(int index, bool state) { _streams[index].active = state; }
   164     void setActive(int index, bool state) { _streams[index].active = state; }
   165 
   165 
   166 private:
   166 private:
   167     struct Stream
   167     struct Stream
   168     {
   168     {
   169         Stream() : type(UnknownStream), active(false) {}
   169         Stream() : type(UnknownStream), active(false) {}
   170         StreamType type;
   170         StreamType type;
   171         QMap<QtMediaServices::MetaData, QVariant> metaData;
   171         QMap<QtMultimedia::MetaData, QVariant> metaData;
   172         bool active;
   172         bool active;
   173     };
   173     };
   174 
   174 
   175     QVector<Stream> _streams;
   175     QVector<Stream> _streams;
   176 };
   176 };
   190     {
   190     {
   191         delete mockControl;
   191         delete mockControl;
   192         delete mockStreamsControl;
   192         delete mockStreamsControl;
   193     }
   193     }
   194 
   194 
   195     QMediaControl* control(const char *iid) const
   195     QMediaControl* requestControl(const char *iid)
   196     {
   196     {
   197         if (qstrcmp(iid, QMediaPlayerControl_iid) == 0)
   197         if (qstrcmp(iid, QMediaPlayerControl_iid) == 0)
   198             return mockControl;
   198             return mockControl;
   199 
   199 
   200         return 0;
   200         return 0;
       
   201     }
       
   202 
       
   203     void releaseControl(QMediaControl *)
       
   204     {
   201     }
   205     }
   202 
   206 
   203     void setState(QMediaPlayer::State state) { emit mockControl->stateChanged(mockControl->_state = state); }
   207     void setState(QMediaPlayer::State state) { emit mockControl->stateChanged(mockControl->_state = state); }
   204     void setState(QMediaPlayer::State state, QMediaPlayer::MediaStatus status) {
   208     void setState(QMediaPlayer::State state, QMediaPlayer::MediaStatus status) {
   205         mockControl->_state = state;
   209         mockControl->_state = state;
   444         player.setPlaybackRate(playbackRate);
   448         player.setPlaybackRate(playbackRate);
   445         QCOMPARE(player.playbackRate(), qreal(0));
   449         QCOMPARE(player.playbackRate(), qreal(0));
   446         QCOMPARE(spy.count(), 0);
   450         QCOMPARE(spy.count(), 0);
   447     } {
   451     } {
   448         QMediaPlaylist playlist;
   452         QMediaPlaylist playlist;
   449         playlist.setMediaObject(&player);
   453         player.setPlaylist(&playlist);
   450 
   454 
   451         QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
   455         QSignalSpy mediaSpy(&player, SIGNAL(mediaChanged(QMediaContent)));
   452         QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
   456         QSignalSpy statusSpy(&player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)));
   453 
   457 
   454         playlist.addMedia(QUrl("http://example.com/stream"));
   458         playlist.addMedia(QUrl("http://example.com/stream"));
   841 
   845 
   842     mockService->setIsValid(true);
   846     mockService->setIsValid(true);
   843     mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::NoMedia);
   847     mockService->setState(QMediaPlayer::StoppedState, QMediaPlayer::NoMedia);
   844 
   848 
   845     QMediaPlaylist *playlist = new QMediaPlaylist;
   849     QMediaPlaylist *playlist = new QMediaPlaylist;
   846     playlist->setMediaObject(player);
   850     player->setPlaylist(playlist);
   847 
   851 
   848     QSignalSpy stateSpy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
   852     QSignalSpy stateSpy(player, SIGNAL(stateChanged(QMediaPlayer::State)));
   849     QSignalSpy mediaSpy(player, SIGNAL(mediaChanged(QMediaContent)));
   853     QSignalSpy mediaSpy(player, SIGNAL(mediaChanged(QMediaContent)));
   850 
   854 
   851     // Test the player does nothing with an empty playlist attached.
   855     // Test the player does nothing with an empty playlist attached.
   982     QCOMPARE(stateSpy.count(), 11);
   986     QCOMPARE(stateSpy.count(), 11);
   983     QCOMPARE(mediaSpy.count(), 9);
   987     QCOMPARE(mediaSpy.count(), 9);
   984 
   988 
   985     // Test the player can bind to playlist again
   989     // Test the player can bind to playlist again
   986     playlist = new QMediaPlaylist;
   990     playlist = new QMediaPlaylist;
   987     playlist->setMediaObject(player);
   991     player->setPlaylist(playlist);
   988     QCOMPARE(playlist->mediaObject(), qobject_cast<QMediaObject*>(player));
       
   989 
   992 
   990     QCOMPARE(player->media(), QMediaContent());
   993     QCOMPARE(player->media(), QMediaContent());
   991     QCOMPARE(player->state(), QMediaPlayer::StoppedState);
   994     QCOMPARE(player->state(), QMediaPlayer::StoppedState);
   992 
   995 
   993     playlist->addMedia(content0);
   996     playlist->addMedia(content0);
  1006     playlist2->addMedia(content2);
  1009     playlist2->addMedia(content2);
  1007     playlist2->addMedia(content3);
  1010     playlist2->addMedia(content3);
  1008     playlist2->setCurrentIndex(2);
  1011     playlist2->setCurrentIndex(2);
  1009 
  1012 
  1010     player->play();
  1013     player->play();
  1011     playlist2->setMediaObject(player);
  1014     player->setPlaylist(playlist2);
  1012     QCOMPARE(playlist2->mediaObject(), qobject_cast<QMediaObject*>(player));
       
  1013     QVERIFY(playlist->mediaObject() == 0);
       
  1014     QCOMPARE(player->media(), playlist2->currentMedia());
  1015     QCOMPARE(player->media(), playlist2->currentMedia());
  1015     QCOMPARE(player->state(), QMediaPlayer::StoppedState);
  1016     QCOMPARE(player->state(), QMediaPlayer::StoppedState);
  1016 
  1017 
  1017     playlist2->setCurrentIndex(1);
  1018     playlist2->setCurrentIndex(1);
  1018     QCOMPARE(player->media(), playlist2->currentMedia());
  1019     QCOMPARE(player->media(), playlist2->currentMedia());
       
  1020 
       
  1021     {
       
  1022         QMediaPlaylist playlist;
       
  1023         playlist.addMedia(content1);
       
  1024         playlist.addMedia(content2);
       
  1025         playlist.addMedia(content3);
       
  1026         playlist.setCurrentIndex(1);
       
  1027 
       
  1028         player->setPlaylist(&playlist);
       
  1029         QCOMPARE(player->playlist(), &playlist);
       
  1030         QCOMPARE(player->media(), content2);
       
  1031     } //playlist should be detached now
       
  1032 
       
  1033     QVERIFY(player->playlist() == 0);
       
  1034     QCOMPARE(player->media(), QMediaContent());
  1019 }
  1035 }
  1020 
  1036 
  1021 QTEST_MAIN(tst_QMediaPlayer)
  1037 QTEST_MAIN(tst_QMediaPlayer)
  1022 
  1038 
  1023 #include "tst_qmediaplayer.moc"
  1039 #include "tst_qmediaplayer.moc"