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"