testcapabilities.cpp 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. #include <QTest>
  2. #include "capabilities.h"
  3. class TestCapabilities : public QObject
  4. {
  5. Q_OBJECT
  6. private slots:
  7. void testPushNotificationsAvailable_pushNotificationsForActivitiesAvailable_returnTrue()
  8. {
  9. QStringList typeList;
  10. typeList.append("activities");
  11. QVariantMap notifyPushMap;
  12. notifyPushMap["type"] = typeList;
  13. QVariantMap capabilitiesMap;
  14. capabilitiesMap["notify_push"] = notifyPushMap;
  15. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  16. const auto activitiesPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Activities);
  17. QCOMPARE(activitiesPushNotificationsAvailable, true);
  18. }
  19. void testPushNotificationsAvailable_pushNotificationsForActivitiesNotAvailable_returnFalse()
  20. {
  21. QStringList typeList;
  22. typeList.append("noactivities");
  23. QVariantMap notifyPushMap;
  24. notifyPushMap["type"] = typeList;
  25. QVariantMap capabilitiesMap;
  26. capabilitiesMap["notify_push"] = notifyPushMap;
  27. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  28. const auto activitiesPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Activities);
  29. QCOMPARE(activitiesPushNotificationsAvailable, false);
  30. }
  31. void testPushNotificationsAvailable_pushNotificationsForFilesAvailable_returnTrue()
  32. {
  33. QStringList typeList;
  34. typeList.append("files");
  35. QVariantMap notifyPushMap;
  36. notifyPushMap["type"] = typeList;
  37. QVariantMap capabilitiesMap;
  38. capabilitiesMap["notify_push"] = notifyPushMap;
  39. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  40. const auto filesPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Files);
  41. QCOMPARE(filesPushNotificationsAvailable, true);
  42. }
  43. void testPushNotificationsAvailable_pushNotificationsForFilesNotAvailable_returnFalse()
  44. {
  45. QStringList typeList;
  46. typeList.append("nofiles");
  47. QVariantMap notifyPushMap;
  48. notifyPushMap["type"] = typeList;
  49. QVariantMap capabilitiesMap;
  50. capabilitiesMap["notify_push"] = notifyPushMap;
  51. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  52. const auto filesPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Files);
  53. QCOMPARE(filesPushNotificationsAvailable, false);
  54. }
  55. void testPushNotificationsAvailable_pushNotificationsForNotificationsAvailable_returnTrue()
  56. {
  57. QStringList typeList;
  58. typeList.append("notifications");
  59. QVariantMap notifyPushMap;
  60. notifyPushMap["type"] = typeList;
  61. QVariantMap capabilitiesMap;
  62. capabilitiesMap["notify_push"] = notifyPushMap;
  63. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  64. const auto notificationsPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Notifications);
  65. QCOMPARE(notificationsPushNotificationsAvailable, true);
  66. }
  67. void testPushNotificationsAvailable_pushNotificationsForNotificationsNotAvailable_returnFalse()
  68. {
  69. QStringList typeList;
  70. typeList.append("nonotifications");
  71. QVariantMap notifyPushMap;
  72. notifyPushMap["type"] = typeList;
  73. QVariantMap capabilitiesMap;
  74. capabilitiesMap["notify_push"] = notifyPushMap;
  75. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  76. const auto notificationsPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Notifications);
  77. QCOMPARE(notificationsPushNotificationsAvailable, false);
  78. }
  79. void testPushNotificationsAvailable_pushNotificationsNotAvailable_returnFalse()
  80. {
  81. const auto &capabilities = OCC::Capabilities(QVariantMap());
  82. const auto activitiesPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Activities);
  83. const auto filesPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Files);
  84. const auto notificationsPushNotificationsAvailable = capabilities.availablePushNotifications().testFlag(OCC::PushNotificationType::Notifications);
  85. QCOMPARE(activitiesPushNotificationsAvailable, false);
  86. QCOMPARE(filesPushNotificationsAvailable, false);
  87. QCOMPARE(notificationsPushNotificationsAvailable, false);
  88. }
  89. void testPushNotificationsWebSocketUrl_urlAvailable_returnUrl()
  90. {
  91. QString websocketUrl("testurl");
  92. QVariantMap endpointsMap;
  93. endpointsMap["websocket"] = websocketUrl;
  94. QVariantMap notifyPushMap;
  95. notifyPushMap["endpoints"] = endpointsMap;
  96. QVariantMap capabilitiesMap;
  97. capabilitiesMap["notify_push"] = notifyPushMap;
  98. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  99. QCOMPARE(capabilities.pushNotificationsWebSocketUrl(), websocketUrl);
  100. }
  101. void testUserStatus_userStatusAvailable_returnTrue()
  102. {
  103. QVariantMap userStatusMap;
  104. userStatusMap["enabled"] = true;
  105. QVariantMap capabilitiesMap;
  106. capabilitiesMap["user_status"] = userStatusMap;
  107. const OCC::Capabilities capabilities(capabilitiesMap);
  108. QVERIFY(capabilities.userStatus());
  109. }
  110. void testUserStatus_userStatusNotAvailable_returnFalse()
  111. {
  112. QVariantMap userStatusMap;
  113. userStatusMap["enabled"] = false;
  114. QVariantMap capabilitiesMap;
  115. capabilitiesMap["user_status"] = userStatusMap;
  116. const OCC::Capabilities capabilities(capabilitiesMap);
  117. QVERIFY(!capabilities.userStatus());
  118. }
  119. void testUserStatus_userStatusNotInCapabilites_returnFalse()
  120. {
  121. QVariantMap capabilitiesMap;
  122. const OCC::Capabilities capabilities(capabilitiesMap);
  123. QVERIFY(!capabilities.userStatus());
  124. }
  125. void testUserStatusSupportsEmoji_supportsEmojiAvailable_returnTrue()
  126. {
  127. QVariantMap userStatusMap;
  128. userStatusMap["enabled"] = true;
  129. userStatusMap["supports_emoji"] = true;
  130. QVariantMap capabilitiesMap;
  131. capabilitiesMap["user_status"] = userStatusMap;
  132. const OCC::Capabilities capabilities(capabilitiesMap);
  133. QVERIFY(capabilities.userStatus());
  134. }
  135. void testUserStatusSupportsEmoji_supportsEmojiNotAvailable_returnFalse()
  136. {
  137. QVariantMap userStatusMap;
  138. userStatusMap["enabled"] = true;
  139. userStatusMap["supports_emoji"] = false;
  140. QVariantMap capabilitiesMap;
  141. capabilitiesMap["user_status"] = userStatusMap;
  142. const OCC::Capabilities capabilities(capabilitiesMap);
  143. QVERIFY(!capabilities.userStatusSupportsEmoji());
  144. }
  145. void testUserStatusSupportsEmoji_supportsEmojiNotInCapabilites_returnFalse()
  146. {
  147. QVariantMap userStatusMap;
  148. userStatusMap["enabled"] = true;
  149. QVariantMap capabilitiesMap;
  150. capabilitiesMap["user_status"] = userStatusMap;
  151. const OCC::Capabilities capabilities(capabilitiesMap);
  152. QVERIFY(!capabilities.userStatusSupportsEmoji());
  153. }
  154. void testShareDefaultPermissions_defaultSharePermissionsNotInCapabilities_returnZero()
  155. {
  156. QVariantMap filesSharingMap;
  157. filesSharingMap["api_enabled"] = false;
  158. QVariantMap capabilitiesMap;
  159. capabilitiesMap["files_sharing"] = filesSharingMap;
  160. const OCC::Capabilities capabilities(capabilitiesMap);
  161. const auto defaultSharePermissionsNotInCapabilities = capabilities.shareDefaultPermissions();
  162. QCOMPARE(defaultSharePermissionsNotInCapabilities, {});
  163. }
  164. void testShareDefaultPermissions_defaultSharePermissionsAvailable_returnPermissions()
  165. {
  166. QVariantMap filesSharingMap;
  167. filesSharingMap["api_enabled"] = true;
  168. filesSharingMap["default_permissions"] = 31;
  169. QVariantMap capabilitiesMap;
  170. capabilitiesMap["files_sharing"] = filesSharingMap;
  171. const OCC::Capabilities capabilities(capabilitiesMap);
  172. const auto defaultSharePermissionsAvailable = capabilities.shareDefaultPermissions();
  173. QCOMPARE(defaultSharePermissionsAvailable, 31);
  174. }
  175. void testBulkUploadAvailable_bulkUploadAvailable_returnTrue()
  176. {
  177. QVariantMap bulkuploadMap;
  178. bulkuploadMap["bulkupload"] = "1.0";
  179. QVariantMap capabilitiesMap;
  180. capabilitiesMap["dav"] = bulkuploadMap;
  181. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  182. const auto bulkuploadAvailable = capabilities.bulkUpload();
  183. QCOMPARE(bulkuploadAvailable, true);
  184. }
  185. void testFilesLockAvailable_filesLockAvailable_returnTrue()
  186. {
  187. QVariantMap filesMap;
  188. filesMap["locking"] = "1.0";
  189. QVariantMap capabilitiesMap;
  190. capabilitiesMap["files"] = filesMap;
  191. const auto &capabilities = OCC::Capabilities(capabilitiesMap);
  192. const auto filesLockAvailable = capabilities.filesLockAvailable();
  193. QCOMPARE(filesLockAvailable, true);
  194. }
  195. };
  196. QTEST_GUILESS_MAIN(TestCapabilities)
  197. #include "testcapabilities.moc"