File indexing completed on 2024-04-28 03:54:48

0001 /*
0002 
0003     SPDX-FileCopyrightText: 2023 Nicolas Fella <nicolas.fella@gmx.de>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #include <KIO/TransferJob>
0009 
0010 #include <QSignalSpy>
0011 #include <QTest>
0012 
0013 class AcceptTest : public QObject
0014 {
0015     Q_OBJECT
0016 private Q_SLOTS:
0017     void testGet();
0018     void testGet_data();
0019 };
0020 
0021 void AcceptTest::testGet_data()
0022 {
0023     QTest::addColumn<QString>("url");
0024     QTest::addColumn<QString>("accept");
0025     QTest::addColumn<QByteArray>("expectedData");
0026 
0027     QTest::addRow("html") << "http://localhost:5000/accept/rss"
0028                           << QStringLiteral("application/rss+xml;q=0.9, application/atom+xml;q=0.9, text/*;q=0.8, */*;q=0.7") << QByteArray("Hello");
0029 }
0030 
0031 void AcceptTest::testGet()
0032 {
0033     QFETCH(QString, url);
0034     QFETCH(QString, accept);
0035     QFETCH(QByteArray, expectedData);
0036 
0037     auto *job = KIO::get(QUrl(url));
0038 
0039     job->addMetaData(QStringLiteral("accept"), accept);
0040 
0041     QSignalSpy dataSpy(job, &KIO::TransferJob::data);
0042     QSignalSpy spy(job, &KJob::finished);
0043     spy.wait();
0044     QVERIFY(spy.size());
0045 
0046     QVERIFY(dataSpy.count());
0047     const QByteArray actualData = dataSpy.first().at(1).toByteArray();
0048     QCOMPARE(actualData, expectedData);
0049 
0050     qWarning() << job->error() << job->errorString();
0051     QCOMPARE(job->error(), KJob::NoError);
0052 }
0053 
0054 QTEST_GUILESS_MAIN(AcceptTest)
0055 
0056 #include "accepttest.moc"