File indexing completed on 2024-04-21 04:54:20

0001 /*
0002     SPDX-FileCopyrightText: 2006 Richard Lärkäng <nouseforaname@home.se>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "musicbrainztest.h"
0008 #include "libkcddb/client.h"
0009 #include "libkcddb/cache.h"
0010 #include "libkcddb/lookup.h"
0011 #include "config-musicbrainz.h"
0012 #include <QTest>
0013 
0014 void MusicBrainzTest::testLookup()
0015 {
0016   using namespace KCDDB;
0017 
0018 #ifndef HAVE_MUSICBRAINZ5
0019   QSKIP("This test requires libmusicbrainz", SkipAll);
0020 #endif
0021 
0022   Client c;
0023   c.config().setCacheLookupEnabled(false);
0024   c.config().setFreedbLookupEnabled(false);
0025   c.config().setMusicBrainzLookupEnabled(true);
0026 
0027   TrackOffsetList list;
0028 
0029   //The Liptones / The Latest News
0030   list
0031     << 150
0032     << 9219
0033     << 20386
0034     << 34134
0035     << 51437
0036     << 68809
0037     << 86591
0038     << 106288
0039     << 115568
0040     << 133312
0041     << 155593
0042     << 169832
0043     << 179626
0044     << 194958
0045     << 212506;
0046 
0047   Result r = c.lookup(list);
0048 
0049   QVERIFY(r == Success);
0050 
0051   qDebug() << "Client::lookup gave : " << resultToString(r);
0052 
0053   CDInfoList response = c.lookupResponse();
0054 
0055   qDebug() << "Client::lookup returned : " << response.count() << " entries";
0056 
0057   QVERIFY(response.count() > 0);
0058 
0059   // See https://musicbrainz.org/release/68ec4a09-576c-472e-9103-aed99b6a3ffc for changes
0060   CDInfo i(response.first());
0061   QCOMPARE(i.numberOfTracks(),14);
0062 
0063   QCOMPARE(i.get(Artist).toString(),QString::fromUtf8("The Liptones"));
0064   QCOMPARE(i.get(Title).toString(),QString::fromUtf8("The Latest News"));
0065   // genre not really supported for musicbrainz
0066   QCOMPARE(i.get(Genre).toString(),QString());
0067   QCOMPARE(i.get(Year).toInt(),2002);
0068   QCOMPARE(i.track(0).get(Title).toString(),QString::fromUtf8("Jungle Heat"));
0069   QCOMPARE(i.track(1).get(Title).toString(),QString::fromUtf8("It's All I Hear You Say"));
0070   QCOMPARE(i.track(2).get(Title).toString(),QString::fromUtf8("Girl for Tonight"));
0071   QCOMPARE(i.track(3).get(Title).toString(),QString::fromUtf8("Shoot Em Down"));
0072   QCOMPARE(i.track(4).get(Title).toString(),QString::fromUtf8("Beautiful Day"));
0073   QCOMPARE(i.track(5).get(Title).toString(),QString::fromUtf8("Paranoia"));
0074   QCOMPARE(i.track(6).get(Title).toString(),QString::fromUtf8("My Way"));
0075   QCOMPARE(i.track(7).get(Title).toString(),QString::fromUtf8("Dressed in Pink"));
0076   QCOMPARE(i.track(8).get(Title).toString(),QString::fromUtf8("No Way Out"));
0077   QCOMPARE(i.track(9).get(Title).toString(),QString::fromUtf8("Strange Kind of Justice"));
0078   QCOMPARE(i.track(10).get(Title).toString(),QString::fromUtf8("Waiting Til Midnight"));
0079   QCOMPARE(i.track(11).get(Title).toString(),QString::fromUtf8("Liptones"));
0080   QCOMPARE(i.track(12).get(Title).toString(),QString::fromUtf8("Out With the Boys"));
0081   QCOMPARE(i.track(13).get(Title).toString(),QString::fromUtf8("Free Like a Bird"));
0082   // comments not supported in a simple way
0083   for (int j=0; j < 14; j++)
0084     QCOMPARE(i.track(j).get(Comment).toString(),QString());
0085 
0086   // Make sure it's the same when loaded from the cache again
0087   c.config().setCacheLookupEnabled(true);
0088   c.config().setFreedbLookupEnabled(false);
0089   c.config().setMusicBrainzLookupEnabled(false);
0090 
0091   c.lookup(list);
0092 
0093   response = c.lookupResponse();
0094   QVERIFY(response.count() > 0);
0095 
0096   CDInfo cacheInfo(response.first());
0097   QCOMPARE(i.get(Artist).toString(),cacheInfo.get(Artist).toString());
0098   QCOMPARE(i.get(Title).toString(),cacheInfo.get(Title).toString());
0099   QCOMPARE(i.get(Year).toInt(),cacheInfo.get(Year).toInt());
0100   for (int j=0; j < 14; j++)
0101   {
0102     QCOMPARE(i.track(j).get(Title).toString(),cacheInfo.track(j).get(Title).toString());
0103     QCOMPARE(i.track(j).get(Comment).toString(),cacheInfo.track(j).get(Comment).toString());
0104   }
0105 }
0106 
0107 QTEST_GUILESS_MAIN(MusicBrainzTest)
0108 
0109 #include "moc_musicbrainztest.cpp"