File indexing completed on 2024-04-21 05:51:41
0001 // SPDX-License-Identifier: GPL-2.0-or-later 0002 // SPDX-FileCopyrightText: 2007 Dominik Seichter <domseichter@web.de> 0003 0004 #include "krenamefiletest.h" 0005 0006 #include "krenamefile.h" 0007 0008 #include <QtTest> 0009 0010 QTEST_GUILESS_MAIN(KRenameFileTest) 0011 Q_DECLARE_METATYPE(ESplitMode) 0012 0013 void KRenameFileTest::initTestCase() 0014 { 0015 qRegisterMetaType<ESplitMode>(); 0016 } 0017 0018 void KRenameFileTest::testKRenameFile_data() 0019 { 0020 QTest::addColumn<QUrl>("url"); 0021 QTest::addColumn<QString>("directory"); 0022 QTest::addColumn<QString>("filename"); 0023 QTest::addColumn<QString>("extension"); 0024 QTest::addColumn<ESplitMode>("eSplitMode"); 0025 QTest::addColumn<int>("dot"); 0026 QTest::addColumn<bool>("isDir"); 0027 0028 // Test a simple filename 0029 QTest::newRow("simple/FirstDot") 0030 << QUrl("file:///home/test/simple.txt") << "/home/test" 0031 << "simple" << "txt" << eSplitMode_FirstDot << 0 << false; 0032 QTest::newRow("simple/LastDot") 0033 << QUrl("file:///home/test/simple.txt") << "/home/test" 0034 << "simple" << "txt" << eSplitMode_LastDot << 0 << false; 0035 QTest::newRow("simple/NoExtension") 0036 << QUrl("file:///home/test/simple.txt") << "/home/test" 0037 << "simple.txt" << "" << eSplitMode_NoExtension << 0 << false; 0038 QTest::newRow("simple/NoExtension/1") 0039 << QUrl("file:///home/test/simple.txt") << "/home/test" 0040 << "simple.txt" << "" << eSplitMode_NoExtension << 1 << false; 0041 QTest::newRow("simple/CustomDot/0") 0042 << QUrl("file:///home/test/simple.txt") << "/home/test" 0043 << "simple.txt" << "" << eSplitMode_CustomDot << 0 << false; 0044 QTest::newRow("simple/CustomDot/1") 0045 << QUrl("file:///home/test/simple.txt") << "/home/test" 0046 << "simple" << "txt" << eSplitMode_CustomDot << 1 << false; 0047 0048 // Test a simple filename and a directory with spaces 0049 QTest::newRow("spaces/FirstDot") 0050 << QUrl("file:///home/dir with space/simple.txt") 0051 << "/home/dir with space" << "simple" << "txt" 0052 << eSplitMode_FirstDot << 0 << false; 0053 QTest::newRow("spaces/LastDot") 0054 << QUrl("file:///home/dir with space/simple.txt") 0055 << "/home/dir with space" << "simple" << "txt" 0056 << eSplitMode_LastDot << 0 << false; 0057 QTest::newRow("spaces/CustomDot/0") 0058 << QUrl("file:///home/dir with space/simple.txt") 0059 << "/home/dir with space" << "simple.txt" << "" 0060 << eSplitMode_CustomDot << 0 << false; 0061 QTest::newRow("spaces/CustomDot/1") 0062 << QUrl("file:///home/dir with space/simple.txt") 0063 << "/home/dir with space" << "simple" << "txt" 0064 << eSplitMode_CustomDot << 1 << false; 0065 0066 // test a more complicated file extension 0067 QTest::newRow("complicated/FirstDot") 0068 << QUrl("file:///home/test/complicated.tar.gz") 0069 << "/home/test" << "complicated" << "tar.gz" 0070 << eSplitMode_FirstDot << 0 << false; 0071 QTest::newRow("complicated/LastDot") 0072 << QUrl("file:///home/test/complicated.tar.gz") 0073 << "/home/test" << "complicated.tar" << "gz" 0074 << eSplitMode_LastDot << 0 << false; 0075 QTest::newRow("complicated/CustomDot/0") 0076 << QUrl("file:///home/test/complicated.tar.gz") 0077 << "/home/test" << "complicated.tar.gz" << "" 0078 << eSplitMode_CustomDot << 0 << false; 0079 QTest::newRow("complicated/CustomDot/1") 0080 << QUrl("file:///home/test/complicated.tar.gz") 0081 << "/home/test" << "complicated" << "tar.gz" 0082 << eSplitMode_CustomDot << 1 << false; 0083 QTest::newRow("complicated/CustomDot/2") 0084 << QUrl("file:///home/test/complicated.tar.gz") 0085 << "/home/test" << "complicated.tar" << "gz" 0086 << eSplitMode_CustomDot << 2 << false; 0087 QTest::newRow("complicated/CustomDot/3") 0088 << QUrl("file:///home/test/complicated.tar.gz") 0089 << "/home/test" << "complicated.tar.gz" << "" 0090 << eSplitMode_CustomDot << 3 << false; 0091 0092 // test a directory with dot 0093 QTest::newRow("dot-dir/FirstDot") 0094 << QUrl("file:///home/dir.with.dot/simple.txt") 0095 << "/home/dir.with.dot" << "simple" << "txt" 0096 << eSplitMode_FirstDot << 0 << false; 0097 QTest::newRow("dot-dir/LastDot") 0098 << QUrl("file:///home/dir.with.dot/simple.txt") 0099 << "/home/dir.with.dot" << "simple" << "txt" 0100 << eSplitMode_LastDot << 0 << false; 0101 QTest::newRow("dot-dir/CustomDot/0") 0102 << QUrl("file:///home/dir.with.dot/simple.txt") 0103 << "/home/dir.with.dot" << "simple.txt" << "" 0104 << eSplitMode_CustomDot << 0 << false; 0105 QTest::newRow("dot-dir/CustomDot/1") 0106 << QUrl("file:///home/dir.with.dot/simple.txt") 0107 << "/home/dir.with.dot" << "simple" << "txt" 0108 << eSplitMode_CustomDot << 1 << false; 0109 0110 // test a directory which ends with a slash 0111 QTest::newRow("dir-ends-slash/FirstDot") 0112 << QUrl("file:///home/test/") << "/home" 0113 << "test" << "" << eSplitMode_FirstDot << 0 << true; 0114 QTest::newRow("dir-ends-slash/LastDot") 0115 << QUrl("file:///home/test/") << "/home" 0116 << "test" << "" << eSplitMode_LastDot << 0 << true; 0117 QTest::newRow("dir-ends-slash/CustomDot/0") 0118 << QUrl("file:///home/test/") << "/home" 0119 << "test" << "" << eSplitMode_CustomDot << 0 << true; 0120 QTest::newRow("dir-ends-slash/CustomDot/1") 0121 << QUrl("file:///home/test/") << "/home" 0122 << "test" << "" << eSplitMode_CustomDot << 1 << true; 0123 0124 // test a directory which doesn't end with a slash 0125 QTest::newRow("dir-not-ends-slash/FirstDot") 0126 << QUrl("file:///home/test") << "/home" 0127 << "test" << "" << eSplitMode_FirstDot << 0 << true; 0128 QTest::newRow("dir-not-ends-slash/LastDot") 0129 << QUrl("file:///home/test") << "/home" 0130 << "test" << "" << eSplitMode_LastDot << 0 << true; 0131 QTest::newRow("dir-not-ends-slash/CustomDot/0") 0132 << QUrl("file:///home/test") << "/home" 0133 << "test" << "" << eSplitMode_CustomDot << 0 << true; 0134 QTest::newRow("dir-not-ends-slash/CustomDot/1") 0135 << QUrl("file:///home/test") << "/home" 0136 << "test" << "" << eSplitMode_CustomDot << 1 << true; 0137 0138 // test no file extension 0139 QTest::newRow("no-extension/FirstDot") 0140 << QUrl("file:///home/test/simple") << "/home/test" 0141 << "simple" << "" << eSplitMode_FirstDot << 0 << false; 0142 QTest::newRow("no-extension/LastDot") 0143 << QUrl("file:///home/test/simple") << "/home/test" 0144 << "simple" << "" << eSplitMode_LastDot << 0 << false; 0145 QTest::newRow("no-extension/CustomDot/0") 0146 << QUrl("file:///home/test/simple") << "/home/test" 0147 << "simple" << "" << eSplitMode_CustomDot << 0 << false; 0148 QTest::newRow("no-extension/CustomDot/1") 0149 << QUrl("file:///home/test/simple") << "/home/test" 0150 << "simple" << "" << eSplitMode_CustomDot << 1 << false; 0151 0152 // test very long complex file extension 0153 QTest::newRow("complex-extension/FirstDot") 0154 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0155 << "/home/test" << "simple" << "txt.long.ext.zip" 0156 << eSplitMode_FirstDot << 0 << false; 0157 QTest::newRow("complex-extension/LastDot") 0158 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0159 << "/home/test" << "simple.txt.long.ext" << "zip" 0160 << eSplitMode_LastDot << 0 << false; 0161 QTest::newRow("complex-extension/CustomDot/0") 0162 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0163 << "/home/test" << "simple.txt.long.ext.zip" << "" 0164 << eSplitMode_CustomDot << 0 << false; 0165 QTest::newRow("complex-extension/CustomDot/1") 0166 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0167 << "/home/test" << "simple" << "txt.long.ext.zip" 0168 << eSplitMode_CustomDot << 1 << false; 0169 QTest::newRow("complex-extension/CustomDot/2") 0170 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0171 << "/home/test" << "simple.txt" << "long.ext.zip" 0172 << eSplitMode_CustomDot << 2 << false; 0173 QTest::newRow("complex-extension/CustomDot/3") 0174 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0175 << "/home/test" << "simple.txt.long" << "ext.zip" 0176 << eSplitMode_CustomDot << 3 << false; 0177 QTest::newRow("complex-extension/CustomDot/4") 0178 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0179 << "/home/test" << "simple.txt.long.ext" << "zip" 0180 << eSplitMode_CustomDot << 4 << false; 0181 QTest::newRow("complex-extension/CustomDot/5") 0182 << QUrl("file:///home/test/simple.txt.long.ext.zip") 0183 << "/home/test" << "simple.txt.long.ext.zip" << "" 0184 << eSplitMode_CustomDot << 5 << false; 0185 } 0186 0187 void KRenameFileTest::testKRenameFile() 0188 { 0189 QFETCH(QUrl, url); 0190 QFETCH(QString, directory); 0191 QFETCH(QString, filename); 0192 QFETCH(QString, extension); 0193 QFETCH(ESplitMode, eSplitMode); 0194 QFETCH(int, dot); 0195 QFETCH(bool, isDir); 0196 0197 // if the expected filename and extension is empty expect a directory 0198 //bool isDirectory = filename.isEmpty() && extension.isEmpty(); 0199 KRenameFile file(url, isDir, eSplitMode, dot); 0200 0201 QCOMPARE(file.srcDirectory(), directory); 0202 QCOMPARE(file.srcFilename(), filename); 0203 QCOMPARE(file.srcExtension(), extension); 0204 } 0205 0206 #include "moc_krenamefiletest.cpp"