Add test for correct reporting of existing folder overcoming size limit

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-07-18 17:19:39 +08:00
parent 4cdf525df2
commit 0b13be663b
No known key found for this signature in database
GPG key ID: C839200C384636B0

View 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)