File indexing completed on 2024-04-28 05:45:22

0001 /*
0002  * SPDX-FileCopyrightText: 2010-2011 Frank Reininghaus <frank78ac@googlemail.com>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef TESTDIR_H
0008 #define TESTDIR_H
0009 
0010 #include <QDateTime>
0011 #include <QTemporaryDir>
0012 #include <QUrl>
0013 
0014 /**
0015  * TestDir provides a temporary directory. In addition to QTemporaryDir, it has
0016  * methods that create files and subdirectories inside the directory.
0017  */
0018 class TestDir : public QTemporaryDir
0019 {
0020 public:
0021     TestDir(const QString &directoryPrefix = QString());
0022     virtual ~TestDir();
0023 
0024     QUrl url() const;
0025 
0026     /**
0027      * The following functions create either a file, a list of files, or a directory.
0028      * The paths may be absolute or relative to the test directory. Any missing parent
0029      * directories will be created automatically.
0030      */
0031     void createFile(const QString &path, const QByteArray &data = QByteArray("test"), const QDateTime &time = QDateTime());
0032     void createFiles(const QStringList &files);
0033     void createDir(const QString &path, const QDateTime &time = QDateTime());
0034 
0035     void removeFile(const QString &path);
0036     void removeFiles(const QStringList &files);
0037     void removeDir(const QString &path);
0038 
0039 private:
0040     void makePathAbsoluteAndCreateParents(QString &path);
0041 };
0042 
0043 #endif