File indexing completed on 2024-05-05 05:55:36
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 "grouppiecetablechangeabstractpiecetablechangeiftest.hpp" 0010 0011 // test object 0012 #include <piecetable/grouppiecetablechange.hpp> 0013 #include <piecetable/replacepiecetablechange.hpp> 0014 #include <piecetable/insertpiecetablechange.hpp> 0015 #include <piecetable/removepiecetablechange.hpp> 0016 // lib 0017 #include <piecetable/piecetable.hpp> 0018 // Qt 0019 #include <QTest> 0020 0021 namespace KPieceTable { 0022 0023 static constexpr Address ReplacedOldStorageOffset = 80; 0024 static constexpr Address ReplacedStart = 32; 0025 static constexpr Address ReplacedEnd = 78; 0026 static constexpr Size ReplacedWidth = ReplacedEnd - ReplacedStart + 1; 0027 static constexpr Size ReplaceLength = 30; 0028 static constexpr Address ReplaceInsertStorageOffset = 67; 0029 0030 static constexpr Address InsertOffset = 50; 0031 static constexpr Size InsertLength = 80; 0032 static constexpr Address InsertStorageOffset = 67; 0033 0034 static constexpr Address RemovedStart = 40; 0035 static constexpr Address RemovedEnd = 78; 0036 static constexpr Size RemovedWidth = RemovedEnd - RemovedStart + 1; 0037 static constexpr Address RemovedOldStorageOffset = 23; 0038 0039 AbstractPieceTableChange* GroupPieceTableChangeAbstractPieceTableChangeIfTest::createPieceTableChange() 0040 { 0041 const Piece replacedPiece(AddressRange::fromWidth(ReplacedOldStorageOffset, ReplacedWidth), Piece::ChangeStorage); 0042 const Piece removedPiece(AddressRange::fromWidth(RemovedOldStorageOffset, RemovedWidth), Piece::ChangeStorage); 0043 0044 ReplacePieceTableChange* replaceChange = 0045 new ReplacePieceTableChange(AddressRange(ReplacedStart, ReplacedEnd), 0046 ReplaceLength, ReplaceInsertStorageOffset, 0047 PieceList(replacedPiece)); 0048 InsertPieceTableChange* insertChange = 0049 new InsertPieceTableChange(InsertOffset, InsertLength, InsertStorageOffset); 0050 RemovePieceTableChange* removeChange = 0051 new RemovePieceTableChange(AddressRange(RemovedStart, RemovedEnd), PieceList(removedPiece)); 0052 0053 GroupPieceTableChange* pieceTableChange = 0054 new GroupPieceTableChange(0, QString()); 0055 0056 pieceTableChange->appendChange(replaceChange); 0057 pieceTableChange->appendChange(insertChange); 0058 pieceTableChange->appendChange(removeChange); 0059 0060 return pieceTableChange; 0061 } 0062 void GroupPieceTableChangeAbstractPieceTableChangeIfTest::changePieceTable(PieceTable* pieceTable) 0063 { 0064 pieceTable->replace(AddressRange(ReplacedStart, ReplacedEnd), ReplaceLength, ReplaceInsertStorageOffset); 0065 pieceTable->insert(InsertOffset, InsertLength, InsertStorageOffset); 0066 pieceTable->remove(AddressRange(RemovedStart, RemovedEnd)); 0067 } 0068 0069 void GroupPieceTableChangeAbstractPieceTableChangeIfTest::deletePieceTableChange( 0070 AbstractPieceTableChange* pieceTableChange) 0071 { 0072 delete pieceTableChange; 0073 } 0074 0075 } 0076 0077 QTEST_GUILESS_MAIN(KPieceTable::GroupPieceTableChangeAbstractPieceTableChangeIfTest)