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"