qtmobility/tests/auto/symbian/qmediaobject_s60/tst_qmediaobject_s60.cpp
changeset 14 6fbed849b4f4
parent 11 06b8e2af4411
child 15 1f895d8a5b2b
equal deleted inserted replaced
11:06b8e2af4411 14:6fbed849b4f4
    43 
    43 
    44 #include <QtCore/qtimer.h>
    44 #include <QtCore/qtimer.h>
    45 
    45 
    46 #include <qmediaobject.h>
    46 #include <qmediaobject.h>
    47 #include <qmediaservice.h>
    47 #include <qmediaservice.h>
    48 #include <qmetadatacontrol.h>
       
    49 #include <qmediaplayer.h>
    48 #include <qmediaplayer.h>
    50 
    49 
    51 QT_USE_NAMESPACE
    50 QT_USE_NAMESPACE
    52 class tst_QMediaObject : public QObject
    51 class tst_QMediaObject : public QObject
    53 {
    52 {
    60     void init();
    59     void init();
    61     void cleanup();
    60     void cleanup();
    62 
    61 
    63 private slots:
    62 private slots:
    64     void isMetaDataAvailable();
    63     void isMetaDataAvailable();
    65     void isWritable();
       
    66     void metaData();
    64     void metaData();
    67     void availableMetaData();
    65     void availableMetaData();
    68     void setMetaData();
       
    69     void extendedMetaData();
    66     void extendedMetaData();
    70     void availableExtendedMetaData();
    67     void availableExtendedMetaData();
    71     void setExtendedMetaData();
       
    72 
    68 
    73 private:
    69 private:
    74     QString metaDataKeyAsString(QtMediaServices::MetaData key) const;
    70     QString metaDataKeyAsString(QtMultimedia::MetaData key) const;
    75 };
    71 };
    76 
    72 
    77 void tst_QMediaObject::initTestCase_data()
    73 void tst_QMediaObject::initTestCase_data()
    78 {
    74 {
    79     QTest::addColumn<bool>("valid");
    75     QTest::addColumn<bool>("valid");
   275     player.setMedia(mediaContent);
   271     player.setMedia(mediaContent);
   276     QTest::qWait(700); 
   272     QTest::qWait(700); 
   277     QVERIFY(player.isMetaDataAvailable() == metaDataAvailable);
   273     QVERIFY(player.isMetaDataAvailable() == metaDataAvailable);
   278 }
   274 }
   279 
   275 
   280 void tst_QMediaObject::isWritable()
       
   281 {
       
   282     QFETCH_GLOBAL(bool, metaDataWritable);
       
   283     QFETCH_GLOBAL(QMediaContent, mediaContent);
       
   284 //    qWarning() << mediaContent.canonicalUrl();
       
   285     QMediaPlayer player;
       
   286 
       
   287     player.setMedia(mediaContent);
       
   288     QTest::qWait(700);
       
   289     QVERIFY(player.isMetaDataWritable() == metaDataWritable);
       
   290 }
       
   291 
       
   292 void tst_QMediaObject::metaData()
   276 void tst_QMediaObject::metaData()
   293 {
   277 {
   294     QFETCH_GLOBAL(QMediaContent, mediaContent);
   278     QFETCH_GLOBAL(QMediaContent, mediaContent);
   295     QFETCH_GLOBAL(bool, metaDataAvailable);
   279     QFETCH_GLOBAL(bool, metaDataAvailable);
   296 //    qWarning() << mediaContent.canonicalUrl();
   280 //    qWarning() << mediaContent.canonicalUrl();
   300     QTest::qWait(700);
   284     QTest::qWait(700);
   301     const QString artist(QLatin1String("Artist"));
   285     const QString artist(QLatin1String("Artist"));
   302     const QString title(QLatin1String("Title"));
   286     const QString title(QLatin1String("Title"));
   303 
   287 
   304     if (player.isMetaDataAvailable()) {
   288     if (player.isMetaDataAvailable()) {
   305         QEXPECT_FAIL("", "player.metaData(QtMediaServices::AlbumArtist) failed: ", Continue);
   289         QEXPECT_FAIL("", "player.metaData(QtMultimedia::AlbumArtist) failed: ", Continue);
   306         QCOMPARE(player.metaData(QtMediaServices::AlbumArtist).toString(), artist);
   290         QCOMPARE(player.metaData(QtMultimedia::AlbumArtist).toString(), artist);
   307         QEXPECT_FAIL("", "player.metaData(QtMediaServices::Title) failed: ", Continue);
   291         QEXPECT_FAIL("", "player.metaData(QtMultimedia::Title) failed: ", Continue);
   308         QCOMPARE(player.metaData(QtMediaServices::Title).toString(), title);
   292         QCOMPARE(player.metaData(QtMultimedia::Title).toString(), title);
   309     }
   293     }
   310 }
   294 }
   311 
   295 
   312 void tst_QMediaObject::availableMetaData()
   296 void tst_QMediaObject::availableMetaData()
   313 {
   297 {
   318 
   302 
   319     player.setMedia(mediaContent);
   303     player.setMedia(mediaContent);
   320     QTest::qWait(700);    
   304     QTest::qWait(700);    
   321 
   305 
   322     if (player.isMetaDataAvailable()) {
   306     if (player.isMetaDataAvailable()) {
   323         QList<QtMediaServices::MetaData> metaDataKeys = player.availableMetaData();
   307         QList<QtMultimedia::MetaData> metaDataKeys = player.availableMetaData();
   324         QEXPECT_FAIL("", "metaDataKeys.count() failed: ", Continue);
   308         QEXPECT_FAIL("", "metaDataKeys.count() failed: ", Continue);
   325         QVERIFY(metaDataKeys.count() > 0);
   309         QVERIFY(metaDataKeys.count() > 0);
   326 //        qWarning() << "metaDataKeys.count: " << metaDataKeys.count();
   310 //        qWarning() << "metaDataKeys.count: " << metaDataKeys.count();
   327         QEXPECT_FAIL("", "metaDataKeys.contains(QtMediaServices::AlbumArtist) failed: ", Continue);
   311         QEXPECT_FAIL("", "metaDataKeys.contains(QtMultimedia::AlbumArtist) failed: ", Continue);
   328         QVERIFY(metaDataKeys.contains(QtMediaServices::AlbumArtist));
   312         QVERIFY(metaDataKeys.contains(QtMultimedia::AlbumArtist));
   329         QEXPECT_FAIL("", "metaDataKeys.contains(QtMediaServices::Title) failed: ", Continue);
   313         QEXPECT_FAIL("", "metaDataKeys.contains(QtMultimedia::Title) failed: ", Continue);
   330         QVERIFY(metaDataKeys.contains(QtMediaServices::Title));
   314         QVERIFY(metaDataKeys.contains(QtMultimedia::Title));
   331     }
       
   332 }
       
   333 
       
   334 void tst_QMediaObject::setMetaData()
       
   335 {
       
   336     QFETCH_GLOBAL(QMediaContent, mediaContent);
       
   337 //    qWarning() << mediaContent.canonicalUrl();
       
   338     QMediaPlayer player;
       
   339 
       
   340     player.setMedia(mediaContent);
       
   341     QTest::qWait(700); 
       
   342 
       
   343     QString title("Titletest");
       
   344     if (player.isMetaDataWritable()) {
       
   345         player.setMetaData(QtMediaServices::Title, title); 
       
   346         QCOMPARE(player.metaData(QtMediaServices::Title).toString(), title);
       
   347     }
   315     }
   348 }
   316 }
   349 
   317 
   350 void tst_QMediaObject::extendedMetaData()
   318 void tst_QMediaObject::extendedMetaData()
   351 {
   319 {
   357     QTest::qWait(700);
   325     QTest::qWait(700);
   358     const QString artist(QLatin1String("Artist"));
   326     const QString artist(QLatin1String("Artist"));
   359     const QString title(QLatin1String("Title"));
   327     const QString title(QLatin1String("Title"));
   360 
   328 
   361     if (player.isMetaDataAvailable()) {  
   329     if (player.isMetaDataAvailable()) {  
   362         QEXPECT_FAIL("", "player.extendedMetaData(QtMediaServices::AlbumArtist) failed: ", Continue);
   330         QEXPECT_FAIL("", "player.extendedMetaData(QtMultimedia::AlbumArtist) failed: ", Continue);
   363         QCOMPARE(player.extendedMetaData(metaDataKeyAsString(QtMediaServices::AlbumArtist)).toString(), artist);
   331         QCOMPARE(player.extendedMetaData(metaDataKeyAsString(QtMultimedia::AlbumArtist)).toString(), artist);
   364         QEXPECT_FAIL("", "player.extendedMetaData(QtMediaServices::Title) failed: ", Continue);
   332         QEXPECT_FAIL("", "player.extendedMetaData(QtMultimedia::Title) failed: ", Continue);
   365         QCOMPARE(player.extendedMetaData(metaDataKeyAsString(QtMediaServices::Title)).toString(), title);
   333         QCOMPARE(player.extendedMetaData(metaDataKeyAsString(QtMultimedia::Title)).toString(), title);
   366     }
   334     }
   367 }
   335 }
   368 
   336 
   369 void tst_QMediaObject::availableExtendedMetaData()
   337 void tst_QMediaObject::availableExtendedMetaData()
   370 {
   338 {
   383 /*        qWarning() << "metaDataKeys.count: " << metaDataKeys.count();
   351 /*        qWarning() << "metaDataKeys.count: " << metaDataKeys.count();
   384         int count = metaDataKeys.count();
   352         int count = metaDataKeys.count();
   385         count = count-1;
   353         count = count-1;
   386         int i = 0;
   354         int i = 0;
   387         while(count >= i)
   355         while(count >= i)
   388             {            
   356             {
   389             qWarning() << "metaDataKeys " << i <<". " << metaDataKeys.at(i);
   357             qWarning() << "metaDataKeys " << i <<". " << metaDataKeys.at(i);
   390             i++;
   358             i++;
   391             }*/
   359             }*/
   392         QEXPECT_FAIL("", "metaDataKeys.contains(QtMediaServices::AlbumArtist) failed: ", Continue);
   360         QEXPECT_FAIL("", "metaDataKeys.contains(QtMultimedia::AlbumArtist) failed: ", Continue);
   393         QVERIFY(metaDataKeys.contains(metaDataKeyAsString(QtMediaServices::AlbumArtist)));
   361         QVERIFY(metaDataKeys.contains(metaDataKeyAsString(QtMultimedia::AlbumArtist)));
   394         QEXPECT_FAIL("", "metaDataKeys.contains(QtMediaServices::AlbumArtist) failed: ", Continue);
   362         QEXPECT_FAIL("", "metaDataKeys.contains(QtMultimedia::AlbumArtist) failed: ", Continue);
   395         QVERIFY(metaDataKeys.contains(metaDataKeyAsString(QtMediaServices::Title)));
   363         QVERIFY(metaDataKeys.contains(metaDataKeyAsString(QtMultimedia::Title)));
   396     }
   364     }
   397 }
   365 }
   398 
   366 
   399 void tst_QMediaObject::setExtendedMetaData()
   367 QString tst_QMediaObject::metaDataKeyAsString(QtMultimedia::MetaData key) const
   400 {
       
   401     QFETCH_GLOBAL(QMediaContent, mediaContent);
       
   402 //    qWarning() << mediaContent.canonicalUrl();
       
   403     QMediaPlayer player;
       
   404 
       
   405     player.setMedia(mediaContent);
       
   406     QTest::qWait(700);
       
   407     const QString title(QLatin1String("Titletest"));
       
   408 
       
   409     if (player.isMetaDataWritable()) {
       
   410         player.setExtendedMetaData(metaDataKeyAsString(QtMediaServices::Title), title);  
       
   411         QCOMPARE(player.metaData(QtMediaServices::Title).toString(), title);
       
   412     }
       
   413 }
       
   414 
       
   415 QString tst_QMediaObject::metaDataKeyAsString(QtMediaServices::MetaData key) const
       
   416 {
   368 {
   417     switch(key) {
   369     switch(key) {
   418         case QtMediaServices::Title: return "title";
   370         case QtMultimedia::Title: return "title";
   419         case QtMediaServices::AlbumArtist: return "artist";
   371         case QtMultimedia::AlbumArtist: return "artist";
   420         case QtMediaServices::Comment: return "comment";
   372         case QtMultimedia::Comment: return "comment";
   421         case QtMediaServices::Genre: return "genre";
   373         case QtMultimedia::Genre: return "genre";
   422         case QtMediaServices::Year: return "year";
   374         case QtMultimedia::Year: return "year";
   423         case QtMediaServices::Copyright: return "copyright";
   375         case QtMultimedia::Copyright: return "copyright";
   424         case QtMediaServices::AlbumTitle: return "album";
   376         case QtMultimedia::AlbumTitle: return "album";
   425         case QtMediaServices::Composer: return "composer";
   377         case QtMultimedia::Composer: return "composer";
   426         case QtMediaServices::TrackNumber: return "albumtrack";
   378         case QtMultimedia::TrackNumber: return "albumtrack";
   427         case QtMediaServices::AudioBitRate: return "audiobitrate";
   379         case QtMultimedia::AudioBitRate: return "audiobitrate";
   428         case QtMediaServices::VideoBitRate: return "videobitrate";
   380         case QtMultimedia::VideoBitRate: return "videobitrate";
   429         case QtMediaServices::Duration: return "duration";
   381         case QtMultimedia::Duration: return "duration";
   430         case QtMediaServices::MediaType: return "contenttype";
   382         case QtMultimedia::MediaType: return "contenttype";
   431         case QtMediaServices::SubTitle: // TODO: Find the matching metadata keys
   383         case QtMultimedia::SubTitle: // TODO: Find the matching metadata keys
   432         case QtMediaServices::Description:
   384         case QtMultimedia::Description:
   433         case QtMediaServices::Category:
   385         case QtMultimedia::Category:
   434         case QtMediaServices::Date:
   386         case QtMultimedia::Date:
   435         case QtMediaServices::UserRating:
   387         case QtMultimedia::UserRating:
   436         case QtMediaServices::Keywords:
   388         case QtMultimedia::Keywords:
   437         case QtMediaServices::Language:
   389         case QtMultimedia::Language:
   438         case QtMediaServices::Publisher:
   390         case QtMultimedia::Publisher:
   439         case QtMediaServices::ParentalRating:
   391         case QtMultimedia::ParentalRating:
   440         case QtMediaServices::RatingOrganisation:
   392         case QtMultimedia::RatingOrganisation:
   441         case QtMediaServices::Size:
   393         case QtMultimedia::Size:
   442         case QtMediaServices::AudioCodec:
   394         case QtMultimedia::AudioCodec:
   443         case QtMediaServices::AverageLevel:
   395         case QtMultimedia::AverageLevel:
   444         case QtMediaServices::ChannelCount:
   396         case QtMultimedia::ChannelCount:
   445         case QtMediaServices::PeakValue:
   397         case QtMultimedia::PeakValue:
   446         case QtMediaServices::SampleRate:
   398         case QtMultimedia::SampleRate:
   447         case QtMediaServices::Author:
   399         case QtMultimedia::Author:
   448         case QtMediaServices::ContributingArtist:
   400         case QtMultimedia::ContributingArtist:
   449         case QtMediaServices::Conductor:
   401         case QtMultimedia::Conductor:
   450         case QtMediaServices::Lyrics:
   402         case QtMultimedia::Lyrics:
   451         case QtMediaServices::Mood:
   403         case QtMultimedia::Mood:
   452         case QtMediaServices::TrackCount:
   404         case QtMultimedia::TrackCount:
   453         case QtMediaServices::CoverArtUrlSmall:
   405         case QtMultimedia::CoverArtUrlSmall:
   454         case QtMediaServices::CoverArtUrlLarge:
   406         case QtMultimedia::CoverArtUrlLarge:
   455         case QtMediaServices::Resolution:
   407         case QtMultimedia::Resolution:
   456         case QtMediaServices::PixelAspectRatio:
   408         case QtMultimedia::PixelAspectRatio:
   457         case QtMediaServices::VideoFrameRate:
   409         case QtMultimedia::VideoFrameRate:
   458         case QtMediaServices::VideoCodec:
   410         case QtMultimedia::VideoCodec:
   459         case QtMediaServices::PosterUrl:
   411         case QtMultimedia::PosterUrl:
   460         case QtMediaServices::ChapterNumber:
   412         case QtMultimedia::ChapterNumber:
   461         case QtMediaServices::Director:
   413         case QtMultimedia::Director:
   462         case QtMediaServices::LeadPerformer:
   414         case QtMultimedia::LeadPerformer:
   463         case QtMediaServices::Writer:
   415         case QtMultimedia::Writer:
   464         case QtMediaServices::CameraManufacturer:
   416         case QtMultimedia::CameraManufacturer:
   465         case QtMediaServices::CameraModel:
   417         case QtMultimedia::CameraModel:
   466         case QtMediaServices::Event:
   418         case QtMultimedia::Event:
   467         case QtMediaServices::Subject:
   419         case QtMultimedia::Subject:
   468         default:
   420         default:
   469             break;
   421             break;
   470     }
   422     }
   471 
   423 
   472     return QString();
   424     return QString();