File indexing completed on 2024-05-12 16:45:28
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 <qfile.h> 0012 #include <qsqldatabase.h> 0013 0014 #include "skgtestmacro.h" 0015 0016 /** 0017 * The main function of the unit test 0018 * @param argc the number of arguments 0019 * @param argv the list of arguments 0020 */ 0021 int main(int argc, char** argv) 0022 { 0023 Q_UNUSED(argc) 0024 Q_UNUSED(argv) 0025 0026 // Init test 0027 SKGINITTEST(true) { 0028 SKGTESTBOOL("QSQLITE:isDriverAvailable", QSqlDatabase::isDriverAvailable(QStringLiteral("QSQLITE")), true) 0029 SKGTESTBOOL("SKGSQLCIPHER:isDriverAvailable", QSqlDatabase::isDriverAvailable(QStringLiteral("SKGSQLCIPHER")), true) 0030 } 0031 { 0032 // test class SKGDocument / LOAD / SAVE 0033 QString filename1 = SKGTest::getTestPath(QStringLiteral("IN")) % QStringLiteral("/filename1_e.skg"); 0034 qDebug("filename1=%s", filename1.toUtf8().constData()); 0035 { 0036 SKGDocument document1; 0037 QFile(filename1).remove(); 0038 SKGTESTERROR(QStringLiteral("DOC:initialize"), document1.initialize(), true) 0039 SKGTESTERROR(QStringLiteral("DOC:setLanguage"), document1.setLanguage(QStringLiteral("en")), true) 0040 SKGTESTERROR(QStringLiteral("DOC:setLanguage"), document1.setLanguage(QStringLiteral("fr")), true) 0041 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0042 0043 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("tt")), true) 0044 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("ATT3"), QStringLiteral("VAL3")), true) 0045 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) 0046 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(false), true) 0047 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0048 0049 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("tt")), true) 0050 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("ATT3"), QStringLiteral("VAL3")), true) 0051 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) 0052 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0053 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) 0054 0055 document1.setFileNotModified(); 0056 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0057 0058 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("t_name")), QStringLiteral("Name")) 0059 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("node.t_name")), QStringLiteral("Name")) 0060 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("v_node.t_name")), QStringLiteral("Name")) 0061 SKGTEST(QStringLiteral("DOC:getDisplay"), document1.getDisplay(QStringLiteral("v_node.unknown")), QStringLiteral("v_node.unknown")) 0062 0063 QString oResult; 0064 SKGTESTERROR(QStringLiteral("DOC:isFileModified"), document1.dumpSelectSqliteOrder(QStringLiteral("select * from parameters"), oResult), true) 0065 } 0066 { 0067 SKGDocument document1; 0068 QFile(filename1).remove(); 0069 SKGTESTERROR(QStringLiteral("DOC:initialize"), document1.initialize(), true) 0070 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0071 0072 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("tt")), true) 0073 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0074 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) // because the transaction is empty 0075 } 0076 { 0077 SKGDocument document1; 0078 QFile(filename1).remove(); 0079 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QLatin1String("")), false) 0080 SKGTESTERROR(QStringLiteral("DOC:saveAs+invalid path"), document1.saveAs(QStringLiteral("/notfound/file.skg"), true), false) 0081 SKGTEST(QStringLiteral("DOC:getCurrentFileName"), document1.getCurrentFileName(), QLatin1String("")) 0082 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0083 SKGTESTERROR(QStringLiteral("DOC:initialize"), document1.initialize(), true) 0084 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0085 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("t1")), true) 0086 SKGTEST(QStringLiteral("DOC:getCurrentFileName"), document1.getCurrentFileName(), QLatin1String("")) 0087 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), false) 0088 SKGTEST(QStringLiteral("DOC:getCurrentFileName"), document1.getCurrentFileName(), QLatin1String("")) 0089 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) // due to the beginTransaction 0090 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("ATT1")), QLatin1String("")) 0091 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL1")), true) 0092 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) 0093 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1")) 0094 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0095 SKGTESTERROR(QStringLiteral("DOC:saveAs+overwrite=false"), document1.saveAs(filename1, false), true) 0096 SKGTESTBOOL("DOC:exist", QFile(filename1).exists(), true) 0097 SKGTEST(QStringLiteral("DOC:getCurrentFileName"), document1.getCurrentFileName(), filename1) 0098 SKGTESTERROR(QStringLiteral("DOC:saveAs+overwrite=false"), document1.saveAs(filename1, false), false) 0099 SKGTESTBOOL("DOC:exist", QFile(filename1).exists(), true) 0100 SKGTEST(QStringLiteral("DOC:getCurrentFileName"), document1.getCurrentFileName(), filename1) 0101 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), true) 0102 SKGTESTBOOL("DOC:exist", QFile(filename1).exists(), true) 0103 SKGTEST(QStringLiteral("DOC:getCurrentFileName"), document1.getCurrentFileName(), filename1) 0104 0105 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("t1")), true) 0106 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) // due to the beginTransaction 0107 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1")) 0108 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("ATT1"), QStringLiteral("VAL2")), true) 0109 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL2")) 0110 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), true) 0111 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0112 0113 SKGTESTBOOL("DOC:exist", QFile(filename1).exists(), true) 0114 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QLatin1String("")), true) 0115 SKGTESTBOOL("DOC:isFileModified", document1.isFileModified(), false) 0116 SKGTESTBOOL("DOC:getCurrentFileName", (!document1.getCurrentFileName().isEmpty()), true) 0117 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("ATT1")), QStringLiteral("VAL1")) 0118 } 0119 0120 { 0121 SKGDocument document1; 0122 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QLatin1String("")), true) 0123 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("t3")), true) 0124 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("ATT3"), QStringLiteral("VAL3")), true) 0125 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0126 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), true) 0127 0128 SKGTESTERROR(QStringLiteral("DOC:changePassword"), document1.changePassword(QStringLiteral("pwd1")), true) 0129 SKGTESTERROR(QStringLiteral("DOC:changePassword"), document1.changePassword(QStringLiteral("pwd")), true) 0130 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("tt")), true) 0131 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("SAVE"), QStringLiteral("1")), true) 0132 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0133 0134 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("SAVE")), QStringLiteral("1")) 0135 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), true) 0136 } 0137 { 0138 SKGDocument document1; 0139 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QLatin1String("")), false) 0140 SKGTEST(QStringLiteral("DOC:load"), document1.load(filename1, QStringLiteral("wrong pwd")).getReturnCode(), ERR_ENCRYPTION) 0141 } 0142 { 0143 SKGDocument document1; 0144 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QStringLiteral("pwd")), true) 0145 SKGTESTERROR(QStringLiteral("DOC:changePassword"), document1.changePassword(QStringLiteral("pwd1")), true) 0146 SKGTESTERROR(QStringLiteral("DOC:changePassword"), document1.changePassword(QLatin1String("")), true) 0147 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), true) 0148 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QLatin1String("")), true) 0149 } 0150 0151 { 0152 SKGDocument document1; 0153 QFile(filename1).remove(); 0154 SKGTESTERROR(QStringLiteral("DOC:initialize"), document1.initialize(), true) 0155 document1.setBackupParameters(QLatin1String(""), QStringLiteral("/invalid suffix")); 0156 SKGTESTERROR(QStringLiteral("DOC:saveAs"), document1.saveAs(filename1, true), true) 0157 SKGTESTERROR(QStringLiteral("DOC:saveAs"), document1.saveAs(filename1, true), true) 0158 0159 document1.setBackupParameters(QStringLiteral("."), QStringLiteral(".old")); 0160 SKGTEST(QStringLiteral("DOC:getBackupFile"), document1.getBackupFile(QStringLiteral("/tmp/file.skg")), QStringLiteral("/tmp/.file.skg.old")) 0161 0162 document1.setBackupParameters(QLatin1String(""), QStringLiteral("_<DATE>.backup")); 0163 SKGTEST(QStringLiteral("DOC:getBackupFile"), document1.getBackupFile(QStringLiteral("/tmp/file.skg")), QStringLiteral("/tmp/file.skg_") % SKGServices::dateToSqlString(QDateTime::currentDateTime().date()) % ".backup") 0164 0165 document1.setBackupParameters(QLatin1String(""), QStringLiteral("_<DATE>.skg")); 0166 SKGTEST(QStringLiteral("DOC:getBackupFile"), document1.getBackupFile(QStringLiteral("/tmp/file.skg")), QStringLiteral("/tmp/file_") % SKGServices::dateToSqlString(QDateTime::currentDateTime().date()) % ".skg") 0167 0168 document1.setBackupParameters(QLatin1String(""), QStringLiteral("_<TIME>.backup")); 0169 SKGTEST(QStringLiteral("DOC:getBackupFile"), document1.getBackupFile(QStringLiteral("/tmp/file.skg")), QStringLiteral("/tmp/file.skg_") % SKGServices::timeToString(QDateTime::currentDateTime()) % ".backup") 0170 0171 document1.setBackupParameters(QStringLiteral("/tmp/"), QStringLiteral(".old")); 0172 SKGTEST(QStringLiteral("DOC:getBackupFile"), document1.getBackupFile(QStringLiteral("/home/user1/file.skg")), QStringLiteral("/tmp/file.skg.old")) 0173 } 0174 0175 { 0176 SKGDocument document1; 0177 SKGTESTERROR(QStringLiteral("DOC:load"), document1.load(filename1, QLatin1String("")), true) 0178 SKGTESTERROR(QStringLiteral("DOC:beginTransaction"), document1.beginTransaction(QStringLiteral("tt")), true) 0179 SKGTESTERROR(QStringLiteral("DOC:setParameter"), document1.setParameter(QStringLiteral("SAVE"), QStringLiteral("1")), true) 0180 SKGTEST(QStringLiteral("DOC:getParameter"), document1.getParameter(QStringLiteral("SAVE")), QStringLiteral("1")) 0181 SKGTESTERROR(QStringLiteral("DOC:endTransaction"), document1.endTransaction(true), true) 0182 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), true) 0183 0184 // Check save when file system is full 0185 qputenv("SKGFILESYSTEMFULL", "Y"); 0186 SKGTEST(QStringLiteral("DOC:getParameter"), static_cast<unsigned int>(QFile(filename1).exists()), static_cast<unsigned int>(true)) 0187 SKGTESTERROR(QStringLiteral("DOC:save"), document1.save(), false) 0188 SKGTEST(QStringLiteral("DOC:getParameter"), static_cast<unsigned int>(QFile(filename1).exists()), static_cast<unsigned int>(true)) 0189 } 0190 0191 QFile(filename1).remove(); 0192 QFile(filename1 % ".old").remove(); 0193 } 0194 // End test 0195 SKGENDTEST() 0196 }