Fix renaming tests for files under group folders.
authorCamila Ayres <hello@camilasan.com>
Tue, 25 Jun 2024 14:40:02 +0000 (16:40 +0200)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Fri, 5 Jul 2024 11:57:24 +0000 (11:57 +0000)
Signed-off-by: Camila Ayres <hello@camilasan.com>
test/testsyncmove.cpp

index 05b0ce0342e080d14365d6fef7b720c40c8b476a..e483ef4b90272497872db0150a2eb6ee2250a300 100644 (file)
@@ -320,45 +320,41 @@ private slots:
 
     void testLocalExternalStorageRenameDetection()
     {
-        FakeFolder fakeFolder { FileInfo { QString(), { FileInfo { QStringLiteral("external") } } }};
-
-        int nPUT = 0;
-        int nDELETE = 0;
-        fakeFolder.setServerOverride([&](QNetworkAccessManager::Operation op, const QNetworkRequest &, QIODevice *) {
-            if (op == QNetworkAccessManager::PutOperation) {
-                ++nPUT;
-            }
-
-            if (op == QNetworkAccessManager::DeleteOperation) {
-                ++nDELETE;
-            }
-            return nullptr;
-        });
-
-        fakeFolder.remoteModifier().permissions.setPermission(OCC::RemotePermissions::IsMounted);
-        fakeFolder.remoteModifier().permissions.setPermission(OCC::RemotePermissions::CanMove);
-        fakeFolder.remoteModifier().permissions.setPermission(OCC::RemotePermissions::CanWrite);
+        FakeFolder fakeFolder{{}};
+        fakeFolder.remoteModifier().mkdir("external-storage");
+        auto externalStorage = fakeFolder.remoteModifier().find("external-storage");
+        externalStorage->extraDavProperties = "<nc:is-mount-root>true</nc:is-mount-root>";
+        setAllPerm(externalStorage, RemotePermissions::fromServerString("WDNVCKRM"));
         QVERIFY(fakeFolder.syncOnce());
-        QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.remoteModifier());
 
-        fakeFolder.localModifier().insert("external/file", 100);
+        OperationCounter operationCounter;
+        fakeFolder.setServerOverride(operationCounter.functor());
+
+        fakeFolder.localModifier().insert("external-storage/file", 100);
         QVERIFY(fakeFolder.syncOnce());
         QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
         QCOMPARE(printDbData(fakeFolder.dbState()), printDbData(fakeFolder.remoteModifier()));
-        QCOMPARE(nPUT, 1);
+        QCOMPARE(operationCounter.nPUT, 1);
+
+        const auto firstFileId = fakeFolder.remoteModifier().find("external-storage/file")->fileId;
 
-        fakeFolder.localModifier().rename("external/file", "external/file2");
-        fakeFolder.localModifier().rename("external/file2", "external/file3");
+        fakeFolder.localModifier().rename("external-storage/file", "external-storage/file2");
         QVERIFY(fakeFolder.syncOnce());
+        QCOMPARE(operationCounter.nMOVE, 1);
+
+        fakeFolder.localModifier().rename("external-storage/file2", "external-storage/file3");
+        QVERIFY(fakeFolder.syncOnce());
+        QCOMPARE(operationCounter.nMOVE, 2);
+
+        const auto renamedFileId = fakeFolder.remoteModifier().find("external-storage/file3")->fileId;
+
         QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
         QCOMPARE(printDbData(fakeFolder.dbState()), printDbData(fakeFolder.remoteModifier()));
-        QCOMPARE(fakeFolder.remoteModifier().children.size(), 1);
 
-        QCOMPARE(fakeFolder.remoteModifier().children.size(), 1);
-        QCOMPARE(fakeFolder.remoteModifier().children.value("external").children.size(), 1);
-        QCOMPARE(fakeFolder.remoteModifier().children.value("external").children.value("file3").name, QStringLiteral("file3"));
-        QCOMPARE(nPUT, 1);
-        QCOMPARE(nDELETE, 0);
+        QCOMPARE(fakeFolder.remoteModifier().find("external-storage/file"), nullptr);
+        QCOMPARE(fakeFolder.remoteModifier().find("external-storage/file2"), nullptr);
+        QVERIFY(fakeFolder.remoteModifier().find("external-storage/file3"));
+        QCOMPARE(firstFileId, renamedFileId);
     }
 
     void testDuplicateFileId_data()