diff --git a/test/testnextcloudpropagator.cpp b/test/testnextcloudpropagator.cpp index 954c665f5f91c..ef4524939f088 100644 --- a/test/testnextcloudpropagator.cpp +++ b/test/testnextcloudpropagator.cpp @@ -7,6 +7,7 @@ #include #include +#include "account.h" #include "propagatedownload.h" #include "owncloudpropagator_p.h" @@ -76,6 +77,46 @@ private slots: QCOMPARE(parseEtag(test.first), QByteArray(test.second)); } } + + void testRespectsLowestPossibleChunkSize() + { + QSet __blacklist; + OwncloudPropagator propagator(OCC::Account::create(), "", "", nullptr, __blacklist); + auto opts = propagator.syncOptions(); + + opts._minChunkSize = + opts._initialChunkSize = + opts._maxChunkSize = 0; + + propagator.setSyncOptions(opts); + + opts = propagator.syncOptions(); + QVERIFY( opts._minChunkSize == 512 * 1024 ); + QVERIFY( opts._initialChunkSize == 512 * 1024 ); + QVERIFY( opts._maxChunkSize == 512 * 1024 ); + } + + void testLimitsMaxChunkSizeByAccount() + { + QSet __blacklist; + OwncloudPropagator propagator(OCC::Account::create(), "", "", nullptr, __blacklist); + auto opts = propagator.syncOptions(); + + SyncOptions defaultOpts; + QVERIFY( opts._minChunkSize == defaultOpts._minChunkSize ); + QVERIFY( opts._minChunkSize < defaultOpts._maxChunkSize ); + QVERIFY( opts._minChunkSize < defaultOpts._initialChunkSize ); + QVERIFY( opts._initialChunkSize == defaultOpts._initialChunkSize ); + QVERIFY( opts._maxChunkSize == defaultOpts._maxChunkSize ); + + propagator.account()->setMaxRequestSizeIfLower(defaultOpts._minChunkSize); + propagator.setSyncOptions(opts); + + opts = propagator.syncOptions(); + QVERIFY( opts._minChunkSize == defaultOpts._minChunkSize ); + QVERIFY( opts._initialChunkSize == defaultOpts._minChunkSize ); + QVERIFY( opts._maxChunkSize == defaultOpts._minChunkSize ); + } }; QTEST_APPLESS_MAIN(TestNextcloudPropagator) diff --git a/test/testsyncengine.cpp b/test/testsyncengine.cpp index 5131bbbc25e7a..1771bf7353c4c 100644 --- a/test/testsyncengine.cpp +++ b/test/testsyncengine.cpp @@ -818,9 +818,10 @@ private slots: { FakeFolder fakeFolder{ FileInfo{} }; SyncOptions options; - options._initialChunkSize = 10; - options._maxChunkSize = 10; - options._minChunkSize = 10; + options._initialChunkSize = + options._maxChunkSize = + options._minChunkSize = 1000 * 1000; + fakeFolder.syncEngine().setSyncOptions(options); QObject parent; @@ -833,7 +834,7 @@ private slots: return nullptr; }); - fakeFolder.localModifier().insert("file", 100, 'W'); + fakeFolder.localModifier().insert("file", 10 * options._maxChunkSize, 'W'); QTimer::singleShot(100, &fakeFolder.syncEngine(), [&]() { fakeFolder.syncEngine().abort(); }); QVERIFY(!fakeFolder.syncOnce());