Skip to content

Commit

Permalink
[tests-only][full-ci]Added GDPR export for folder creation, sharing a…
Browse files Browse the repository at this point in the history
… file (#6360)

* Added GDPR export for folder creation, sharing a file

* Added link creation GDPR scenario

* Added scenarios for GDPR export for item trashed event

* Review addresss
  • Loading branch information
SagarGi authored May 24, 2023
1 parent 768044c commit 3a93b44
Showing 1 changed file with 333 additions and 0 deletions.
333 changes: 333 additions & 0 deletions tests/acceptance/features/apiGraph/userGDPRExport.feature
Original file line number Diff line number Diff line change
Expand Up @@ -518,3 +518,336 @@ Feature: user GDPR (General Data Protection Regulation) report
| Admin | User |
| Admin | Guest |
| Admin | Admin |


Scenario: generate a GDPR report and check events when user creates a folder
Given user "Alice" has created folder "/folderMain"
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.ContainerCreated" in item 'events' and should match
"""
{
"type": "object",
"required": [
"event"
],
"properties": {
"event" : {
"type": "object",
"required": [
"Executant",
"Owner",
"Ref",
"SpaceOwner"
],
"properties": {
"Executant": {
"type": "object",
"required": [
"idp",
"opaque_id",
"type"
],
"properties": {
"idp": {
"type": "string",
"pattern": "^%base_url%$"
},
"opaque_id": {
"type": "string",
"pattern": "^%user_id_pattern%$"
},
"type": {
"type": "number",
"enum": [1]
}
}
},
"Ref": {
"type": "object",
"required": [
"path",
"resource_id"
],
"properties": {
"path" : {
"type": "string",
"enum": ["./folderMain"]
}
}
}
}
}
}
}
"""


Scenario: generate a GDPR report and check events when a user shares a folder
Given user "Brian" has been created with default attributes and without skeleton files
And user "Alice" has created folder "/folderMain"
And user "Alice" has shared entry "/folderMain" with user "Brian"
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.ShareCreated" in item 'events' and should match
"""
{
"type": "object",
"required": [
"event"
],
"properties": {
"event" : {
"type": "object",
"required": [
"CTime",
"Executant",
"GranteeGroupID",
"GranteeUserID",
"ItemID",
"Permissions",
"ShareID",
"Sharee",
"Sharer"
],
"properties": {
"GranteeGroupID": {
"type": ["number", "null"],
"enum": [null]
},
"Permissions": {
"type": "object",
"required": [
"permissions"
],
"properties": {
"permissions": {
"type": "object",
"required": [
"add_grant",
"get_path",
"get_quota",
"initiate_file_download",
"list_container",
"list_recycle",
"stat"
],
"properties": {
"add_grant" : {
"type": "boolean",
"enum": [true]
},
"get_path" : {
"type": "boolean",
"enum": [true]
},
"get_quota" : {
"type": "boolean",
"enum": [true]
},
"initiate_file_download" : {
"type": "boolean",
"enum": [true]
},
"list_container" : {
"type": "boolean",
"enum": [true]
},
"list_recycle" : {
"type": "boolean",
"enum": [true]
},
"stat" : {
"type": "boolean",
"enum": [true]
}
}
}
}
},
"ShareID": {
"type": "object",
"required": [
"opaque_id"
],
"properties": {
"type": "object",
"pattern": "^%user_id_pattern%:%user_id_pattern%:%user_id_pattern%$"
}
},
"Sharee": {
"type": ["number", "null"],
"enum": [null]
},
"Sharer": {
"type": "object",
"required": [
"idp",
"opaque_id",
"type"
],
"properties": {
"idp": {
"type": "string",
"pattern": "^%base_url%$"
},
"opaque_id": {
"type": "string",
"pattern": "^%user_id_pattern%$"
},
"type": {
"type": "number",
"enum": [1]
}
}
}
}
}
}
}
"""


Scenario: generate a GDPR report and check events when a user creates a public link share
Given user "Brian" has been created with default attributes and without skeleton files
And user "Alice" has created folder "/folderMain"
And user "Alice" has created a public link share with settings
| path | /folderMain |
| name | sharedlink |
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.LinkCreated" in item 'events' and should match
"""
{
"type": "object",
"required": [
"event"
],
"properties": {
"event" : {
"type": "object",
"required": [
"CTime",
"DisplayName",
"Executant",
"Expiration",
"ItemID",
"PasswordProtected",
"Permissions",
"ShareID",
"Sharer",
"Token"
],
"properties": {
"DisplayName": {
"type": "string",
"enum": ["sharedlink"]
},
"Expiration": {
"type": ["string", "null"],
"enum": [null]
},
"PasswordProtected": {
"type": "boolean",
"enum": [false]
},
"Permissions": {
"type": "object",
"required": [
"permissions"
],
"properties": {
"permissions": {
"type": "object",
"required": [
"get_path",
"get_quota",
"initiate_file_download",
"list_container",
"list_recycle",
"stat"
],
"properties": {
"get_path" : {
"type": "boolean",
"enum": [true]
},
"get_quota" : {
"type": "boolean",
"enum": [true]
},
"initiate_file_download" : {
"type": "boolean",
"enum": [true]
},
"list_container" : {
"type": "boolean",
"enum": [true]
},
"list_recycle" : {
"type": "boolean",
"enum": [true]
},
"stat" : {
"type": "boolean",
"enum": [true]
}
}
}
}
},
"Token": {
"type": "string",
"pattern": "^[a-zA-Z]{15}$"
}
}
}
}
}
"""


Scenario: generate a GDPR report and check events when user deletes a resource
Given user "Alice" has created folder "/folderMain"
And user "Alice" has deleted folder "/folderMain"
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.ItemTrashed" in item 'events' and should match
"""
{
"type": "object",
"required": [
"event"
],
"properties": {
"event" : {
"type": "object",
"required": [
"Executant",
"Owner",
"ID",
"Ref",
"SpaceOwner"
],
"properties": {
"Ref": {
"type": "object",
"required": [
"path"
],
"properties": {
"path" : {
"type": "string",
"enum": ["./folderMain"]
}
}
}
}
}
}
}
"""

0 comments on commit 3a93b44

Please sign in to comment.