File indexing completed on 2024-05-12 05:13:44

0001 /*
0002     SPDX-FileCopyrightText: 2019 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "testhelper.h"
0008 
0009 #include "documentsmodel.h"
0010 #include "documentmanager.h"
0011 #include "timelinedelegatecontroller.h"
0012 
0013 #include <QAbstractItemModelTester>
0014 #include <QtTest/qtest.h>
0015 #include <QSignalSpy>
0016 #include <QStandardPaths>
0017 
0018 class DocumentsModelTest : public QObject
0019 {
0020     Q_OBJECT
0021 private Q_SLOTS:
0022     void initTestCase()
0023     {
0024         qputenv("TZ", "UTC");
0025         QStandardPaths::setTestModeEnabled(true);
0026     }
0027 
0028     void testReservationDocuments()
0029     {
0030         DocumentManager mgr;
0031         Test::clearAll(&mgr);
0032 
0033         DocumentsModel model;
0034         QAbstractItemModelTester modelTest(&model);
0035         model.setDocumentManager(&mgr);
0036         QCOMPARE(model.rowCount(), 0);
0037 
0038         auto ctrl = Test::makeAppController();
0039         ctrl->setDocumentManager(&mgr);
0040         ReservationManager resMgr;
0041         Test::clearAll(&resMgr);
0042         ctrl->setReservationManager(&resMgr);
0043         ctrl->importFromUrl(QUrl::fromLocalFile(QLatin1StringView(SOURCE_DIR "/data/iata-bcbp-demo.pdf")));
0044         QCOMPARE(resMgr.batches().size(), 1);
0045         QCOMPARE(mgr.documents().size(), 1);
0046 
0047         TimelineDelegateController c;
0048         c.setReservationManager(&resMgr);
0049         c.setDocumentManager(&mgr);
0050         c.setBatchId(resMgr.batches().at(0));
0051         QCOMPARE(c.documentIds().size(), 1);
0052 
0053         model.setDocumentIds(c.documentIds());
0054         QCOMPARE(model.rowCount(), 1);
0055         const auto idx = model.index(0, 0);
0056         QCOMPARE(idx.data(Qt::DisplayRole), QLatin1StringView("iata-bcbp-demo.pdf"));
0057         QCOMPARE(idx.data(Qt::DecorationRole), QLatin1StringView("application-pdf"));
0058 
0059         model.setDocumentIds({});
0060         QCOMPARE(model.rowCount(), 0);
0061     }
0062 };
0063 
0064 QTEST_GUILESS_MAIN(DocumentsModelTest)
0065 
0066 #include "documentsmodeltest.moc"