File indexing completed on 2024-04-28 05:52:33
0001 /* 0002 This file is part of the Okteta Core library, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2008 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 "versionableiftest.hpp" 0010 0011 // test object 0012 #include <versionable.hpp> 0013 // Qt 0014 #include <QTest> 0015 #include <QSignalSpy> 0016 0017 namespace Okteta { 0018 0019 // ---------------------------------------------------------------- Tests ----- 0020 0021 void VersionableIfTest::init() 0022 { 0023 mObject = createVersionable(); 0024 0025 mVersionableControl = qobject_cast<Okteta::Versionable*>(mObject); 0026 0027 mRevertedToVersionIndexSpy = 0028 new QSignalSpy(mObject, SIGNAL(revertedToVersionIndex(int))); 0029 mHeadVersionDescriptionChangedSpy = 0030 new QSignalSpy(mObject, SIGNAL(headVersionDescriptionChanged(QString))); 0031 mHeadVersionChangedSpy = 0032 new QSignalSpy(mObject, SIGNAL(headVersionChanged(int))); 0033 } 0034 0035 void VersionableIfTest::cleanup() 0036 { 0037 deleteVersionable(mObject); 0038 0039 delete mRevertedToVersionIndexSpy; 0040 delete mHeadVersionDescriptionChangedSpy; 0041 delete mHeadVersionChangedSpy; 0042 } 0043 0044 void VersionableIfTest::clearSignalSpys() 0045 { 0046 mRevertedToVersionIndexSpy->clear(); 0047 mHeadVersionDescriptionChangedSpy->clear(); 0048 mHeadVersionChangedSpy->clear(); 0049 } 0050 0051 void VersionableIfTest::checkRevertedToVersionIndex(int versionIndex) 0052 { 0053 QVERIFY(mRevertedToVersionIndexSpy->isValid()); 0054 QCOMPARE(mRevertedToVersionIndexSpy->size(), 1); 0055 const QList<QVariant> arguments = mRevertedToVersionIndexSpy->takeFirst(); 0056 QCOMPARE(arguments.at(0).toInt(), versionIndex); 0057 } 0058 0059 void VersionableIfTest::checkHeadVersionDescriptionChanged(const QString& versionDescription) 0060 { 0061 QVERIFY(mHeadVersionDescriptionChangedSpy->isValid()); 0062 QCOMPARE(mHeadVersionDescriptionChangedSpy->size(), 1); 0063 const QList<QVariant> arguments = mHeadVersionDescriptionChangedSpy->takeFirst(); 0064 QCOMPARE(arguments.at(0).toString(), versionDescription); 0065 } 0066 0067 void VersionableIfTest::checkHeadVersionChanged(int newHeadVersionIndex) 0068 { 0069 QVERIFY(mHeadVersionChangedSpy->isValid()); 0070 QCOMPARE(mHeadVersionChangedSpy->size(), 1); 0071 QList<QVariant> arguments = mHeadVersionChangedSpy->takeFirst(); 0072 QCOMPARE(arguments.at(0).toInt(), newHeadVersionIndex); 0073 } 0074 0075 // ---------------------------------------------------------------- Tests ----- 0076 0077 void VersionableIfTest::testBegin() 0078 { 0079 QCOMPARE(mVersionableControl->versionIndex(), 0); 0080 QCOMPARE(mVersionableControl->versionCount(), 1); 0081 } 0082 0083 #if 0 0084 void VersionableIfTest::testFill() 0085 { 0086 0087 weiter an ende 0088 1. neue Version 0089 2. Versionsänderung 0090 weiter in mitte 0091 weiter an anfang 0092 0093 // can we alter the buffer at all? 0094 if (mVersionable->isReadOnly()) { 0095 // skip 0096 return; 0097 } 0098 0099 constexpr unsigned int FillSize = 10; 0100 unsigned int Size = mVersionable->size(); 0101 Section FillSection = Section::fromWidth(0, Size); 0102 0103 FixedSizeByteArrayModel Copy(Size, PaintChar); 0104 0105 // fill() all 0106 mVersionable->setModified(false); 0107 mVersionable->fill(BlankChar); 0108 clearSignalSpys(); 0109 0110 mVersionable->fill(PaintChar); 0111 QCOMPARE(Copy.compare(*mVersionable), 0); 0112 QVERIFY(mVersionable->isModified()); 0113 checkContentsReplaced(FillSection, FillSection.width()); 0114 checkContentsChanged(0, mVersionable->size() - 1); 0115 0116 // fill() at begin 0117 FillSection.set(0, FillSize); 0118 mVersionable->setModified(false); 0119 mVersionable->fill(BlankChar); 0120 clearSignalSpys(); 0121 0122 mVersionable->fill(PaintChar, FillSection); 0123 QCOMPARE(Copy.compare(*mVersionable, FillSection), 0); 0124 QCOMPARE(mVersionable->datum(FillSection.nextBehindEnd()), BlankChar); 0125 QVERIFY(mVersionable->isModified()); 0126 checkContentsReplaced(FillSection, FillSection.width()); 0127 checkContentsChanged(FillSection); 0128 0129 // fill() at end 0130 mVersionable->setModified(false); 0131 mVersionable->fill(BlankChar); 0132 FillSection.moveToEnd(Size - 1); 0133 clearSignalSpys(); 0134 0135 mVersionable->fill(PaintChar, FillSection); 0136 QCOMPARE(mVersionable->datum(FillSection.nextBeforeStart()), BlankChar); 0137 QCOMPARE(Copy.compare(*mVersionable, FillSection, FillSection.start()), 0); 0138 QVERIFY(mVersionable->isModified()); 0139 checkContentsReplaced(FillSection, FillSection.width()); 0140 checkContentsChanged(FillSection); 0141 0142 // fill() at mid 0143 mVersionable->setModified(false); 0144 mVersionable->fill(BlankChar); 0145 FillSection.moveToStart(Size / 2); 0146 clearSignalSpys(); 0147 0148 mVersionable->fill(PaintChar, FillSection); 0149 QCOMPARE(mVersionable->datum(FillSection.nextBeforeStart()), BlankChar); 0150 QCOMPARE(Copy.compare(*mVersionable, FillSection, FillSection.start()), 0); 0151 QCOMPARE(mVersionable->datum(FillSection.nextBehindEnd()), BlankChar); 0152 QVERIFY(mVersionable->isModified()); 0153 checkContentsReplaced(FillSection, FillSection.width()); 0154 checkContentsChanged(FillSection); 0155 } 0156 #endif 0157 0158 } 0159 0160 #include "moc_versionableiftest.cpp"