From 9afd7265bb46ba6c176760353121a2212165e4b2 Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Mon, 6 Mar 2023 16:27:57 +0100 Subject: [PATCH] add a new automated test for virtual files and data restoration add a test that will try to upload pure virtual files becase restoration after server data fingerprint has changed this is illegal and should not happen Signed-off-by: Matthieu Gallien --- test/testsyncvirtualfiles.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/test/testsyncvirtualfiles.cpp b/test/testsyncvirtualfiles.cpp index 1dd091dbd..a4ce8c8c6 100644 --- a/test/testsyncvirtualfiles.cpp +++ b/test/testsyncvirtualfiles.cpp @@ -1880,6 +1880,32 @@ private slots: conflicts = findCaseClashConflicts(*fakeFolder.currentLocalState().find("a/b")); QCOMPARE(conflicts.size(), shouldHaveCaseClashConflict ? 1 : 0); } + + void testDataFingerPrint() + { + FakeFolder fakeFolder{ FileInfo{} }; + setupVfs(fakeFolder); + + fakeFolder.remoteModifier().mkdir("a"); + fakeFolder.remoteModifier().mkdir("a/b"); + fakeFolder.remoteModifier().mkdir("a/b/d"); + fakeFolder.remoteModifier().insert("a/b/otherFile.txt"); + + //Server support finger print, but none is set. + fakeFolder.remoteModifier().extraDavProperties = ""; + + fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::DatabaseAndFilesystem); + QVERIFY(fakeFolder.syncOnce()); + + fakeFolder.remoteModifier().remove("a/b/otherFile.txt"); + fakeFolder.remoteModifier().remove("a/b/d"); + fakeFolder.remoteModifier().extraDavProperties = "initial_finger_print"; + + fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::DatabaseAndFilesystem); + QVERIFY(fakeFolder.syncOnce()); + + QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState()); + } }; QTEST_GUILESS_MAIN(TestSyncVirtualFiles) -- 2.30.2