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 PutTest : public QObject 0014 { 0015 Q_OBJECT 0016 private Q_SLOTS: 0017 void testGet(); 0018 void testGet_data(); 0019 }; 0020 0021 void PutTest::testGet_data() 0022 { 0023 QTest::addColumn<QString>("url"); 0024 QTest::addColumn<QByteArray>("inputData"); 0025 0026 QTest::addRow("put") << "http://localhost:5000/put/bla" << QByteArray("<p>Hello, World!</p>"); 0027 } 0028 0029 void PutTest::testGet() 0030 { 0031 QFETCH(QString, url); 0032 QFETCH(QByteArray, inputData); 0033 0034 auto *job = KIO::put(QUrl(url), -1); 0035 job->addMetaData("content-type", "text/html"); 0036 0037 int dataReqCounter = 0; 0038 connect(job, &KIO::TransferJob::dataReq, this, [inputData, &dataReqCounter](KJob * /*job*/, QByteArray &data) { 0039 if (dataReqCounter < 3) { 0040 data = inputData; 0041 } 0042 dataReqCounter++; 0043 }); 0044 0045 QSignalSpy dataSpy(job, &KIO::TransferJob::data); 0046 QSignalSpy spy(job, &KJob::finished); 0047 spy.wait(); 0048 QVERIFY(spy.size()); 0049 QCOMPARE(dataReqCounter, 4); 0050 0051 QVERIFY(dataSpy.count()); 0052 const QByteArray actualData = dataSpy.first().at(1).toByteArray(); 0053 QCOMPARE(actualData, inputData + inputData + inputData); 0054 0055 QCOMPARE(job->error(), KJob::NoError); 0056 } 0057 0058 QTEST_GUILESS_MAIN(PutTest) 0059 0060 #include "puttest.moc"