From c9fe64038818247dccd9057d714238ab9f71fb2e Mon Sep 17 00:00:00 2001 From: Sagar Gurung <46086950+SagarGi@users.noreply.github.com> Date: Thu, 27 Apr 2023 19:01:15 +0545 Subject: [PATCH] Added scenarios for GDPR export for file uplaod (#6159) --- .../features/apiGraph/userGDPRExport.feature | 171 ++++++++++++++++++ 1 file changed, 171 insertions(+) diff --git a/tests/acceptance/features/apiGraph/userGDPRExport.feature b/tests/acceptance/features/apiGraph/userGDPRExport.feature index c804e883046..e0f0052ba12 100644 --- a/tests/acceptance/features/apiGraph/userGDPRExport.feature +++ b/tests/acceptance/features/apiGraph/userGDPRExport.feature @@ -178,3 +178,174 @@ Feature: user GDPR (General Data Protection Regulation) report } } """ + + + Scenario: generate a GDPR report and check events when user uploads a file + Given user "Alice" has uploaded file with content "sample text" to "lorem.txt" + When user "Alice" exports her GDPR report to "/.personal_data_export.json" using the Graph API + And user "Alice" downloads the content of GDPR report ".personal_data_export.json" + Then the HTTP status code of responses on each endpoint should be "201, 200" respectively + And the downloaded JSON content should contain event type "events.BytesReceived" in item 'events' and should match + """ + { + "type": "object", + "required": [ + "event" + ], + "properties": { + "event" : { + "type": "object", + "required": [ + "ExecutingUser", + "Filename", + "ResourceID", + "Filesize", + "UploadID", + "SpaceOwner" + ], + "properties": { + "ExecutingUser": { + "type": "object", + "required": [ + "username" + ], + "properties": { + "username": { + "type": "string", + "enum": ["Alice"] + } + } + }, + "Filename": { + "type": "string", + "enum": ["lorem.txt"] + }, + "Filesize": { + "type": "number", + "enum": [11] + }, + "Quota": { + "type": ["number", "null"], + "enum": [null] + } + } + } + } + } + """ + And the downloaded JSON content should contain event type "events.FileUploaded" in item 'events' and should match + """ + { + "type": "object", + "required": [ + "event" + ], + "properties": { + "event" : { + "type": "object", + "required": [ + "Executant", + "Owner", + "Ref", + "SpaceOwner" + ], + "properties": { + "Ref": { + "type": "object", + "required": [ + "path" + ], + "properties": { + "path" : { + "type": "string", + "enum": ["./lorem.txt"] + } + } + } + } + } + } + } + """ + And the downloaded JSON content should contain event type "events.PostprocessingFinished" in item 'events' and should match + """ + { + "type": "object", + "required": [ + "event" + ], + "properties": { + "event" : { + "type": "object", + "required": [ + "ExecutingUser", + "Filename", + "Result" + ], + "properties": { + "ExecutingUser": { + "type": "object", + "required": [ + "username" + ], + "properties": { + "username": { + "type": "string", + "enum": ["Alice"] + } + } + }, + "Filename": { + "type": "string", + "enum": ["lorem.txt"] + }, + "Result": { + "type": "object", + "required": [ + "init" + ], + "properties": { + "init": { + "type": "object", + "required": [ + "ExecutingUser", + "Filename", + "ResourceID", + "Filesize", + "UploadID", + "SpaceOwner" + ], + "properties": { + "ExecutingUser": { + "type": "object", + "required": [ + "username" + ], + "properties": { + "username": { + "type": "string", + "enum": ["Alice"] + } + } + }, + "Filename": { + "type": "string", + "enum": ["lorem.txt"] + }, + "Filesize": { + "type": "number", + "enum": [11] + }, + "Quota": { + "type": ["number", "null"], + "enum": [null] + } + } + } + } + } + } + } + } + } + """