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