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"