From: Matthieu Gallien Date: Thu, 7 Apr 2022 08:44:54 +0000 (+0200) Subject: detect capabilities for lock/unlock of files X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~17^2~42^2~6 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=860d7dd9de11dcf28f2f7b01b6bf560a1fcd31f1;p=nextcloud-desktop.git detect capabilities for lock/unlock of files Signed-off-by: Matthieu Gallien --- diff --git a/src/libsync/capabilities.cpp b/src/libsync/capabilities.cpp index 155048a76..da713b46c 100644 --- a/src/libsync/capabilities.cpp +++ b/src/libsync/capabilities.cpp @@ -221,6 +221,11 @@ bool Capabilities::bulkUpload() const return _capabilities["dav"].toMap()["bulkupload"].toByteArray() >= "1.0"; } +bool Capabilities::filesLockAvailable() const +{ + return _capabilities["files"].toMap()["locking"].toByteArray() >= "1.0"; +} + bool Capabilities::userStatus() const { if (!_capabilities.contains("user_status")) { diff --git a/src/libsync/capabilities.h b/src/libsync/capabilities.h index 6bbb3e022..bbc2fd1b6 100644 --- a/src/libsync/capabilities.h +++ b/src/libsync/capabilities.h @@ -65,6 +65,7 @@ public: int shareDefaultPermissions() const; bool chunkingNg() const; bool bulkUpload() const; + bool filesLockAvailable() const; bool userStatus() const; bool userStatusSupportsEmoji() const; QColor serverColor() const; diff --git a/test/testcapabilities.cpp b/test/testcapabilities.cpp index 2088cc7b0..1952d7f36 100644 --- a/test/testcapabilities.cpp +++ b/test/testcapabilities.cpp @@ -257,6 +257,20 @@ private slots: QCOMPARE(bulkuploadAvailable, true); } + + void testFilesLockAvailable_filesLockAvailable_returnTrue() + { + QVariantMap filesMap; + filesMap["locking"] = "1.0"; + + QVariantMap capabilitiesMap; + capabilitiesMap["files"] = filesMap; + + const auto &capabilities = OCC::Capabilities(capabilitiesMap); + const auto filesLockAvailable = capabilities.filesLockAvailable(); + + QCOMPARE(filesLockAvailable, true); + } }; QTEST_GUILESS_MAIN(TestCapabilities)