diff --git a/src/libdanbooru/tests/test_apis.cpp b/src/libdanbooru/tests/test_apis.cpp index 0ae9b0f..c60d71b 100644 --- a/src/libdanbooru/tests/test_apis.cpp +++ b/src/libdanbooru/tests/test_apis.cpp @@ -1,19 +1,40 @@ +/* + * Copyright 2018 Luca Beltrame + * + * This file is part of Danbooru Client. + * + * Danbooru Client is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Danbooru Client is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Danbooru Client. If not, see . + */ -#include "test_konachan.h" +#include "test_service.h" +#include "../danbooru.h" +#include "../servicebase.h" #include #include +#include #include -void runTest(QUrl apiUrl); +void runTest(QUrl apiUrl, Danbooru::ApiType apiType); void runPostTest(); void runNextPostPageTest(); void runPoolTest(); void runPoolRetrieval(); -void runYandeReTest(); +template class ServiceTest; -Danbooru::KonachanServiceTest* testSvc = 0; +Danbooru::DanbooruServiceTest* testSvc = nullptr; int main(int argc, char *argv[]) { QApplication app(argc, argv); @@ -24,31 +45,36 @@ int main(int argc, char *argv[]) { QCommandLineOption testKonachan("test-konachan", "Run Konachan.com tests"); QCommandLineOption testYandeRe("test-yandere", "Run yande.re tests"); + QCommandLineOption testDonmai("test-danbooru", "Run danbooru.donmai.us tests"); - cmdParser.addOptions({testKonachan, testYandeRe}); + cmdParser.addOptions({testKonachan, testYandeRe, testDonmai}); cmdParser.process(app); if (cmdParser.isSet(testKonachan)) { qDebug() << "Starting Konachan.com test"; - runTest(QUrl("http://konachan.com")); + runTest(QUrl("http://konachan.net"), Danbooru::MoeBooru); } else if (cmdParser.isSet(testYandeRe)) { qDebug() << "Starting yande.re test"; - runTest(QUrl("http://yande.re")); + runTest(QUrl("http://yande.re"), Danbooru::MoeBooru); + } else if (cmdParser.isSet(testDonmai)) { + runTest(QUrl("http://danbooru.donmai.us"), Danbooru::Danbooru); + } else { + cmdParser.showHelp(); } app.exec(); } -void runTest(QUrl apiUrl) +void runTest(QUrl apiUrl, Danbooru::ApiType apiType) { - testSvc = new Danbooru::KonachanServiceTest(apiUrl); - + testSvc = new Danbooru::DanbooruServiceTest(apiUrl, apiType); QObject::connect(testSvc->service(), &Danbooru::DanbooruServiceBase::postDownloadFinished, testSvc, &runNextPostPageTest); - QObject::connect(testSvc->service(), &Danbooru::DanbooruServiceBase::poolDownloadFinished, - testSvc, &runPoolRetrieval); - qDebug() << "--- POST TEST ---"; + testSvc->testPostService(); + + qDebug() << "--- POST TEST ---"; + } @@ -67,6 +93,8 @@ void runPoolTest() { QObject::disconnect(testSvc->service(), &Danbooru::DanbooruServiceBase::postDownloadFinished, testSvc, 0); + QObject::connect(testSvc->service(), &Danbooru::DanbooruServiceBase::poolDownloadFinished, + testSvc, &runPoolRetrieval); testSvc->service()->nextPostPage(); qDebug() << "--- POOL TEST ---"; testSvc->testPoolService(); @@ -76,6 +104,10 @@ void runPoolRetrieval() { QObject::disconnect(testSvc->service(), &Danbooru::DanbooruServiceBase::poolDownloadFinished, testSvc, 0); + QObject::connect(testSvc->service(), &Danbooru::DanbooruServiceBase::postDownloadFinished, + testSvc, [=]() { + QThread::sleep(5); + QApplication::quit();}); qDebug() << "--- POOL RETRIEVAL TEST ---"; testSvc->testPoolRetrieval(300); }