diff --git a/tests/acceptance/features/apiSettings/notificationSetting.feature b/tests/acceptance/features/apiSettings/notificationSetting.feature index 7735d304f08..c9f417d4930 100644 --- a/tests/acceptance/features/apiSettings/notificationSetting.feature +++ b/tests/acceptance/features/apiSettings/notificationSetting.feature @@ -444,3 +444,230 @@ Feature: Notification Settings | message | | Alice Hansen shared insideSpace.txt with you | But user "Brian" should not have a notification related to resource "insideSpace.txt" with subject "Resource unshared" + + @antivirus @skipOnReva + Scenario Outline: disable in-app notification for File rejected event + Given using DAV path + When user "Brian" disables notification for the following events using the settings API: + | File rejected | in-app | + Then the HTTP status code should be "201" + And the JSON data of the response should match + """ + { + "type": "object", + "required": ["value"], + "properties": { + "value": { + "type": "object", + "required": ["identifier","value"], + "properties": { + "identifier":{ + "type": "object", + "required": ["extension","bundle","setting"], + "properties": { + "extension":{ + "const": "ocis-accounts" + }, + "bundle":{ + "const": "profile" + }, + "setting":{ + "const": "event-postprocessing-step-finished-options" + } + } + }, + "value":{ + "type": "object", + "required": [ + "id", + "bundleId", + "settingId", + "accountUuid", + "resource", + "collectionValue" + ], + "properties":{ + "id":{ + "pattern":"%uuidv4_pattern%" + }, + "bundleId":{ + "pattern":"%uuidv4_pattern%" + }, + "settingId":{ + "pattern":"%uuidv4_pattern%" + }, + "accountUuid":{ + "pattern":"%uuidv4_pattern%" + }, + "resource":{ + "type": "object", + "required":["type"], + "properties": { + "type":{ + "const": "TYPE_USER" + } + } + }, + "collectionValue":{ + "type": "object", + "required":["values"], + "properties": { + "values":{ + "type": "array", + "maxItems": 1, + "minItems": 1, + "uniqueItems": true, + "items": { + "oneOf": [ + { + "type": "object", + "required": [ + "key", + "boolValue" + ], + "properties": { + "key":{ + "const": "in-app" + }, + "boolValue":{ + "const": false + } + } + } + ] + } + } + } + } + } + } + } + } + } + } + """ + And user "Brian" has uploaded file "filesForUpload/filesWithVirus/" to "" + When user "Brian" lists all notifications + Then the HTTP status code should be "200" + And user "Brian" should not have any notification + Examples: + | dav-path-version | file-name | new-file-name | + | old | eicar.com | virusFile1.txt | + | new | eicar.com | virusFile1.txt | + | spaces | eicar.com | virusFile1.txt | + + @antivirus @skipOnReva + Scenario: disable in-app notification for File rejected event (Project space) + Given using spaces DAV path + And the administrator has assigned the role "Space Admin" to user "Alice" using the Graph API + And user "Alice" has created a space "newSpace" with the default quota using the Graph API + And user "Alice" has sent the following space share invitation: + | space | newSpace | + | sharee | Brian | + | shareType | user | + | permissionsRole | Space Editor | + When user "Brian" disables notification for the following events using the settings API: + | File rejected | in-app | + Then the HTTP status code should be "201" + And the JSON data of the response should match + """ + { + "type": "object", + "required": ["value"], + "properties": { + "value": { + "type": "object", + "required": ["identifier","value"], + "properties": { + "identifier":{ + "type": "object", + "required": ["extension","bundle","setting"], + "properties": { + "extension":{ + "const": "ocis-accounts" + }, + "bundle":{ + "const": "profile" + }, + "setting":{ + "const": "event-postprocessing-step-finished-options" + } + } + }, + "value":{ + "type": "object", + "required": [ + "id", + "bundleId", + "settingId", + "accountUuid", + "resource", + "collectionValue" + ], + "properties":{ + "id":{ + "pattern":"%uuidv4_pattern%" + }, + "bundleId":{ + "pattern":"%uuidv4_pattern%" + }, + "settingId":{ + "pattern":"%uuidv4_pattern%" + }, + "accountUuid":{ + "pattern":"%uuidv4_pattern%" + }, + "resource":{ + "type": "object", + "required":["type"], + "properties": { + "type":{ + "const": "TYPE_USER" + } + } + }, + "collectionValue":{ + "type": "object", + "required":["values"], + "properties": { + "values":{ + "type": "array", + "maxItems": 1, + "minItems": 1, + "uniqueItems": true, + "items": { + "oneOf": [ + { + "type": "object", + "required": [ + "key", + "boolValue" + ], + "properties": { + "key":{ + "const": "in-app" + }, + "boolValue":{ + "const": false + } + } + } + ] + } + } + } + } + } + } + } + } + } + } + """ + And user "Brian" has uploaded a file "filesForUpload/filesWithVirus/eicar.com" to "virusFile.txt" in space "newSpace" + When user "Brian" lists all notifications + Then the HTTP status code should be "200" + And user "Brian" should get a notification with subject "Space shared" and message: + | message | + | Alice Hansen added you to Space newSpace | + But user "Brian" should not have a notification related to resource "virusFile.txt" with subject "Virus found"