#include #include #include #include #include class Test_FileSystemWatcher : public QObject { Q_OBJECT public: Test_FileSystemWatcher(); private slots: void initTestcase(); void insertAndRemoveFiles_data(); void insertAndRemoveFiles(); private: bool rmDir(const QString &hardPath); QString testDirHardPath() const { return m_appDir + "/" + m_testDirName; } QString m_appDir; QString m_testDirName; }; Test_FileSystemWatcher::Test_FileSystemWatcher() { m_appDir = QCoreApplication::applicationDirPath(); m_testDirName = "testdir"; } void Test_FileSystemWatcher::initTestcase() { } void Test_FileSystemWatcher::insertAndRemoveFiles_data() { QTest::addColumn("files"); QStringList files; files << "file1"; files << "file2"; QTest::newRow("2F") << files; // files.clear(); // files << "file1"; // files << "file2"; // files << "file3"; // QTest::newRow("3F") << files; // files.clear(); // files << "file1"; // files << "file2"; // files << "dir/fileS1"; // files << "dir/fileS2"; // files << "dir/fileS3"; // QTest::newRow("3FSubDir") << files; } void Test_FileSystemWatcher::insertAndRemoveFiles() { QFETCH(QStringList, files); /** Alle dateien und ordner löschen */ QString testDir = testDirHardPath(); bool ok = true; if (QFile::exists(testDir)) { QDir d(m_appDir); ok = rmDir(testDir); QCOMPARE(ok, true); } QDir d("/"); ok = d.mkpath(testDir); QCOMPARE(ok, true); QFileSystemWatcher watcher; QStringList absFileNames; QStringList absDirectories; absDirectories.append(testDir); // Create some files and add Subdirectories foreach(QString fileName , files) { QString absFileName = testDir+"/"+fileName; QFileInfo info(absFileName); if (!QFile::exists(info.absolutePath())) { ok = d.mkpath(info.absolutePath()); absDirectories.append(info.absolutePath()); QCOMPARE(ok, true); } QFile f(absFileName); ok = f.open(QIODevice::WriteOnly); QCOMPARE(ok, true); f.close(); QCOMPARE(QFile::exists(absFileName), true); absFileNames.append(absFileName); } // Add Files, current- and all subdirectories to watcher foreach(QString file, absFileNames) { bool ok=watcher.addPath(file); qWarning()<<"Add file:"<