From 8fa727e2990c35bc67cbb17dcac44607cd01c57e Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Wed, 16 Nov 2022 18:00:15 +0100 Subject: [PATCH] test for proper renaming of folder parent of a deep hierarchy currently broken test as we miss to rename recursively Signed-off-by: Matthieu Gallien --- test/testsyncmove.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/test/testsyncmove.cpp b/test/testsyncmove.cpp index c8f5ac2d6..5bef1cddd 100644 --- a/test/testsyncmove.cpp +++ b/test/testsyncmove.cpp @@ -992,6 +992,56 @@ private slots: QVERIFY(!fakeFolder.currentRemoteState().find(dest)); } + void testRenameDeepHierarchy() + { + FakeFolder fakeFolder{FileInfo{}}; + + fakeFolder.remoteModifier().mkdir("FolA"); + fakeFolder.remoteModifier().mkdir("FolA/FolB2"); + fakeFolder.remoteModifier().mkdir("FolA/FolB"); + fakeFolder.remoteModifier().mkdir("FolA/FolB/FolC"); + fakeFolder.remoteModifier().mkdir("FolA/FolB/FolC/FolD"); + fakeFolder.remoteModifier().mkdir("FolA/FolB/FolC/FolD/FolE"); + fakeFolder.remoteModifier().insert("FolA/FileA.txt"); + auto fileA = fakeFolder.remoteModifier().find("FolA/FileA.txt"); + QVERIFY(fileA); + fileA->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed511"; + fakeFolder.remoteModifier().insert("FolA/FolB/FileB.txt"); + auto fileB = fakeFolder.remoteModifier().find("FolA/FolB/FileB.txt"); + QVERIFY(fileB); + fileB->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed511"; + fakeFolder.remoteModifier().insert("FolA/FolB/FolC/FileC.txt"); + auto fileC = fakeFolder.remoteModifier().find("FolA/FolB/FolC/FileC.txt"); + QVERIFY(fileC); + fileC->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed511"; + fakeFolder.remoteModifier().insert("FolA/FolB/FolC/FolD/FileD.txt"); + auto fileD = fakeFolder.remoteModifier().find("FolA/FolB/FolC/FolD/FileD.txt"); + QVERIFY(fileD); + fileD->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed511"; + fakeFolder.remoteModifier().insert("FolA/FolB/FolC/FolD/FolE/FileE.txt"); + auto fileE = fakeFolder.remoteModifier().find("FolA/FolB/FolC/FolD/FolE/FileE.txt"); + QVERIFY(fileE); + fileE->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed511"; + fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::DatabaseAndFilesystem); + QVERIFY(fakeFolder.syncOnce()); + + fakeFolder.remoteModifier().rename("FolA/FolB", "FolA/FolB2/FolB"); + fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::DatabaseAndFilesystem); + QVERIFY(fakeFolder.syncOnce()); + + fakeFolder.remoteModifier().insert("FolA/FolB2/FolB/FolC/FolD/FileD2.txt"); + auto fileD2 = fakeFolder.remoteModifier().find("FolA/FolB2/FolB/FolC/FolD/FileD2.txt"); + QVERIFY(fileD2); + fileD2->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed511"; + fakeFolder.remoteModifier().appendByte("FolA/FolB2/FolB/FolC/FolD/FileD.txt"); + auto fileDMoved = fakeFolder.remoteModifier().find("FolA/FolB2/FolB/FolC/FolD/FileD.txt"); + QVERIFY(fileDMoved); + fileDMoved->extraDavProperties = "SHA1:22596363b3de40b06f981fb85d82312e8c0ed522"; + fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::FilesystemOnly); + QVERIFY(fakeFolder.syncOnce()); + + QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState()); + } }; QTEST_GUILESS_MAIN(TestSyncMove) -- 2.30.2