File indexing completed on 2024-04-28 07:42:26

0001 /*
0002     SPDX-FileCopyrightText: 2017 Sandro Knauß <sknauss@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "davitemfetchjobtest.h"
0008 #include "fakeserver.h"
0009 
0010 #include <KDAV/DavItemFetchJob>
0011 
0012 #include <QTest>
0013 
0014 void DavItemFetchJobTest::initTestCase()
0015 {
0016     // To let ctest exit, we shouldn't start kio_http_cache_cleaner
0017     qputenv("KIO_DISABLE_CACHE_CLEANER", "yes");
0018 }
0019 
0020 void DavItemFetchJobTest::runSuccessfullTest()
0021 {
0022     FakeServer fakeServer(5989);
0023     QUrl url(QStringLiteral("http://localhost/item"));
0024     url.setPort(fakeServer.port());
0025     KDAV::DavUrl davUrl(url, KDAV::CardDav);
0026 
0027     KDAV::DavItem item(davUrl, QString(), QByteArray(), QString());
0028 
0029     auto job = new KDAV::DavItemFetchJob(item);
0030 
0031     fakeServer.addScenarioFromFile(QLatin1String(AUTOTEST_DATA_DIR) + QStringLiteral("/dataitemfetchjob.txt"));
0032     fakeServer.startAndWait();
0033     job->exec();
0034 
0035     QVERIFY(fakeServer.isAllScenarioDone());
0036     QCOMPARE(job->error(), 0);
0037 
0038     QCOMPARE(item.data(), QByteArray());
0039     QCOMPARE(item.etag(), QString());
0040     QCOMPARE(item.contentType(), QString());
0041 
0042     item = job->item();
0043     QByteArray data(
0044         "BEGIN:VCARD\r\nVERSION:3.0\r\nPRODID:-//Kolab//iRony DAV Server 0.3.1//Sabre//Sabre VObject "
0045         "2.1.7//EN\r\nUID:12345678-1234-1234-1234-123456789abc\r\nFN:John2 "
0046         "Doe\r\nN:Doe;John2;;;\r\nEMAIL;TYPE=INTERNET;TYPE=HOME:john2.doe@example.com\r\nREV;VALUE=DATE-TIME:20170104T182647Z\r\nEND:VCARD\r\n");
0047     QCOMPARE(item.data(), data);
0048     QCOMPARE(item.etag(), QStringLiteral("7a33141f192d904d-47"));
0049     QCOMPARE(item.contentType(), QStringLiteral("text/x-vcard"));
0050 }
0051 
0052 QTEST_MAIN(DavItemFetchJobTest)
0053 
0054 #include "moc_davitemfetchjobtest.cpp"