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"