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-severaldiscs.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 MusicBrainzTestSeveralDiscs::initMain() 0015 { 0016 qputenv("LANG", "C.UTF-8"); 0017 qputenv("LANGUAGE", "C.UTF-8"); 0018 } 0019 0020 void MusicBrainzTestSeveralDiscs::testLookup() 0021 { 0022 using namespace KCDDB; 0023 0024 #ifndef HAVE_MUSICBRAINZ5 0025 QSKIP("This test requires libmusicbrainz", SkipAll); 0026 #endif 0027 0028 Client c; 0029 c.config().setCacheLookupEnabled(false); 0030 c.config().setFreedbLookupEnabled(false); 0031 c.config().setMusicBrainzLookupEnabled(true); 0032 0033 TrackOffsetList list; 0034 0035 list << 0036 150 << 0037 17272 << 0038 36395 << 0039 47954 << 0040 63638 << 0041 77928 << 0042 95029 << 0043 112094 << 0044 130540 << 0045 145938 << 0046 160463 << 0047 180364 << 0048 195549 << 0049 203821 << 0050 222410 << 0051 230367 << 0052 249241 << 0053 273944 << 0054 287584 << 0055 309904 << 0056 325124; 0057 0058 Result r = c.lookup(list); 0059 0060 QVERIFY(r == Success); 0061 0062 qDebug() << "Client::lookup gave : " << resultToString(r); 0063 0064 CDInfoList response = c.lookupResponse(); 0065 0066 qDebug() << "Client::lookup returned : " << response.count() << " entries"; 0067 0068 QVERIFY(response.count() > 0); 0069 0070 // See https://musicbrainz.org/release/4e0655b5-22fc-496e-9c14-2ee1a6027b45 for changes (disc 2) 0071 CDInfo i(response.first()); 0072 QCOMPARE(i.numberOfTracks(),20); 0073 0074 QCOMPARE(i.get(Artist).toString(),QString::fromUtf8("Billy Bragg")); 0075 QCOMPARE(i.get(Title).toString(),QString::fromUtf8("Must I Paint You a Picture? The Essential Billy Bragg (disc 2)")); 0076 // genre not really supported for musicbrainz 0077 QCOMPARE(i.get(Genre).toString(),QString()); 0078 QCOMPARE(i.get(Year).toInt(),2003); 0079 QCOMPARE(i.track(0).get(Title).toString(),QString::fromUtf8("Sexuality")); 0080 QCOMPARE(i.track(1).get(Title).toString(),QString::fromUtf8("Cindy of 1000 Lives")); 0081 QCOMPARE(i.track(2).get(Title).toString(),QString::fromUtf8("Moving the Goalposts")); 0082 QCOMPARE(i.track(3).get(Title).toString(),QString::fromUtf8("Tank Park Salute")); 0083 QCOMPARE(i.track(4).get(Title).toString(),QString::fromUtf8("You Woke Up My Neighbourhood")); 0084 QCOMPARE(i.track(5).get(Title).toString(),QString::fromUtf8("Accident Waiting to Happen (Red Stars version)")); 0085 QCOMPARE(i.track(6).get(Title).toString(),QString::fromUtf8("Sulk")); 0086 QCOMPARE(i.track(7).get(Title).toString(),QString::fromUtf8("Upfield")); 0087 QCOMPARE(i.track(8).get(Title).toString(),QString::fromUtf8("The Fourteenth of February")); 0088 QCOMPARE(i.track(9).get(Title).toString(),QString::fromUtf8("Brickbat")); 0089 QCOMPARE(i.track(10).get(Title).toString(),QString::fromUtf8("The Space Race Is Over")); 0090 QCOMPARE(i.track(11).get(Title).toString(),QString::fromUtf8("The Boy Done Good")); 0091 QCOMPARE(i.track(12).get(Title).toString(),QString::fromUtf8("Ingrid Bergman")); 0092 QCOMPARE(i.track(13).get(Title).toString(),QString::fromUtf8("Way Over Yonder in the Minor Key")); 0093 QCOMPARE(i.track(14).get(Title).toString(),QString::fromUtf8("My Flying Saucer")); 0094 QCOMPARE(i.track(15).get(Title).toString(),QString::fromUtf8("All You Fascists Bound to Lose (Blokes version)")); 0095 QCOMPARE(i.track(16).get(Title).toString(),QString::fromUtf8("NPWA")); 0096 QCOMPARE(i.track(17).get(Title).toString(),QString::fromUtf8("St. Monday")); 0097 QCOMPARE(i.track(18).get(Title).toString(),QString::fromUtf8("Somedays I See the Point")); 0098 QCOMPARE(i.track(19).get(Title).toString(),QString::fromUtf8("Take Down the Union Jack (Band version)")); 0099 for (int j=0; j < 12; j++) 0100 QCOMPARE(i.track(j).get(Artist).toString(),QString::fromUtf8("Billy Bragg")); 0101 for (int j=12; j < 15; j++) 0102 QCOMPARE(i.track(j).get(Artist).toString(),QString::fromUtf8("Billy Bragg & Wilco")); 0103 for (int j=15; j < 20; j++) 0104 QCOMPARE(i.track(j).get(Artist).toString(),QString::fromUtf8("Billy Bragg and The Blokes")); 0105 // comments not supported in a simple way 0106 for (int j=0; j < 19; j++) 0107 QCOMPARE(i.track(j).get(Comment).toString(),QString()); 0108 0109 // Make sure it's the same when loaded from the cache again 0110 c.config().setCacheLookupEnabled(true); 0111 c.config().setFreedbLookupEnabled(false); 0112 c.config().setMusicBrainzLookupEnabled(false); 0113 0114 c.lookup(list); 0115 0116 response = c.lookupResponse(); 0117 QVERIFY(response.count() > 0); 0118 0119 CDInfo cacheInfo(response.first()); 0120 QCOMPARE(i.get(Artist).toString(),cacheInfo.get(Artist).toString()); 0121 QCOMPARE(i.get(Title).toString(),cacheInfo.get(Title).toString()); 0122 QCOMPARE(i.get(Year).toInt(),cacheInfo.get(Year).toInt()); 0123 for (int j=0; j < 19; j++) 0124 { 0125 QCOMPARE(i.track(j).get(Title).toString(),cacheInfo.track(j).get(Title).toString()); 0126 QCOMPARE(i.track(j).get(Comment).toString(),cacheInfo.track(j).get(Comment).toString()); 0127 } 0128 } 0129 0130 QTEST_GUILESS_MAIN(MusicBrainzTestSeveralDiscs) 0131 0132 #include "moc_musicbrainztest-severaldiscs.cpp"