File indexing completed on 2024-05-05 04:55:40
0001 /** 0002 * \file testdiscogsimporter.cpp 0003 * Test import from Discogs server. 0004 * 0005 * \b Project: Kid3 0006 * \author Urs Fleisch 0007 * \date 09 Oct 2012 0008 * 0009 * Copyright (C) 2012-2021 Urs Fleisch 0010 * 0011 * This file is part of Kid3. 0012 * 0013 * Kid3 is free software; you can redistribute it and/or modify 0014 * it under the terms of the GNU General Public License as published by 0015 * the Free Software Foundation; either version 2 of the License, or 0016 * (at your option) any later version. 0017 * 0018 * Kid3 is distributed in the hope that it will be useful, 0019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0021 * GNU General Public License for more details. 0022 * 0023 * You should have received a copy of the GNU General Public License 0024 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0025 */ 0026 0027 #include "testdiscogsimporter.h" 0028 #include <QTest> 0029 #include "serverimporter.h" 0030 #include "trackdatamodel.h" 0031 0032 void TestDiscogsImporter::initTestCase() 0033 { 0034 setServerImporter(QLatin1String("DiscogsImport")); 0035 } 0036 0037 void TestDiscogsImporter::testQueryAlbums() 0038 { 0039 queryAlbums(QLatin1String("Wizard"), QLatin1String("Odin")); 0040 0041 AlbumListModel* albumModel = m_importer->getAlbumListModel(); 0042 QVERIFY(albumModel->rowCount() > 0); 0043 QString text, category, id; 0044 albumModel->getItem(0, text, category, id); 0045 QCOMPARE(text, QString(QLatin1String("Wizard - Odin (2003) [CD, Album, Enh, Ltd, Dig]"))); 0046 QVERIFY(QStringList({QLatin1String("Wizard-Odin/release"), QLatin1String("release")}) 0047 .contains(category)); 0048 QVERIFY(!id.isEmpty()); 0049 } 0050 0051 void TestDiscogsImporter::testQueryTracks() 0052 { 0053 queryTracks(QLatin1String("Wizard-Odin/release"), QLatin1String("2487778")); 0054 0055 QStringList titles; 0056 titles << QLatin1String("The Prophecy") << QLatin1String("Betrayer") 0057 << QLatin1String("Dead Hope") << QLatin1String("Dark God") 0058 << QLatin1String("Lokis Punishment") 0059 << QLatin1String("Beginning Of The End") 0060 << QLatin1String("Thor's Hammer") 0061 << QLatin1String("Hall Of Odin") << QLatin1String("The Powergod") 0062 << QLatin1String("March Of The Einherjers") 0063 << QLatin1String("End Of All") 0064 << QLatin1String("Ultimate War (Bonus Track)") 0065 << QLatin1String("Golden Dawn (Bonus Track)") 0066 << QLatin1String("Betrayer"); 0067 QStringList lengths; 0068 lengths << QLatin1String("5:19") << QLatin1String("4:53") 0069 << QLatin1String("6:02") << QLatin1String("5:43") 0070 << QLatin1String("5:08") << QLatin1String("4:01") 0071 << QLatin1String("5:01") << QLatin1String("5:06") 0072 << QLatin1String("5:21") << QLatin1String("5:40") 0073 << QLatin1String("3:53") << QLatin1String("4:52") 0074 << QLatin1String("5:05") << QLatin1String(""); 0075 QCOMPARE(m_trackDataModel->rowCount(), 14); 0076 for (int row = 0; row < 14; ++row) { 0077 QCOMPARE(m_trackDataModel->index(row, 0).data().toString(), lengths.at(row)); 0078 QCOMPARE(m_trackDataModel->index(row, 3).data().toInt(), row + 1); 0079 QCOMPARE(m_trackDataModel->index(row, 4).data().toString(), titles.at(row)); 0080 QCOMPARE(m_trackDataModel->index(row, 5).data().toString(), 0081 QString(QLatin1String("Wizard"))); 0082 QCOMPARE(m_trackDataModel->index(row, 6).data().toString(), 0083 QString(QLatin1String("Odin"))); 0084 QCOMPARE(m_trackDataModel->index(row, 7).data().toInt(), 2003); 0085 QCOMPARE(m_trackDataModel->index(row, 8).data().toString(), 0086 QString(QLatin1String("Heavy Metal|Power Metal|Speed Metal"))); 0087 QCOMPARE(m_trackDataModel->index(row, 9).data().toString(), 0088 QString(QLatin1String(""))); 0089 auto arranger = m_trackDataModel->index(row, 10).data().toString(); 0090 QVERIFY(arranger.contains(QLatin1String("Producer|Peter Fundeis")) && 0091 arranger.contains(QLatin1String("Mixer|Piet Sielck"))); 0092 QCOMPARE(m_trackDataModel->index(row, 11).data().toString(), 0093 QString(QLatin1String("Wizard"))); 0094 QVERIFY(m_trackDataModel->index(row, 12).data().toString() 0095 .contains(QLatin1String("CD"))); 0096 auto performer = m_trackDataModel->index(row, 13).data().toString(); 0097 QVERIFY(performer.contains(QLatin1String("Bass|Volker Leson")) && 0098 performer.contains(QLatin1String("Vocals|Sven D'Anna"))); 0099 QCOMPARE(m_trackDataModel->index(row, 14).data().toString(), 0100 QString(QLatin1String("LMP"))); 0101 QCOMPARE(m_trackDataModel->index(row, 15).data().toString(), 0102 QString(QLatin1String("Germany"))); 0103 } 0104 }