]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Add test for correct reporting of existing folder overcoming size limit
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 18 Jul 2023 09:19:39 +0000 (17:19 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 4 Aug 2023 09:42:35 +0000 (17:42 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
test/testsyncengine.cpp

index ec5aebeb248922ee56f1b71d68d019df6a85a47f..9516a05570dc0f0663d93d464c783dc6b5d27d7c 100644 (file)
@@ -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 <QtTest>
 
@@ -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)