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 ErrorTest : public QObject 0014 { 0015 Q_OBJECT 0016 private Q_SLOTS: 0017 void testGet(); 0018 void testGet_data(); 0019 0020 void testPut(); 0021 void testPut_data(); 0022 }; 0023 0024 void ErrorTest::testGet_data() 0025 { 0026 QTest::addColumn<QString>("url"); 0027 QTest::addColumn<int>("expectedError"); 0028 0029 QTest::addRow("noerror") << "http://localhost:5000/error/no" << (int)KJob::NoError; 0030 QTest::addRow("404") << "http://localhost:5000/error/404" << (int)KIO::ERR_DOES_NOT_EXIST; 0031 QTest::addRow("400") << "http://localhost:5000/error/400" << (int)KIO::ERR_DOES_NOT_EXIST; 0032 QTest::addRow("403") << "http://localhost:5000/error/403" << (int)KIO::ERR_DOES_NOT_EXIST; 0033 QTest::addRow("451") << "http://localhost:5000/error/451" << (int)KIO::ERR_DOES_NOT_EXIST; 0034 QTest::addRow("500") << "http://localhost:5000/error/500" << (int)KIO::ERR_INTERNAL_SERVER; 0035 QTest::addRow("502") << "http://localhost:5000/error/502" << (int)KIO::ERR_INTERNAL_SERVER; 0036 QTest::addRow("507") << "http://localhost:5000/error/507" << (int)KIO::ERR_INTERNAL_SERVER; 0037 } 0038 0039 void ErrorTest::testGet() 0040 { 0041 QFETCH(QString, url); 0042 QFETCH(int, expectedError); 0043 0044 auto *job = KIO::get(QUrl(url)); 0045 0046 QSignalSpy dataSpy(job, &KIO::TransferJob::data); 0047 QSignalSpy spy(job, &KJob::finished); 0048 spy.wait(); 0049 QVERIFY(spy.size()); 0050 0051 QCOMPARE(job->error(), expectedError); 0052 } 0053 0054 void ErrorTest::testPut_data() 0055 { 0056 QTest::addColumn<QString>("url"); 0057 QTest::addColumn<int>("expectedError"); 0058 0059 QTest::addRow("noerror") << "http://localhost:5000/error/no" << (int)KJob::NoError; 0060 QTest::addRow("404") << "http://localhost:5000/error/404" << (int)KIO::ERR_DOES_NOT_EXIST; 0061 QTest::addRow("400") << "http://localhost:5000/error/400" << (int)KIO::ERR_DOES_NOT_EXIST; 0062 QTest::addRow("403") << "http://localhost:5000/error/403" << (int)KIO::ERR_DOES_NOT_EXIST; 0063 QTest::addRow("405") << "http://localhost:5000/error/405" << (int)KIO::ERR_DOES_NOT_EXIST; 0064 QTest::addRow("451") << "http://localhost:5000/error/451" << (int)KIO::ERR_DOES_NOT_EXIST; 0065 QTest::addRow("500") << "http://localhost:5000/error/500" << (int)KIO::ERR_INTERNAL_SERVER; 0066 QTest::addRow("502") << "http://localhost:5000/error/502" << (int)KIO::ERR_INTERNAL_SERVER; 0067 QTest::addRow("507") << "http://localhost:5000/error/507" << (int)KIO::ERR_INTERNAL_SERVER; 0068 } 0069 0070 void ErrorTest::testPut() 0071 { 0072 QFETCH(QString, url); 0073 QFETCH(int, expectedError); 0074 0075 auto *job = KIO::put(QUrl(url), -1); 0076 0077 QSignalSpy dataSpy(job, &KIO::TransferJob::data); 0078 QSignalSpy spy(job, &KJob::finished); 0079 spy.wait(); 0080 QVERIFY(spy.size()); 0081 0082 QCOMPARE(job->error(), expectedError); 0083 } 0084 0085 QTEST_GUILESS_MAIN(ErrorTest) 0086 0087 #include "errortest.moc"