From 82d7f9f5a46fe0d66aa907825cf784efc13f8792 Mon Sep 17 00:00:00 2001 From: flow Date: Sat, 15 Oct 2022 09:34:47 -0300 Subject: [PATCH] chore(tests): add test for FS copy with dot folders/files Signed-off-by: flow --- tests/FileSystem_test.cpp | 36 +++++++++++++++++++ .../.secret_folder/.secret_file.txt | 1 + 2 files changed, 37 insertions(+) create mode 100644 tests/testdata/FileSystem/test_folder/.secret_folder/.secret_file.txt diff --git a/tests/FileSystem_test.cpp b/tests/FileSystem_test.cpp index 4efb90ac0..47a963b0c 100644 --- a/tests/FileSystem_test.cpp +++ b/tests/FileSystem_test.cpp @@ -147,6 +147,42 @@ slots: f(); } + void test_copy_with_dot_hidden() + { + QString folder = QFINDTESTDATA("testdata/FileSystem/test_folder"); + auto f = [&folder]() + { + QTemporaryDir tempDir; + tempDir.setAutoRemove(true); + qDebug() << "From:" << folder << "To:" << tempDir.path(); + + QDir target_dir(FS::PathCombine(tempDir.path(), "test_folder")); + qDebug() << tempDir.path(); + qDebug() << target_dir.path(); + FS::copy c(folder, target_dir.path()); + c(); + + auto filter = QDir::Filter::Files | QDir::Filter::Dirs | QDir::Filter::Hidden; + + for (auto entry: target_dir.entryList(filter)) { + qDebug() << entry; + } + + QVERIFY(target_dir.entryList(filter).contains(".secret_folder")); + target_dir.cd(".secret_folder"); + QVERIFY(target_dir.entryList(filter).contains(".secret_file.txt")); + }; + + // first try variant without trailing / + QVERIFY(!folder.endsWith('/')); + f(); + + // then variant with trailing / + folder.append('/'); + QVERIFY(folder.endsWith('/')); + f(); + } + void test_getDesktop() { QCOMPARE(FS::getDesktopDir(), QStandardPaths::writableLocation(QStandardPaths::DesktopLocation)); diff --git a/tests/testdata/FileSystem/test_folder/.secret_folder/.secret_file.txt b/tests/testdata/FileSystem/test_folder/.secret_folder/.secret_file.txt new file mode 100644 index 000000000..65e37085f --- /dev/null +++ b/tests/testdata/FileSystem/test_folder/.secret_folder/.secret_file.txt @@ -0,0 +1 @@ +oooooo spooky easter egg :oo