From 860d7dd9de11dcf28f2f7b01b6bf560a1fcd31f1 Mon Sep 17 00:00:00 2001 From: Matthieu Gallien Date: Thu, 7 Apr 2022 10:44:54 +0200 Subject: [PATCH] detect capabilities for lock/unlock of files Signed-off-by: Matthieu Gallien --- src/libsync/capabilities.cpp | 5 +++++ src/libsync/capabilities.h | 1 + test/testcapabilities.cpp | 14 ++++++++++++++ 3 files changed, 20 insertions(+) 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) -- 2.30.2