File indexing completed on 2024-05-19 05:00:38

0001 /*
0002  * SPDX-FileCopyrightText: 2016 Elvis Angelaccio <elvis.angelaccio@kde.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  *
0006  */
0007 
0008 #include <QTest>
0009 
0010 #include <KIO/ListJob>
0011 
0012 class ListTest : public QObject
0013 {
0014     Q_OBJECT
0015 
0016 private Q_SLOTS:
0017     void testListJob();
0018 
0019 private:
0020     int m_entries = 0;
0021 };
0022 
0023 QTEST_GUILESS_MAIN(ListTest)
0024 
0025 void ListTest::testListJob()
0026 {
0027     const auto gdriveRoot = QUrl(QStringLiteral("gdrive:/"));
0028     QVERIFY(gdriveRoot.isValid());
0029 
0030     auto listJob = KIO::listDir(gdriveRoot, KIO::HideProgressInfo);
0031     listJob->setUiDelegate(nullptr);
0032     QVERIFY(listJob);
0033 
0034     connect(listJob, &KIO::ListJob::entries, this, [=](KIO::Job *, const KIO::UDSEntryList &list) {
0035         m_entries = list.count();
0036         for (const auto &entry : list) {
0037             // Check properties of new-account entry.
0038             if (entry.stringValue(KIO::UDSEntry::UDS_NAME) == QLatin1String("new-account")) {
0039                 QVERIFY(entry.isDir());
0040                 QCOMPARE(entry.stringValue(KIO::UDSEntry::UDS_ICON_NAME), QStringLiteral("list-add-user"));
0041             }
0042         }
0043     });
0044 
0045     connect(listJob, &KJob::result, this, [=](KJob *job) {
0046         QVERIFY(!job->error());
0047         // At least new-account entry.
0048         QVERIFY(m_entries > 0);
0049     });
0050 
0051     QEventLoop eventLoop;
0052     connect(listJob, &KJob::finished, &eventLoop, &QEventLoop::quit);
0053     eventLoop.exec();
0054 }
0055 
0056 #include "listtest.moc"