From 0b13be663b9d4e91ce97e3806cf6c42dbd96c26d Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 18 Jul 2023 17:19:39 +0800 Subject: [PATCH] Add test for correct reporting of existing folder overcoming size limit Signed-off-by: Claudio Cambra --- test/testsyncengine.cpp | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/test/testsyncengine.cpp b/test/testsyncengine.cpp index ec5aebeb2..9516a0557 100644 --- a/test/testsyncengine.cpp +++ b/test/testsyncengine.cpp @@ -7,9 +7,10 @@ #include "syncenginetestutils.h" -#include "syncengine.h" -#include "propagatorjobs.h" #include "caseclashconflictsolver.h" +#include "configfile.h" +#include "propagatorjobs.h" +#include "syncengine.h" #include @@ -1663,6 +1664,35 @@ private slots: fakeFolder.remoteModifier().remove(testUpperCaseFile); QVERIFY(fakeFolder.syncOnce()); } + + void testExistingFolderBecameBig() + { + constexpr auto testFolder = "folder"; + constexpr auto testSmallFile = "folder/small_file.txt"; + constexpr auto testLargeFile = "folder/large_file.txt"; + + QTemporaryDir dir; + ConfigFile::setConfDir(dir.path()); // we don't want to pollute the user's config file + auto config = ConfigFile(); + config.setNotifyExistingFoldersOverLimit(true); + + FakeFolder fakeFolder{FileInfo{}}; + QSignalSpy spy(&fakeFolder.syncEngine(), &SyncEngine::existingFolderNowBig); + + auto syncOptions = fakeFolder.syncEngine().syncOptions(); + syncOptions._newBigFolderSizeLimit = 128; // 128 bytes + fakeFolder.syncEngine().setSyncOptions(syncOptions); + + fakeFolder.remoteModifier().mkdir(testFolder); + fakeFolder.remoteModifier().insert(testSmallFile, 64); + fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::DatabaseAndFilesystem); + QVERIFY(fakeFolder.syncOnce()); + QCOMPARE(spy.count(), 0); + + fakeFolder.remoteModifier().insert(testLargeFile, 256); + QVERIFY(fakeFolder.syncOnce()); + QCOMPARE(spy.count(), 1); + } }; QTEST_GUILESS_MAIN(TestSyncEngine) -- 2.30.2