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 CustomHeaderTest : public QObject
0014 {
0015     Q_OBJECT
0016 private Q_SLOTS:
0017     void testGet();
0018     void testGet_data();
0019 };
0020 
0021 void CustomHeaderTest::testGet_data()
0022 {
0023     QTest::addColumn<QString>("url");
0024     QTest::addColumn<QString>("headers");
0025     QTest::addColumn<QByteArray>("expectedData");
0026 
0027     QTest::addRow("html") << "http://localhost:5000/headers/pineapple" << QStringLiteral("Pineapple: Ananas") << QByteArray("Hello");
0028 
0029     QTest::addRow("html") << "http://localhost:5000/headers/pizza" << QStringLiteral("Pineapple: Ananas\r\nPizza: yes") << QByteArray("🤌");
0030 }
0031 
0032 void CustomHeaderTest::testGet()
0033 {
0034     QFETCH(QString, url);
0035     QFETCH(QString, headers);
0036     QFETCH(QByteArray, expectedData);
0037 
0038     auto *job = KIO::get(QUrl(url));
0039 
0040     job->addMetaData(QStringLiteral("customHTTPHeader"), headers);
0041 
0042     QSignalSpy dataSpy(job, &KIO::TransferJob::data);
0043     QSignalSpy spy(job, &KJob::finished);
0044     spy.wait();
0045     QVERIFY(spy.size());
0046 
0047     QVERIFY(dataSpy.count());
0048     const QByteArray actualData = dataSpy.first().at(1).toByteArray();
0049     QCOMPARE(actualData, expectedData);
0050 
0051     qWarning() << job->error() << job->errorString();
0052     QCOMPARE(job->error(), KJob::NoError);
0053 }
0054 
0055 QTEST_GUILESS_MAIN(CustomHeaderTest)
0056 
0057 #include "customheadertest.moc"