File indexing completed on 2024-05-12 16:45:29

0001 /***************************************************************************
0002  * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr
0003  * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  ***************************************************************************/
0006 /** @file
0007  * This file is a test script.
0008  *
0009  * @author Stephane MANKOWSKI / Guillaume DE BURE
0010  */
0011 #include "skgtestmacro.h"
0012 
0013 /**
0014  * To check the progress
0015  */
0016 static int previousProgress = 0;
0017 
0018 /**
0019  * To test progress
0020  * @param iPos the current position
0021  * @return 0
0022  */
0023 int progress1(int iPos, qint64 /*iTime*/, const QString& /*iName*/, void* /*iData*/)
0024 {
0025     if (previousProgress > iPos) {
0026         return 1;
0027     }
0028     previousProgress = iPos;
0029     return 0;
0030 }
0031 
0032 /**
0033  * To test progress
0034  * @param iPos the current position
0035  * @return 1
0036  */
0037 int progress2(int iPos, qint64 /*iTime*/, const QString& /*iName*/, void* /*iData*/)
0038 {
0039     if (iPos > 50) {
0040         return 1;
0041     }
0042     return 0;
0043 }
0044 /**
0045  * The main function of the unit test
0046  * @param argc the number of arguments
0047  * @param argv the list of arguments
0048  */
0049 int main(int argc, char** argv)
0050 {
0051     Q_UNUSED(argc)
0052     Q_UNUSED(argv)
0053 
0054     // Init test
0055     SKGINITTEST(true)
0056 
0057     // test class SKGDocument / COMMIT / ROLLBACK
0058     {
0059         SKGDocument document1;
0060         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0061         SKGTESTERROR(QStringLiteral("TRANS.beginTransaction(transaction1)"), document1.beginTransaction(QStringLiteral("transaction1")), false)
0062         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0063         SKGTESTERROR(QStringLiteral("TRANS.initialize"), document1.initialize(), true)
0064         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0065         SKGTESTERROR(QStringLiteral("TRANS.beginTransaction(transaction1)"), document1.beginTransaction(QStringLiteral("transaction1")), true)
0066         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 1)
0067         SKGTESTERROR(QStringLiteral("TRANS.endTransaction"), document1.endTransaction(false), true)
0068         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0069         SKGTESTERROR(QStringLiteral("TRANS.beginTransaction(transaction2)"), document1.beginTransaction(QStringLiteral("transaction2")), true)
0070         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 1)
0071         SKGTESTERROR(QStringLiteral("TRANS.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL1")), true)
0072         SKGTESTERROR(QStringLiteral("TRANS.endTransaction"), document1.endTransaction(true), true)
0073         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0074         SKGTESTERROR(QStringLiteral("TRANS.endTransaction TOO MANY !"), document1.endTransaction(true), false)
0075         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0076 
0077         // Test rollback
0078         SKGTESTERROR(QStringLiteral("TRANS.beginTransaction"), document1.beginTransaction(QStringLiteral("transaction3")), true)
0079         SKGTESTERROR(QStringLiteral("TRANS.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2")), true)
0080         SKGTESTERROR(QStringLiteral("TRANS.endTransaction"), document1.endTransaction(false), true)
0081         SKGTEST(QStringLiteral("TRANS.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1"))
0082 
0083         // Test multi transaction in cascade
0084         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0085         SKGTESTERROR(QStringLiteral("TRANS.beginTransaction"), document1.beginTransaction(QStringLiteral("transaction4")), true)
0086         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 1)
0087         SKGTESTERROR(QStringLiteral("TRANS.beginTransaction"), document1.beginTransaction(QStringLiteral("transaction'5")), true)
0088         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 2)
0089         SKGTESTERROR(QStringLiteral("TRANS.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2")), true)
0090         SKGTESTERROR(QStringLiteral("TRANS.endTransaction"), document1.endTransaction(false), true)
0091         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 1)
0092         SKGTEST(QStringLiteral("TRANS.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL2"))
0093         SKGTESTERROR(QStringLiteral("TRANS.endTransaction"), document1.endTransaction(false), true)
0094         SKGTEST(QStringLiteral("TRANS.getDepthTransaction"), document1.getDepthTransaction(), 0)
0095         SKGTEST(QStringLiteral("TRANS.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1"))
0096 
0097         SKGPropertyObject prop(&document1);
0098         SKGTESTERROR(QStringLiteral("PROP.getParameter"), prop.setName(QStringLiteral("ATT1")), true)
0099         SKGTESTERROR(QStringLiteral("PROP.load"), prop.load(), true)
0100         SKGTEST(QStringLiteral("PROP.getValue"), prop.getValue(), QStringLiteral("VAL1"))
0101         prop.getParentId();
0102 
0103         SKGPropertyObject prop2(prop);
0104         SKGPropertyObject prop3(static_cast<SKGObjectBase>(prop));
0105         SKGPropertyObject prop4;
0106         prop4 = static_cast<SKGObjectBase>(prop);
0107     }
0108 
0109     // test class SKGDocument / COMMIT / ROLLBACK with SKGTransactionMng
0110     {
0111         // Test with a succeeded transaction
0112         SKGError err;
0113         SKGDocument document1;
0114         SKGTESTERROR(QStringLiteral("TRANSMNG.initialize()"), document1.initialize(), true)
0115         SKGTEST(QStringLiteral("TRANSMNG.getNbTransaction"), document1.getNbTransaction(), 0) {
0116             // Scope of the transaction
0117             SKGBEGINTRANSACTION(document1, QStringLiteral("T1"), err)
0118 
0119             // The code here
0120             IFOK(err) {
0121                 SKGTEST(QStringLiteral("TRANSMNG.getDepthTransaction"), document1.getDepthTransaction(), 1)
0122 
0123                 // Example; an error is generated
0124                 err = SKGError(1, QStringLiteral("Error1"));
0125             }
0126 
0127             // A rollback is done here because the scope is close
0128         }
0129         SKGTESTERROR(QStringLiteral("TRANSMNG.err"), err, false)
0130         SKGTEST(QStringLiteral("TRANSMNG.getNbTransaction"), document1.getNbTransaction(), 0)
0131         SKGTEST(QStringLiteral("TRANSMNG.getDepthTransaction"), document1.getDepthTransaction(), 0)
0132     }
0133 
0134     {
0135         // Test with a succeeded transaction
0136         SKGError err;
0137         SKGDocument document1;
0138         SKGTESTERROR(QStringLiteral("TRANSMNG.initialize()"), document1.initialize(), true)
0139         SKGTEST(QStringLiteral("TRANSMNG.getNbTransaction"), document1.getNbTransaction(), 0) {
0140             // Scope of the transaction
0141             SKGBEGINTRANSACTION(document1, QStringLiteral("T1"), err)
0142 
0143             // The code here
0144             IFOK(err) {
0145                 SKGTEST(QStringLiteral("TRANSMNG.getDepthTransaction"), document1.getDepthTransaction(), 1)
0146 
0147                 // Example; transaction succeeded
0148                 SKGTESTERROR(QStringLiteral("TRANS.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2")), true)
0149             }
0150 
0151             // A commit is done here because the scope is close
0152         }
0153         SKGTESTERROR(QStringLiteral("TRANSMNG.err"), err, true)
0154         SKGTEST(QStringLiteral("TRANSMNG.getNbTransaction"), document1.getNbTransaction(), 1)
0155         SKGTEST(QStringLiteral("TRANSMNG.getDepthTransaction"), document1.getDepthTransaction(), 0)
0156     }
0157 
0158     {
0159         // Test undo on parameters
0160         SKGDocument document1;
0161         SKGTESTERROR(QStringLiteral("TRANSUNDO.initialize()"), document1.initialize(), true)
0162         SKGError err;
0163         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QLatin1String(""))
0164 
0165         {
0166             // In a scope to the then endTransaction automatically
0167             SKGBEGINTRANSACTION(document1, QStringLiteral("T1"), err)
0168             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL1_1")), true)  // To test undo on more than one modification of an object in a transaction
0169             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL1_2")), true)  // To test undo on more than one modification of an object in a transaction
0170             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL1")), true)
0171         }
0172         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1"))
0173         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction"), document1.getNbTransaction(), 1)
0174         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction(SKGDocument::REDO))"), document1.getNbTransaction(SKGDocument::REDO), 0)
0175 
0176         {
0177             // In a scope to the then endTransaction automatically
0178             SKGBEGINTRANSACTION(document1, QStringLiteral("T2"), err)
0179             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2_1")), true)  // To test undo on more than one modification of an object in a transaction
0180             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2_2")), true)  // To test undo on more than one modification of an object in a transaction
0181 
0182             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2")), true)
0183         }
0184         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL2"))
0185         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction"), document1.getNbTransaction(), 2)
0186         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction(SKGDocument::REDO))"), document1.getNbTransaction(SKGDocument::REDO), 0)
0187 
0188         QStringList oResult;
0189         int nbitemexpected = 6;
0190         SKGTESTERROR(QStringLiteral("TRANSUNDO.getDistinctValues"), document1.getDistinctValues(QStringLiteral("doctransactionitem"), QStringLiteral("id"), oResult), true)
0191         SKGTEST(QStringLiteral("TRANSUNDO.oResult.size"), oResult.size(), nbitemexpected)
0192 
0193         SKGTESTERROR(QStringLiteral("TRANSUNDO.undoRedoTransaction(T2, SKGDocument::UNDO)"), document1.undoRedoTransaction(), true)
0194         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1"))
0195         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction"), document1.getNbTransaction(), 1)
0196         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction(SKGDocument::REDO))"), document1.getNbTransaction(SKGDocument::REDO), 1)
0197 
0198         SKGTESTERROR(QStringLiteral("TRANSUNDO.getDistinctValues"), document1.getDistinctValues(QStringLiteral("doctransactionitem"), QStringLiteral("id"), oResult), true)
0199         SKGTEST(QStringLiteral("TRANSUNDO.oResult.size"), oResult.size(), nbitemexpected)
0200 
0201         SKGTESTERROR(QStringLiteral("TRANSUNDO.undoRedoTransaction(T1, SKGDocument::UNDO)"), document1.undoRedoTransaction(), true)
0202         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QLatin1String(""))
0203         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction"), document1.getNbTransaction(), 0)
0204         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction(SKGDocument::REDO))"), document1.getNbTransaction(SKGDocument::REDO), 2)
0205 
0206         SKGTESTERROR(QStringLiteral("TRANSUNDO.getDistinctValues"), document1.getDistinctValues(QStringLiteral("doctransactionitem"), QStringLiteral("id"), oResult), true)
0207         SKGTEST(QStringLiteral("TRANSUNDO.oResult.size"), oResult.size(), nbitemexpected)
0208 
0209         SKGTESTERROR(QStringLiteral("TRANSUNDO.undoRedoTransaction(T1, SKGDocument::REDO)"), document1.undoRedoTransaction(SKGDocument::REDO), true)
0210         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1"))
0211         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction"), document1.getNbTransaction(), 1)
0212         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction(SKGDocument::REDO))"), document1.getNbTransaction(SKGDocument::REDO), 1)
0213 
0214         SKGTESTERROR(QStringLiteral("TRANSUNDO.getDistinctValues"), document1.getDistinctValues(QStringLiteral("doctransactionitem"), QStringLiteral("id"), oResult), true)
0215         SKGTEST(QStringLiteral("TRANSUNDO.oResult.size"), oResult.size(), nbitemexpected)
0216 
0217         SKGTESTERROR(QStringLiteral("TRANSUNDO.undoRedoTransaction(T2, SKGDocument::REDO)"), document1.undoRedoTransaction(SKGDocument::REDO), true)
0218         SKGTEST(QStringLiteral("TRANSUNDO.getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL2"))
0219         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction"), document1.getNbTransaction(), 2)
0220         SKGTEST(QStringLiteral("TRANSUNDO.getNbTransaction(SKGDocument::REDO))"), document1.getNbTransaction(SKGDocument::REDO), 0)
0221         SKGTESTERROR(QStringLiteral("TRANSUNDO.getDistinctValues"), document1.getDistinctValues(QStringLiteral("doctransactionitem"), QStringLiteral("id"), oResult), true)
0222         SKGTEST(QStringLiteral("TRANSUNDO.oResult.size"), oResult.size(), nbitemexpected)
0223     }
0224 
0225     {
0226         // Test max depth for transaction
0227         SKGDocument document1;
0228         SKGTESTERROR(QStringLiteral("MAXDEPTH.initialize()"), document1.initialize(), true)
0229         SKGError err;
0230         SKGTEST(QStringLiteral("MAXDEPTH.getNbTransaction"), document1.getNbTransaction(), 0) {
0231             SKGBEGINTRANSACTION(document1, QStringLiteral("MAXDEPTH 1"), err)
0232             SKGTESTERROR(QStringLiteral("MAXDEPTH.setParameter"), document1.setParameter(QStringLiteral("SKG_UNDO_MAX_DEPTH"), QStringLiteral("3")), true)
0233         }
0234         SKGTEST(QStringLiteral("MAXDEPTH.getNbTransaction"), document1.getNbTransaction(), 1) {
0235             SKGBEGINTRANSACTION(document1, QStringLiteral("MAXDEPTH 2"), err)
0236             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0237         }
0238         SKGTESTERROR(QStringLiteral("MAXDEPTH.endTransaction"), err, true)
0239         SKGTEST(QStringLiteral("MAXDEPTH.getNbTransaction"), document1.getNbTransaction(), 2) {
0240             SKGBEGINTRANSACTION(document1, QStringLiteral("MAXDEPTH 3"), err)
0241             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0242         }
0243         SKGTESTERROR(QStringLiteral("MAXDEPTH.endTransaction"), err, true)
0244         SKGTEST(QStringLiteral("MAXDEPTH.getNbTransaction"), document1.getNbTransaction(), 3) {
0245             SKGBEGINTRANSACTION(document1, QStringLiteral("MAXDEPTH 4"), err)
0246             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0247         }
0248         SKGTESTERROR(QStringLiteral("MAXDEPTH.endTransaction"), err, true)
0249         SKGTEST(QStringLiteral("MAXDEPTH.getNbTransaction"), document1.getNbTransaction(), 3) {
0250             SKGBEGINTRANSACTION(document1, QStringLiteral("MAXDEPTH 5"), err)
0251             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0252             SKGTESTERROR(QStringLiteral("TRANSUNDO.setParameter"), document1.setParameter(QStringLiteral("ATT5"), QStringLiteral("VAL")), true)
0253         }
0254         SKGTESTERROR(QStringLiteral("MAXDEPTH.endTransaction"), err, true)
0255         SKGTEST(QStringLiteral("MAXDEPTH.getNbTransaction"), document1.getNbTransaction(), 3)
0256 
0257         SKGDocument::SKGObjectModificationList oModifications;
0258         SKGTESTERROR(QStringLiteral("MAXDEPTH.getModifications"), document1.getModifications(document1.getTransactionToProcess(SKGDocument::UNDO), oModifications), true)
0259         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.count"), oModifications.count(), 2)
0260         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.id"), oModifications[0].id, 7)
0261         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.table"), oModifications[0].table, QStringLiteral("parameters"))
0262         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.type"), static_cast<unsigned int>(oModifications[0].type), static_cast<unsigned int>(SKGDocument::U))
0263         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.id"), oModifications[1].id, 8)
0264         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.table"), oModifications[1].table, QStringLiteral("parameters"))
0265         SKGTEST(QStringLiteral("MAXDEPTH.oModifications.type"), static_cast<unsigned int>(oModifications[1].type), static_cast<unsigned int>(SKGDocument::I))
0266     }
0267 
0268     {
0269         // Redo delete after new transaction
0270         SKGDocument document1;
0271         SKGTESTERROR(QStringLiteral("REDO.initialize()"), document1.initialize(), true)
0272         SKGError err;
0273         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 0) {
0274             SKGBEGINTRANSACTION(document1, QStringLiteral("SKGDocument::REDO 1"), err)
0275             SKGTESTERROR(QStringLiteral("REDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0276         }
0277         {
0278             SKGBEGINTRANSACTION(document1, QStringLiteral("SKGDocument::REDO 2"), err)
0279             SKGTESTERROR(QStringLiteral("REDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0280         }
0281         {
0282             SKGBEGINTRANSACTION(document1, QStringLiteral("SKGDocument::REDO 3"), err)
0283             SKGTESTERROR(QStringLiteral("REDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0284         }
0285         {
0286             SKGBEGINTRANSACTION(document1, QStringLiteral("SKGDocument::REDO 4"), err)
0287             SKGTESTERROR(QStringLiteral("REDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0288         }
0289         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 4)
0290         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 0)
0291 
0292         SKGTESTERROR(QStringLiteral("REDO.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0293         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 3)
0294         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 1)
0295 
0296         SKGTESTERROR(QStringLiteral("REDO.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0297         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 2)
0298         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 2)
0299 
0300         SKGTESTERROR(QStringLiteral("REDO.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::REDO), true)
0301         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 3)
0302         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 1)
0303 
0304         SKGTESTERROR(QStringLiteral("REDO.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0305         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 2)
0306         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 2)
0307 
0308         {
0309             SKGBEGINTRANSACTION(document1, QStringLiteral("SKGDocument::REDO 5"), err)
0310             SKGTESTERROR(QStringLiteral("REDO.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0311         }
0312 
0313         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 3)
0314         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 0)
0315 
0316         SKGTESTERROR(QStringLiteral("REDO.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::UNDOLASTSAVE), true)
0317         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(), 0)
0318         SKGTEST(QStringLiteral("REDO.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 1)
0319     }
0320 
0321     {
0322         // Test progress
0323         SKGDocument document1;
0324         SKGTESTERROR(QStringLiteral("PROGRESS.initialize()"), document1.initialize(), true)
0325         SKGTESTERROR(QStringLiteral("PROGRESS.setProgressCallback"), document1.setProgressCallback(&progress1, nullptr), true)
0326         SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("PROGRESS1"), 5), true)
0327         for (int i = 1; i <= 5; ++i) {
0328             SKGTESTERROR(QStringLiteral("PROGRESS.stepForward"), document1.stepForward(i), true)
0329             SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("PROGRESS2"), 3), true)
0330             for (int j = 1; j <= 3; j++) {
0331                 SKGTESTERROR(QStringLiteral("PROGRESS.stepForward"), document1.stepForward(j), true)
0332             }
0333             SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(true), true)
0334         }
0335         SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(true), true)
0336 
0337         SKGTESTERROR(QStringLiteral("PROGRESS.setProgressCallback"), document1.setProgressCallback(&progress2, nullptr), true)
0338         SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("PROGRESS1"), 5), true)
0339         for (int i = 1; i <= 5; ++i) {
0340             SKGTESTERROR(QStringLiteral("PROGRESS.stepForward"), document1.stepForward(i), (i < 3))
0341             SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("PROGRESS2"), 3), (i < 3))
0342             for (int j = 1; j <= 3; j++) {
0343                 SKGTESTERROR(QStringLiteral("PROGRESS.stepForward"), document1.stepForward(j), (3 * i + j - 3 < 5))
0344             }
0345             SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(true), true)
0346         }
0347         SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(true), true)
0348     }
0349 
0350     {
0351         // Test progress
0352         SKGDocument document1;
0353         SKGTESTERROR(QStringLiteral("PROGRESS.initialize()"), document1.initialize(), true)
0354         SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0355         SKGTESTERROR(QStringLiteral("PROGRESS.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0356 
0357         SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(true), true)
0358         SKGTEST(QStringLiteral("PROGRESS.getNbTransaction"), document1.getNbTransaction(), 1)
0359 
0360         SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0361         SKGTESTERROR(QStringLiteral("PROGRESS.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0362         SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(true), true)
0363         SKGTEST(QStringLiteral("PROGRESS.getNbTransaction"), document1.getNbTransaction(), 2)
0364 
0365         SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("T3")), true)
0366         SKGTESTERROR(QStringLiteral("PROGRESS.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0367         SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(false), true)
0368         SKGTEST(QStringLiteral("PROGRESS.getNbTransaction"), document1.getNbTransaction(), 2)
0369 
0370         // Transaction failed with existing name
0371         SKGTESTERROR(QStringLiteral("PROGRESS.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0372         SKGTESTERROR(QStringLiteral("PROGRESS.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0373         SKGTESTERROR(QStringLiteral("PROGRESS.endTransaction"), document1.endTransaction(false), true)
0374         SKGTEST(QStringLiteral("PROGRESS.getNbTransaction"), document1.getNbTransaction(), 2)
0375     }
0376 
0377     {
0378         // Test group of transactions on U
0379         SKGDocument document1;
0380         SKGTESTERROR(QStringLiteral("GROUP.initialize()"), document1.initialize(), true)
0381         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0382         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL1")), true)
0383         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0384 
0385         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0386         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL2")), true)
0387         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0388 
0389         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T3")), true)
0390         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL3")), true)
0391         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0392 
0393         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T4")), true)
0394         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL4")), true)
0395         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0396 
0397         SKGTESTERROR(QStringLiteral("GROUP.groupTransactions("), document1.groupTransactions(3, 5), true)
0398         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(), 2)
0399         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0400         SKGTEST(QStringLiteral("GROUP.getParameter"), document1.getParameter(QStringLiteral("ATT")), QStringLiteral("VAL1"))
0401 
0402         // Remove all transaction
0403         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::UNDO), 1)
0404         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 1)
0405         SKGTESTERROR(QStringLiteral("GROUP.removeAllTransactions"), document1.removeAllTransactions(), true)
0406         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::UNDO), 0)
0407         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 0)
0408     }
0409 
0410     {
0411         // Test group of transactions on R
0412         SKGDocument document1;
0413         SKGTESTERROR(QStringLiteral("GROUP.initialize()"), document1.initialize(), true)
0414         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0415         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL1")), true)
0416         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0417 
0418         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0419         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL2")), true)
0420         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0421 
0422         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T3")), true)
0423         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL3")), true)
0424         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0425 
0426         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T4")), true)
0427         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL4")), true)
0428         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0429 
0430         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0431         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0432         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0433         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0434 
0435         SKGTESTERROR(QStringLiteral("GROUP.groupTransactions("), document1.groupTransactions(7, 9), true)
0436         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 2)
0437 //      document1.dump(DUMPTRANSACTIONS);
0438         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::REDO), true)
0439         SKGTEST(QStringLiteral("GROUP.getParameter"), document1.getParameter(QStringLiteral("ATT")), QStringLiteral("VAL3"))
0440     }
0441 
0442     {
0443         // Test group of transactions on U and R
0444         SKGDocument document1;
0445         SKGTESTERROR(QStringLiteral("GROUP.initialize()"), document1.initialize(), true)
0446         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0447         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL1")), true)
0448         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0449 
0450         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0451         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL2")), true)
0452         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0453 
0454         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T3")), true)
0455         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL3")), true)
0456         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0457 
0458         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T4")), true)
0459         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL4")), true)
0460         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0461 
0462         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0463         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(), true)
0464 
0465         SKGTESTERROR(QStringLiteral("GROUP.groupTransactions("), document1.groupTransactions(3, 6), false)
0466 //      document1.dump(DUMPTRANSACTIONS);
0467         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::UNDO), 2)
0468         SKGTEST(QStringLiteral("GROUP.getNbTransaction"), document1.getNbTransaction(SKGDocument::REDO), 2)
0469     }
0470 
0471     {
0472         // Test group of transactions on R
0473         SKGDocument document1;
0474         SKGTESTERROR(QStringLiteral("GROUP.initialize()"), document1.initialize(), true)
0475         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0476         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL1")), true)
0477         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0478 
0479         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0480         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL2")), true)
0481         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0482 
0483         QString filename1 = SKGTest::getTestPath(QStringLiteral("OUT")) % "/filename1.skg";
0484         SKGTESTERROR(QStringLiteral("GROUP.saveAs"), document1.saveAs(filename1, true), true)
0485 
0486         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T3")), true)
0487         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL3")), true)
0488         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0489 
0490         SKGTESTERROR(QStringLiteral("GROUP.beginTransaction"), document1.beginTransaction(QStringLiteral("T4")), true)
0491         SKGTESTERROR(QStringLiteral("GROUP.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL4")), true)
0492         SKGTESTERROR(QStringLiteral("GROUP.endTransaction"), document1.endTransaction(true), true)
0493 
0494         document1.dump(DUMPTRANSACTIONS);
0495         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::UNDOLASTSAVE), true)
0496         SKGTEST(QStringLiteral("GROUP.getParameter"), document1.getParameter(QStringLiteral("ATT")), QStringLiteral("VAL2"))
0497         SKGTESTERROR(QStringLiteral("GROUP.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::REDO), true)
0498         SKGTEST(QStringLiteral("GROUP.getParameter"), document1.getParameter(QStringLiteral("ATT")), QStringLiteral("VAL4"))
0499 
0500         QStringList oResult;
0501         SKGTESTERROR(QStringLiteral("SKGServices::dumpSelectSqliteOrder"), document1.dumpSelectSqliteOrder(QStringLiteral("SELECT * from doctransaction"), oResult), true)
0502         SKGTESTERROR(QStringLiteral("SKGServices::dumpSelectSqliteOrder"), document1.dumpSelectSqliteOrder(QStringLiteral("SELECT * from doctransaction")), true)
0503     }
0504 
0505     {
0506         // Test error
0507         SKGDocument document1;
0508         SKGTESTERROR(QStringLiteral("ERROR.initialize()"), document1.initialize(), true)
0509         SKGTESTERROR(QStringLiteral("ERROR.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::UNDO), false)  // No transaction
0510 
0511         SKGTESTERROR(QStringLiteral("ERROR.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0512         SKGTEST(QStringLiteral("ERROR.getCurrentTransaction"), document1.getCurrentTransaction(), 2)
0513 
0514         SKGTESTERROR(QStringLiteral("ERROR.groupTransactions"), document1.groupTransactions(1, 1), false)  // Not authorized into a transaction
0515         SKGTESTERROR(QStringLiteral("ERROR.undoRedoTransaction"), document1.undoRedoTransaction(SKGDocument::UNDO), false)  // Not authorized into a transaction
0516         SKGTESTERROR(QStringLiteral("ERROR.saveAs"), document1.saveAs(SKGTest::getTestPath(QStringLiteral("OUT")) % "/filename1.skg", true), false)  // Not authorized into a transaction
0517 
0518         SKGTESTERROR(QStringLiteral("ERROR.endTransaction"), document1.endTransaction(true), true)
0519     }
0520 
0521     {
0522         // Test messages
0523         SKGDocument document1;
0524         SKGTESTERROR(QStringLiteral("MSG.initialize()"), document1.initialize(), true)
0525         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("Information"), SKGDocument::Information), true)
0526         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("Warning"), SKGDocument::Warning), true)
0527         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("Positive"), SKGDocument::Positive), true)
0528         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("Error"), SKGDocument::Error), true)
0529         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("Hidden"), SKGDocument::Hidden), true)
0530 
0531         SKGTESTERROR(QStringLiteral("MSG.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0532         SKGTESTERROR(QStringLiteral("MSG.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL")), true)
0533         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("Hello")), true)
0534         SKGTESTERROR(QStringLiteral("MSG.sendMessage"), document1.sendMessage(QStringLiteral("World")), true)
0535         SKGTESTERROR(QStringLiteral("MSG.endTransaction"), document1.endTransaction(true), true)
0536 
0537         SKGDocument::SKGMessageList msg;
0538         SKGTESTERROR(QStringLiteral("MSG.getMessages"), document1.getMessages(document1.getTransactionToProcess(SKGDocument::UNDO), msg), true)
0539         SKGTEST(QStringLiteral("MSG.msg.count"), msg.count(), 6)
0540         SKGTEST(QStringLiteral("MSG.msg"), msg.at(0).Text, QStringLiteral("Information")); SKGTEST(QStringLiteral("MSG.type"), static_cast<unsigned int>(msg.at(0).Type), static_cast<unsigned int>(SKGDocument::Information))
0541         SKGTEST(QStringLiteral("MSG.msg"), msg.at(1).Text, QStringLiteral("Warning")); SKGTEST(QStringLiteral("MSG.type"), static_cast<unsigned int>(msg.at(1).Type), static_cast<unsigned int>(SKGDocument::Warning))
0542         SKGTEST(QStringLiteral("MSG.msg"), msg.at(2).Text, QStringLiteral("Positive")); SKGTEST(QStringLiteral("MSG.type"), static_cast<unsigned int>(msg.at(2).Type), static_cast<unsigned int>(SKGDocument::Positive))
0543         SKGTEST(QStringLiteral("MSG.msg"), msg.at(3).Text, QStringLiteral("Error")); SKGTEST(QStringLiteral("MSG.type"), static_cast<unsigned int>(msg.at(3).Type), static_cast<unsigned int>(SKGDocument::Error))
0544         SKGTEST(QStringLiteral("MSG.msg"), msg.at(4).Text, QStringLiteral("Hello")); SKGTEST(QStringLiteral("MSG.type"), static_cast<unsigned int>(msg.at(4).Type), static_cast<unsigned int>(SKGDocument::Information))
0545         SKGTEST(QStringLiteral("MSG.msg"), msg.at(5).Text, QStringLiteral("World")); SKGTEST(QStringLiteral("MSG.type"), static_cast<unsigned int>(msg.at(5).Type), static_cast<unsigned int>(SKGDocument::Information))
0546     }
0547 
0548     {
0549         // Test clean after save
0550         SKGDocument document1;
0551         SKGTESTERROR(QStringLiteral("CLEAN.initialize()"), document1.initialize(), true)
0552 
0553         SKGTESTERROR(QStringLiteral("CLEAN.beginTransaction"), document1.beginTransaction(QStringLiteral("T1")), true)
0554         SKGTESTERROR(QStringLiteral("CLEAN.setParameter"), document1.setParameter(QStringLiteral("SKG_UNDO_CLEAN_AFTER_SAVE"), QStringLiteral("Y")), true)
0555         SKGTESTERROR(QStringLiteral("CLEAN.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL1")), true)
0556         SKGTESTERROR(QStringLiteral("CLEAN.endTransaction"), document1.endTransaction(true), true)
0557 
0558         SKGTESTERROR(QStringLiteral("CLEAN.beginTransaction"), document1.beginTransaction(QStringLiteral("T2")), true)
0559         SKGTESTERROR(QStringLiteral("CLEAN.setParameter"), document1.setParameter(QStringLiteral("ATT"), QStringLiteral("VAL2")), true)
0560         SKGTESTERROR(QStringLiteral("CLEAN.endTransaction"), document1.endTransaction(true), true)
0561 
0562         SKGTEST(QStringLiteral("CLEAN.getNbTransaction"), document1.getNbTransaction(SKGDocument::UNDO), 2)
0563 
0564         QString filename1 = SKGTest::getTestPath(QStringLiteral("OUT")) % "/filename1.skg";
0565         SKGTESTERROR(QStringLiteral("CLEAN.saveAs"), document1.saveAs(filename1, true), true)
0566         SKGTEST(QStringLiteral("CLEAN.getNbTransaction"), document1.getNbTransaction(SKGDocument::UNDO), 0)
0567     }
0568     // End test
0569     SKGENDTEST()
0570 }