File indexing completed on 2024-06-23 05:49:22
0001 /* 0002 This file is part of the Kasten Framework, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2007, 2011 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "documentmanagertest.hpp" 0010 0011 // sut 0012 #include <documentmanager.hpp> 0013 // test 0014 #include <testdocument.hpp> 0015 // Qt 0016 #include <QTest> 0017 #include <QSignalSpy> 0018 0019 void DocumentManagerTest::checkAdded(QSignalSpy* changedSpy, Kasten::AbstractDocument* document) 0020 { 0021 QVERIFY(changedSpy->isValid()); 0022 QCOMPARE(changedSpy->size(), 1); 0023 const QList<QVariant> arguments = changedSpy->takeFirst(); 0024 QCOMPARE(arguments.size(), 1); 0025 const QVector<Kasten::AbstractDocument*> documents = 0026 arguments.at(0).value<QVector<Kasten::AbstractDocument*>>(); 0027 QCOMPARE(documents.size(), 1); 0028 QCOMPARE(documents.at(0), document); 0029 } 0030 0031 void DocumentManagerTest::checkRemoving(QSignalSpy* changedSpy, Kasten::AbstractDocument* document) 0032 { 0033 QVERIFY(changedSpy->isValid()); 0034 QCOMPARE(changedSpy->size(), 1); 0035 const QList<QVariant> arguments = changedSpy->takeFirst(); 0036 QCOMPARE(arguments.size(), 1); 0037 const QVector<Kasten::AbstractDocument*> documents = 0038 arguments.at(0).value<QVector<Kasten::AbstractDocument*>>(); 0039 QCOMPARE(documents.size(), 1); 0040 QCOMPARE(documents.at(0), document); 0041 } 0042 0043 void DocumentManagerTest::initTestCase() 0044 { 0045 qRegisterMetaType<QVector<Kasten::AbstractDocument*>>("QVector<Kasten::AbstractDocument*>"); 0046 } 0047 0048 void DocumentManagerTest::testConstructor() 0049 { 0050 auto* documentManager = new Kasten::DocumentManager(); 0051 delete documentManager; 0052 } 0053 0054 void DocumentManagerTest::testAddRemove() 0055 { 0056 auto* doc1 = new Kasten::TestDocument(); 0057 auto* doc2 = new Kasten::TestDocument(); 0058 auto* doc3 = new Kasten::TestDocument(); 0059 0060 auto* documentManager = new Kasten::DocumentManager(); 0061 auto* addedSpy = new QSignalSpy(documentManager, SIGNAL(added(QVector<Kasten::AbstractDocument*>))); 0062 auto* closingSpy = new QSignalSpy(documentManager, SIGNAL(closing(QVector<Kasten::AbstractDocument*>))); 0063 0064 documentManager->addDocument(doc1); 0065 checkAdded(addedSpy, doc1); 0066 0067 documentManager->closeDocument(doc1); 0068 checkAdded(closingSpy, doc1); 0069 0070 documentManager->addDocument(doc2); 0071 checkAdded(addedSpy, doc2); 0072 documentManager->addDocument(doc3); 0073 checkAdded(addedSpy, doc3); 0074 0075 documentManager->closeDocument(doc3); 0076 checkAdded(closingSpy, doc3); 0077 documentManager->closeDocument(doc2); 0078 checkAdded(closingSpy, doc2); 0079 0080 delete documentManager; 0081 delete addedSpy; 0082 delete closingSpy; 0083 } 0084 0085 void DocumentManagerTest::testCanClose() 0086 { 0087 auto* doc = new Kasten::TestDocument(); 0088 0089 auto* documentManager = new Kasten::DocumentManager(); 0090 documentManager->addDocument(doc); 0091 QVERIFY(documentManager->canClose(doc)); 0092 0093 // doc->setSyncStates( Kasten::LocalHasChanges ); 0094 // QVERIFY( !documentManager->canClose(doc) ); 0095 0096 delete documentManager; 0097 } 0098 0099 QTEST_GUILESS_MAIN(DocumentManagerTest) 0100 0101 #include "moc_documentmanagertest.cpp"