1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
/*
SPDX-FileCopyrightText: 2015 Martin Blumenstingl <martin.blumenstingl@googlemail.com>
SPDX-License-Identifier: LGPL-2.0-only
*/
#include "deletejobtest.h"
#include <QDir>
#include <QFile>
#include <QSignalSpy>
#include <QTemporaryDir>
#include <QTemporaryFile>
#include <QTest>
#include <kio/deletejob.h>
QTEST_MAIN(DeleteJobTest)
static constexpr int KJOB_NO_ERROR = static_cast<int>(KJob::NoError);
void DeleteJobTest::deleteFileTestCase_data() const
{
QTest::addColumn<QString>("fileName");
QTest::newRow("latin characters") << "testfile";
QTest::newRow("german umlauts") << "testger\u00E4t";
QTest::newRow("chinese characters") << "\u8A66";
}
void DeleteJobTest::deleteFileTestCase()
{
QFETCH(QString, fileName);
QTemporaryFile tempFile;
tempFile.setFileTemplate(fileName + QStringLiteral("XXXXXX"));
QVERIFY(tempFile.open());
const QString path = tempFile.fileName();
tempFile.close();
QVERIFY(QFile::exists(path));
/*QBENCHMARK*/ {
KIO::DeleteJob *job = KIO::del(QUrl::fromLocalFile(path), KIO::HideProgressInfo);
job->setUiDelegate(nullptr);
QSignalSpy spy(job, &KJob::result);
QVERIFY(spy.isValid());
QVERIFY(spy.wait(100000));
QCOMPARE(job->error(), KJOB_NO_ERROR);
QVERIFY(!tempFile.exists());
}
}
void DeleteJobTest::deleteDirectoryTestCase_data() const
{
QTest::addColumn<QStringList>("fileNames");
QTest::newRow("non-empty directory") << QStringList{QStringLiteral("1.txt")};
QTest::newRow("empty directory") << QStringList();
}
void DeleteJobTest::deleteDirectoryTestCase()
{
QTemporaryDir tempDir;
QVERIFY(tempDir.isValid());
QFETCH(QStringList, fileNames);
createEmptyTestFiles(fileNames, tempDir.path());
/*QBENCHMARK*/ {
KIO::DeleteJob *job = KIO::del(QUrl::fromLocalFile(tempDir.path()), KIO::HideProgressInfo);
job->setUiDelegate(nullptr);
QSignalSpy spy(job, &KJob::result);
QVERIFY(spy.isValid());
QVERIFY(spy.wait(100000));
QCOMPARE(job->error(), KJOB_NO_ERROR);
QVERIFY(!QDir(tempDir.path()).exists());
}
}
void DeleteJobTest::createEmptyTestFiles(const QStringList &fileNames, const QString &path) const
{
QStringListIterator iterator(fileNames);
while (iterator.hasNext()) {
const QString filename = path + QDir::separator() + iterator.next();
QFile file(filename);
QVERIFY(file.open(QIODevice::WriteOnly));
}
QCOMPARE(QDir(path).entryList(QDir::Files).count(), fileNames.size());
}
#include "moc_deletejobtest.cpp"
|