add test for windows CfApi
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>
Mon, 6 Mar 2023 17:16:50 +0000 (18:16 +0100)
committerMatthieu Gallien <matthieu_gallien@yahoo.fr>
Wed, 8 Mar 2023 08:45:09 +0000 (09:45 +0100)
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
test/testsynccfapi.cpp

index 4b06b6e15cc720c1b941058147699c21d5bff9af..95dd076ffc38fc225e64ff3ed698da047536ff2d 100644 (file)
@@ -1218,6 +1218,32 @@ private slots:
             CFVERIFY_VIRTUAL(fakeFolder, "online/sub/file1");
         }
     }
+
+    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 = "<oc:data-fingerprint></oc:data-fingerprint>";
+
+        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 = "<oc:data-fingerprint>initial_finger_print</oc:data-fingerprint>";
+
+        fakeFolder.syncEngine().setLocalDiscoveryOptions(OCC::LocalDiscoveryStyle::DatabaseAndFilesystem);
+        QVERIFY(fakeFolder.syncOnce());
+
+        QCOMPARE(fakeFolder.currentLocalState(), fakeFolder.currentRemoteState());
+    }
 };
 
 QTEST_GUILESS_MAIN(TestSyncCfApi)