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

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 "asynccddblookuptest.h"
0008 #include "libkcddb/cache.h"
0009 #include "libkcddb/lookup.h"
0010 #include <QTest>
0011 
0012 void AsyncCDDBLookupTest::testLookup()
0013 {
0014   using namespace KCDDB;
0015 
0016   client_ = new Client;
0017   client_->config().setHostname(QString::fromUtf8("gnudb.gnudb.org"));
0018   client_->config().setPort(8880);
0019   client_->config().setCacheLookupEnabled(false);
0020   client_->config().setFreedbLookupEnabled(true);
0021   client_->config().setMusicBrainzLookupEnabled(false);
0022   client_->config().setFreedbLookupTransport(Lookup::CDDBP);
0023   client_->setBlockingMode( false );
0024 
0025   connect(client_,&KCDDB::Client::finished,this, &AsyncCDDBLookupTest::slotFinished);
0026 
0027   TrackOffsetList list;
0028 
0029   // a1107d0a - Kruder & Dorfmeister - The K&D Sessions - Disc One.
0030   list
0031     << 150      // First track start.
0032     << 29462
0033     << 66983
0034     << 96785
0035     << 135628
0036     << 168676
0037     << 194147
0038     << 222158
0039     << 247076
0040     << 278203   // Last track start.
0041     << 316732;  // Disc end.
0042 
0043   client_->lookup(list);
0044 
0045   m_eventLoop.exec(QEventLoop::ExcludeUserInputEvents);
0046 
0047   delete client_;
0048 
0049   QVERIFY(m_result == Success);
0050 
0051   // If revision doesn't match, test probably needs to be updated
0052   // See: http://www.gnudb.org/gnudb/jazz/a1107d0a for updated data
0053   QCOMPARE(m_info.get(QString::fromUtf8("revision")).toInt(), 8);
0054 
0055   QCOMPARE(m_info.get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0056   QCOMPARE(m_info.get(Title).toString(),QString::fromUtf8("The K&D Sessions (Part One)"));
0057   QCOMPARE(m_info.get(Genre).toString(),QString::fromUtf8("Trip-Hop"));
0058   QCOMPARE(m_info.get(Year).toInt(),1998);
0059   QCOMPARE(m_info.track(0).get(Title).toString(),QString::fromUtf8("Roni Size - Heroes (Kruder's Long Loose Bossa remixed by Peter Kruder)"));
0060   QCOMPARE(m_info.track(1).get(Title).toString(),QString::fromUtf8("Alex Reece - Jazz Master (K&D Session)"));
0061   QCOMPARE(m_info.track(2).get(Title).toString(),QString::fromUtf8("Count Basic - Speechless (Drum 'n' Bass remixed by Peter Kruder)"));
0062   QCOMPARE(m_info.track(3).get(Title).toString(),QString::fromUtf8("Rockers Hi-Fi - Going Under (K&D Session)"));
0063   QCOMPARE(m_info.track(4).get(Title).toString(),QString::fromUtf8("Bomb The Bass - Bug Powder Dust (K&D Session)"));
0064   QCOMPARE(m_info.track(5).get(Title).toString(),QString::fromUtf8("Aphrodelics - Rollin' On Chrome (Wild Motherfucker Dub remixed by Richard Dorfmeister)"));
0065   QCOMPARE(m_info.track(6).get(Title).toString(),QString::fromUtf8("Depeche Mode - Useless (K&D Session)"));
0066   QCOMPARE(m_info.track(7).get(Title).toString(),QString::fromUtf8("Count Basic - Gotta Jazz (remixed by Richard Dorfmeister)"));
0067   QCOMPARE(m_info.track(8).get(Title).toString(),QString::fromUtf8("Rainer Truby Trio - Donaueschingen (Peter Kruder's Donaudampfschifffahrtsgesellschaftskapitnskajtenremix)"));
0068   QCOMPARE(m_info.track(9).get(Title).toString(),QString::fromUtf8("Lamb - Trans Fatty Acid (K&D Session)"));
0069   QCOMPARE(m_info.track(0).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0070   QCOMPARE(m_info.track(1).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0071   QCOMPARE(m_info.track(2).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0072   QCOMPARE(m_info.track(3).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0073   QCOMPARE(m_info.track(4).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0074   QCOMPARE(m_info.track(5).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0075   QCOMPARE(m_info.track(6).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0076   QCOMPARE(m_info.track(7).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0077   QCOMPARE(m_info.track(8).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0078   QCOMPARE(m_info.track(9).get(Artist).toString(),QString::fromUtf8("Kruder & Dorfmeister"));
0079 }
0080 
0081   void
0082 AsyncCDDBLookupTest::slotFinished(Result r)
0083 {
0084   m_result = r;
0085   qDebug() << "AsyncCDDBLookupTest::slotResult: Got " << KCDDB::resultToString(r);
0086 
0087   const CDInfoList l = client_->lookupResponse();
0088 
0089   qDebug() << "AsyncCDDBLookupTest::slotResult: Item count: " <<  l.count();
0090 
0091   for (const CDInfo &i : l) {
0092     if (i.get(QString::fromUtf8("discid")) == QString::fromUtf8("a1107d0a") && i.get(Category) == QString::fromUtf8("jazz"))
0093     {
0094       qDebug() << "Found the CD";
0095       m_info = i;
0096       break;
0097     }
0098   }
0099 
0100   m_eventLoop.quit();
0101 }
0102 
0103 QTEST_GUILESS_MAIN(AsyncCDDBLookupTest)
0104 
0105 #include "moc_asynccddblookuptest.cpp"