From f2685589e23dc1dd6f2cdf98b9f84f8ad5ac937e Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Wed, 29 Apr 2020 18:49:43 +0200 Subject: [PATCH 01/11] Initial commit --- ...adding_collaborators_to_a_resource.feature | 25 ++++++++++ features/sharing/collaborators.md | 28 +++++++++++ ...naging_collaborators_of_a_resource.feature | 35 +++++++++++++ .../sharing/roles_for_collaborators.feature | 50 +++++++++++++++++++ 4 files changed, 138 insertions(+) create mode 100644 features/sharing/adding_collaborators_to_a_resource.feature create mode 100644 features/sharing/collaborators.md create mode 100644 features/sharing/managing_collaborators_of_a_resource.feature create mode 100644 features/sharing/roles_for_collaborators.feature diff --git a/features/sharing/adding_collaborators_to_a_resource.feature b/features/sharing/adding_collaborators_to_a_resource.feature new file mode 100644 index 0000000..4a007f4 --- /dev/null +++ b/features/sharing/adding_collaborators_to_a_resource.feature @@ -0,0 +1,25 @@ +Feature: Adding collaborators to a resource + +Scenario: Finding collaborators + GIVEN I'm a logged in user located in the collaborators panel of a resource + WHEN I start typing in the collaborator search field + THEN I see suggestions (with potentially many characters) based on the available user and group identifiers/attributes, sharing restrictions and options for autocomplete results. These are structured in the following way: + - [Avatar] Identifier / name / mail address / federation ID + - Additional information if applicable (e.g. 'Scenario: Extra field to display in autocomplete results') + - Type (User/Group/Guest/Federated) + AND the suggestions for guests or federated users only appear once I enter a compliant identifier (e.g., "name@sub.domain.tld") + THEN I choose a collaborator + AND the chosen collaborator's becomes fixed but can easily be removed again + AND I can start typing again to add additional collaborators + +Scenario: Setting collaborator properties + GIVEN I'm adding collaborators as in 'Scenario: Finding collaborators' + WHEN having added the first collaborator + THEN I can choose a role for the chosen collaborators as in 'Feature: Roles for collaborators' + THEN I can set an expiration date for the chosen collaborators as in 'Feature: Expiration date for collaborators' + +Scenario: Confirming collaborators + GIVEN I have set collaborator properties as in 'Scenario: Setting collaborator properties' + WHEN I confirm the supplied information + THEN the collaborators are added to the resource according to the specified properties + AND I get visual feedback to know whether the action was successful or not diff --git a/features/sharing/collaborators.md b/features/sharing/collaborators.md new file mode 100644 index 0000000..97cbdbb --- /dev/null +++ b/features/sharing/collaborators.md @@ -0,0 +1,28 @@ +--- +title: Collaborators +geekdocRepo: https://github.com/owncloud/product +geekdocEditPath: edit/master/docs +geekdocFilePath: collaborators.md +--- + +This document describes the features around 'Collaborators' from the perspective of the owner. The perspective of a recipient is described in the section 'Resources'. + +## User stories + +## Requirements + +### Adding collaborators to a resource + +- As an owner or co-owner of a resource I want to be able to add other collaborators to the resource in order to provide access and to enable collaboration on the resource. + +{{< include file="features/sharing/adding_collaborators_to_a_resource.feature" language="gherkin">}} + +### Managing collaborators of a resource + +{{< include file="features/sharing/managing_collaborators_of_a_resource.feature" language="gherkin">}} + +### Roles for collaborators + +- As a regular user adding collaborators to a resource I want to choose roles for collaborators as these are easy to understand and less technical than raw permissions. Still, I need a brief explanation of what the roles exactly stand for in order to prevent mistakes. For legacy reasons and as a power user I still need granular permissions to restrict collaborators to exactly the features I want to allow. + +{{< include file="features/sharing/roles_for_collaborators.feature" language="gherkin">}} diff --git a/features/sharing/managing_collaborators_of_a_resource.feature b/features/sharing/managing_collaborators_of_a_resource.feature new file mode 100644 index 0000000..5077190 --- /dev/null +++ b/features/sharing/managing_collaborators_of_a_resource.feature @@ -0,0 +1,35 @@ +Feature: Managing collaborators of a resource + +Scenario: Viewing collaborators of a resource + GIVEN I'm a collaborator of a specific resource + AND I have the role 'Owner' +# OR I have the role 'Co-Owner' + WHEN looking at the resource in detail + THEN I get a list of all collaborators of the resource separated by users and groups that whereby each entry contains the following information + - Name and additional information based on 'Scenario: Extra field to display in autocomplete results' + - Avatar + - Type (User/Guest/Federated) + - Role + - State (pending/accepted; for local/federated/guest) + - Expiration date (if applicable) + - Initiator of a reshare (if applicable) + +Scenario: Removing a collaborator from a resource + GIVEN I'm a collaborator of a specific resource + AND I have the role 'Owner' +# OR I have the role 'Co-Owner' + WHEN looking at the resource in detail + THEN I can remove collaborators from the resource + AND I have to confirm the removal + AND the collaborator disappears from the list + AND the removed users do not have access anymore + +Scenario: Modifying a collaborator of a resource + GIVEN I'm a collaborator of a specific resource + AND I have the role 'Owner' +# OR I have the role 'Co-Owner' + WHEN looking at the resource in detail + THEN I can change each collaborator's role as in 'Feature: Roles for collaborators' + AND I can change each collaborator's expiration date as in 'Feature: Expiration date for collaborators' + AND I have to confirm the modifications + AND the modifications take effect diff --git a/features/sharing/roles_for_collaborators.feature b/features/sharing/roles_for_collaborators.feature new file mode 100644 index 0000000..ac466cf --- /dev/null +++ b/features/sharing/roles_for_collaborators.feature @@ -0,0 +1,50 @@ +Feature: Roles for collaborators + +- Owner: The physical owner of the resource +#- Co-Owner: Full permissions including managing existing and adding additional collaborators +- Editor: View + Edit permissions +- Viewer: View only +#- Dynamic roles (e.g. Secure Viewer) +- Advanced permissions + - Cover legacy permission combinations + - Offer granular permission sets + +Scenario: Setting roles for collaborators on a single file + GIVEN I'm a collaborator of a specific file + AND I have the role 'Owner' +# OR I have the role 'Co-Owner' + WHEN located in 'Scenario: Setting collaborator properties' +# THEN I can choose the role 'Co-Owner' +# AND I see an explanatory note "Manage collaborators, view, download and edit" + THEN I can choose the role 'Editor' + AND I see an explanatory note "View, download and edit" + THEN I can choose the role 'Viewer' + AND I see an explanatory note "View and download" +# THEN I can choose dynamic roles like 'Secure Viewer' which are introduced by apps +# AND I see an explanatory note defined by the respective app +# WHEN choosing a dynamic role +# THEN I can set single sub-permissions like 'Print / Export PDF' defined by the respective app + THEN I can choose the role 'Advanced permissions' + AND I see an explanatory note "Set detailed permissions" + WHEN choosing the role 'Advanced permissions' + THEN I can set single permissions "Manage" and "Edit" + +Scenario: Setting roles for collaborators on a folder + GIVEN I'm a collaborator of a specific folder + AND I have the role 'Owner' +# OR I have the role 'Co-Owner' + WHEN located in 'Scenario: Setting collaborator properties' +# THEN I can choose the role 'Co-Owner' +# AND I see an explanatory note "Manage collaborators, view, download, edit and delete" + THEN I can choose the role 'Editor' + AND I see an explanatory note "View, download, edit and delete" + THEN I can choose the role 'Viewer' + AND I see an explanatory note "View and download" +# THEN I can choose dynamic roles like 'Secure Viewer' which are introduced by apps +# AND I see an explanatory note defined by the respective app +# WHEN choosing a dynamic role +# THEN I can set single sub-permissions like 'Print / Export PDF' defined by the respective app + THEN I can choose the role 'Advanced permissions' + AND I see an explanatory note "Set detailed permissions" + WHEN choosing the role 'Advanced permissions' + THEN I can set single permissions "Manage", "Create", "Change", "Delete" From b160f268c0a17228605007a1e5de89f5d4134348 Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Tue, 5 May 2020 16:40:47 +0200 Subject: [PATCH 02/11] Add side of the recipient --- features/resources/_index.md | 4 ++ ...ssing_a_resource_as_a_collaborator.feature | 70 +++++++++++++++++++ features/sharing/_index.md | 2 +- features/sharing/collaborators.md | 3 + 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 features/resources/accessing_a_resource_as_a_collaborator.feature diff --git a/features/resources/_index.md b/features/resources/_index.md index 01c90eb..0e54c21 100644 --- a/features/resources/_index.md +++ b/features/resources/_index.md @@ -9,6 +9,10 @@ geekdocFilePath: _index.md ## Requirements +### Accessing a resource as a collaborator + +{{< include file="features/resources/accessing_a_resource_as_a_collaborator.feature" language="gherkin" >}} + ### Accessing a resource via a link {{< include file="features/resources/accessing_a_resource_via_link.feature" language="gherkin" >}} diff --git a/features/resources/accessing_a_resource_as_a_collaborator.feature b/features/resources/accessing_a_resource_as_a_collaborator.feature new file mode 100644 index 0000000..435aec4 --- /dev/null +++ b/features/resources/accessing_a_resource_as_a_collaborator.feature @@ -0,0 +1,70 @@ +Feature: Accessing a resource as a collaborator + +Scenario: Accessing a resource as a collaborator with the 'Viewer' role + GIVEN I'm a logged in user who is a collaborator of a resource + AND I have the role 'Viewer' +# AND I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' + WHEN accessing this resource + THEN I can list the resource and its contents + AND I can download the resource and its contents + AND I can view the resource and its contents as in 'Feature: Accessing a resource' + AND I can rename the resource as in 'Scenario: Renaming a shared resource in a users' personal space' + AND I can move the resource as in 'Scenario: Moving a shared resource within a users' personal space' + AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a users' personal space' + +Scenario: Accessing a resource as a collaborator with the 'Editor' role + GIVEN I'm a logged in user who is a collaborator of a resource + AND I have the role 'Editor' +# AND I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' + WHEN accessing this resource + THEN I can list the resource and its contents + AND I can download the resource and its contents + AND I can view the resource and its contents as in 'Feature: Accessing a resource' + AND I can rename the resource as in 'Scenario: Renaming a shared resource in a users' personal space' + AND I can move the resource as in 'Scenario: Moving a shared resource within a users' personal space' + AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a users' personal space' + AND I can rename the contents of the resource as in 'Feature: Renaming a resource' + AND I can delete the contents of the resource as in 'Feature: Deleting a resource' + AND I can move the contents of the resource as in 'Feature: Moving a resource' + AND I can move resources into the resource as in 'Feature: Moving a resource' + AND I can move resources out of the resource as in 'Feature: Moving a resource' + AND I can create resources within the resource as in 'Feature: Creating a resource' + AND I can upload resources into the resource as in 'Feature: Uploading a resource' + AND I can edit/change/update the resource and its contents + +Scenario: Accessing a resource as a collaborator with the 'Advanced permissions' role + GIVEN I'm a logged in user who is a collaborator of a resource + AND I have the role 'Advanced permissions' +# AND I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' + WHEN accessing this resource + THEN I can list the resource and its contents + AND I can download the resource and its contents + AND I can view the resource and its contents as in 'Feature: Accessing a resource' + AND I can rename the resource as in 'Scenario: Renaming a shared resource in a users' personal space' + AND I can move the resource as in 'Scenario: Moving a shared resource within a users' personal space' + AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a users' personal space' + AND I can use the resource based on the additionally granted detailed permissions described below + AND the granted detailed permissions can stack/complement each other + + WHEN accessing this resources without any of the detailed permissions + THEN the behavior equals 'Scenario: Accessing a resource as a collaborator with the 'Viewer' role' + + WHEN accessing this resource only with the permission "Edit" (single file) + THEN I can edit/change/update the resource + + WHEN accessing this resource only with the permission "Create" (folder) + THEN I can move resources into the resource as in 'Feature: Moving a resource' + AND I can create resources within the resource as in 'Feature: Creating a resource' + AND I can upload resources into the resource as in 'Feature: Uploading a resource' + + WHEN accessing this resource only with the permission "Change" (folder) + THEN I can rename the contents of the resource as in 'Feature: Renaming a resource' + AND I can edit/change/update the resource and its contents + + WHEN accessing this resource only with the permission "Delete" (folder) + THEN I can delete the contents of the resource as in 'Feature: Deleting a resource' + AND I can move resources out of the resource as in 'Feature: Moving a resource' + + WHEN accessing this resource only with the permission "Manage" + THEN I can add collaborators to the resource as in 'Feature: Adding collaborators to a resource' + AND I can manage the collaborators of the resource as in 'Feature: Managing collaborators of a resource' diff --git a/features/sharing/_index.md b/features/sharing/_index.md index 51aa60c..2d5489d 100644 --- a/features/sharing/_index.md +++ b/features/sharing/_index.md @@ -2,7 +2,7 @@ title: Sharing geekdocRepo: https://github.com/owncloud/product geekdocEditPath: edit/master/docs -geekdocFilePath: sharing.md +geekdocFilePath: _index.md --- Sharing. diff --git a/features/sharing/collaborators.md b/features/sharing/collaborators.md index 97cbdbb..ce9ad16 100644 --- a/features/sharing/collaborators.md +++ b/features/sharing/collaborators.md @@ -9,6 +9,9 @@ This document describes the features around 'Collaborators' from the perspective ## User stories +1. Adding single collaborators to a resource (user share) +* Use case: As a user I want to exchange data with internal single users for that they get access and can collaborate with me + ## Requirements ### Adding collaborators to a resource From e2c73ea75b3cdb5f226f751444bc21b4be59e21c Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Thu, 14 May 2020 12:42:00 +0200 Subject: [PATCH 03/11] Add pending shares --- features/resources/_index.md | 20 +++++++++++++++++++ ..._a_collaborator_to_from_a_resource.feature | 14 +++++++++++++ ...rview_of_received_shared_resources.feature | 7 +++++++ features/resources/pending_shares.feature | 15 ++++++++++++++ 4 files changed, 56 insertions(+) create mode 100644 features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature create mode 100644 features/resources/overview_of_received_shared_resources.feature create mode 100644 features/resources/pending_shares.feature diff --git a/features/resources/_index.md b/features/resources/_index.md index 0e54c21..4f1ddf5 100644 --- a/features/resources/_index.md +++ b/features/resources/_index.md @@ -13,6 +13,26 @@ geekdocFilePath: _index.md {{< include file="features/resources/accessing_a_resource_as_a_collaborator.feature" language="gherkin" >}} +### Being added/removed as a collaborator to/from a resource + +{{< include file="features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature" language="gherkin" >}} + +### Pending Shares + +- As a user I don't want that resources I'm added as a collaborator to are directly available in my hierarchy and for sync for that I can decide whether I need them or not. +- As a user I want that resources I'm added as a collaborator to are directly available in my hierarchy and for sync for that I can directly work with them without requiring any interaction. + +{{< include file="features/resources/pending_shares.feature" language="gherkin" >}} + +### Overview of received shared resources + +- As a user I only want to view the resources that I'm a collaborator of to separate other users' files from mine as well as to add or remove them to/from my personal space. +- As a user I want to get a list of collaborator invitations that I didn't yet decide upon ("Pending Shares") to be able to add a pending shared space to my personal space after dismissing the invitation notification or to re-add a resource I previously removed from my personal space as in 'Feature: Removing a shared resource from a users' personal space'. +- As a user it helps me to list shares with state "Pending" first by default as these are usually the most actionable ones. + +{{< include file="features/resources/overview_of_received_shared_resources.feature" language="gherkin" >}} + + ### Accessing a resource via a link {{< include file="features/resources/accessing_a_resource_via_link.feature" language="gherkin" >}} diff --git a/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature b/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature new file mode 100644 index 0000000..03b2f8c --- /dev/null +++ b/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature @@ -0,0 +1,14 @@ +Feature: Being added/removed as a collaborator to/from a resource + +Scenario: Being added as a regular single user + GIVEN I'm a regular ownCloud user of the instance the resource is located on + WHEN I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' + THEN the subsequent behavior is determined by 'Feature: Pending Shares' + +Scenario: Being removed as a collaborator from a resource + GIVEN I'm a collaborator of a certain resource + WHEN an Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' + OR a Co-Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' + THEN I do not have access to the resource anymore + AND the resource disappears from my resource list + AND I don't have a way to get back access except asking an Owner/Co-Owner to add me again diff --git a/features/resources/overview_of_received_shared_resources.feature b/features/resources/overview_of_received_shared_resources.feature new file mode 100644 index 0000000..f0da305 --- /dev/null +++ b/features/resources/overview_of_received_shared_resources.feature @@ -0,0 +1,7 @@ +Feature: Overview of received shared resources + +Scenario: Listing received shared resources + TODO: + +- Which information should be shown in the list? +- Share time? diff --git a/features/resources/pending_shares.feature b/features/resources/pending_shares.feature new file mode 100644 index 0000000..6297c19 --- /dev/null +++ b/features/resources/pending_shares.feature @@ -0,0 +1,15 @@ +Feature: Pending Shares + +Scenario: Being added as a collaborator to a resource (Pending Shares enabled) + GIVEN I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' +# WHEN the option 'Automatically accept new incoming local user shares' is disabled + THEN the resource is not yet located in my file hierarchy +# THEN I am notified about the invite and can choose to accept or decline the resource + AND the resource appears in 'Feature: Overview of received shared resources' with state 'Pending' + WHEN I decline the resource +# THEN the notification is dismissed + THEN the resource stays in pending/declined state + WHEN I accept the resource +# THEN the notification is dismissed + THEN the resource is located in the folder configured via the 'share_folder' option + AND I can access it as in 'Feature: Accessing a resource as a collaborator' From 6ba00257d117a08c6170e560711c1facc533262a Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Thu, 14 May 2020 16:13:22 +0200 Subject: [PATCH 04/11] Add overview of received shared resources --- features/resources/_index.md | 4 +-- ...rview_of_received_shared_resources.feature | 32 +++++++++++++++++-- features/resources/pending_shares.feature | 7 ++-- 3 files changed, 35 insertions(+), 8 deletions(-) diff --git a/features/resources/_index.md b/features/resources/_index.md index 4f1ddf5..3eedc34 100644 --- a/features/resources/_index.md +++ b/features/resources/_index.md @@ -27,12 +27,12 @@ geekdocFilePath: _index.md ### Overview of received shared resources - As a user I only want to view the resources that I'm a collaborator of to separate other users' files from mine as well as to add or remove them to/from my personal space. -- As a user I want to get a list of collaborator invitations that I didn't yet decide upon ("Pending Shares") to be able to add a pending shared space to my personal space after dismissing the invitation notification or to re-add a resource I previously removed from my personal space as in 'Feature: Removing a shared resource from a users' personal space'. +- As a user I want to get a list of collaborator invitations that I didn't yet decide upon ("Pending Shares") to be able to add a resource to my personal space after dismissing the invitation notification or to re-add a resource I previously removed from my personal space. - As a user it helps me to list shares with state "Pending" first by default as these are usually the most actionable ones. +- As a user I want to remove a shared resource from my personal space if I do no longer need it or accidentally accepted it in order to move it out of sight and to keep my account clean. The resource should stay shared with me but in a declined state. I don't want to inform the owner of the resource about it because I can restore access to the resource at any time by adding it again. {{< include file="features/resources/overview_of_received_shared_resources.feature" language="gherkin" >}} - ### Accessing a resource via a link {{< include file="features/resources/accessing_a_resource_via_link.feature" language="gherkin" >}} diff --git a/features/resources/overview_of_received_shared_resources.feature b/features/resources/overview_of_received_shared_resources.feature index f0da305..d1558c9 100644 --- a/features/resources/overview_of_received_shared_resources.feature +++ b/features/resources/overview_of_received_shared_resources.feature @@ -1,7 +1,33 @@ Feature: Overview of received shared resources Scenario: Listing received shared resources - TODO: + GIVEN I'm logged in as a user + WHEN I have accepted collaborator invites + OR I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' + OR I have shared resources that I removed from my personal space previously as in 'Feature: Removing a shared resource from a users' personal space' + THEN I can list these resources + AND I see the name of the resources + AND I see file type icons or thumbnails + AND I can recognize the initiator of the invite + AND I see the time since the invite has been initiated + AND I see the state of the invite (accepted/pending/declined) + AND I can add these resources to my personal space as in 'Scenario: Adding a shared resource to a users' personal space' + AND I can remove these resources from my personal space as in 'Scenario: Removing a shared resource from a users' personal space' + AND I can sort the list (ascending/descending) by name, state and time -- Which information should be shown in the list? -- Share time? +Scenario: Adding a shared resource to a users' personal space + GIVEN I'm a logged in user + WHEN I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' + OR I have declined collaborator invites + THEN I can add such a resource to my personal space + AND the state of the invite changes to 'accepted' + AND the resource is located in the folder configured via the 'share_folder' option + AND I can access it as in 'Feature: Accessing a resource as a collaborator' + +Scenario: Removing a shared resource from a users' personal space + GIVEN I'm a logged in user + WHEN I have accepted collaborator invites + THEN I can remove such a resource from my personal space + AND the state of the invite changes to 'declined' + AND the resource is not located in my hierarchy any more + AND I can't access it any more diff --git a/features/resources/pending_shares.feature b/features/resources/pending_shares.feature index 6297c19..a87faa6 100644 --- a/features/resources/pending_shares.feature +++ b/features/resources/pending_shares.feature @@ -4,12 +4,13 @@ Scenario: Being added as a collaborator to a resource (Pending Shares enabled) GIVEN I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' # WHEN the option 'Automatically accept new incoming local user shares' is disabled THEN the resource is not yet located in my file hierarchy -# THEN I am notified about the invite and can choose to accept or decline the resource +# THEN I am notified about the invite and can choose to 'accept' or 'decline' it AND the resource appears in 'Feature: Overview of received shared resources' with state 'Pending' WHEN I decline the resource # THEN the notification is dismissed - THEN the resource stays in pending/declined state + THEN the state of the invite changes to 'declined' WHEN I accept the resource # THEN the notification is dismissed - THEN the resource is located in the folder configured via the 'share_folder' option + THEN the state of the invite changes to 'accepted' + AND the resource is located in the folder configured via the 'share_folder' option AND I can access it as in 'Feature: Accessing a resource as a collaborator' From cef8922e5ed682b8020d4bd398d746ca44a72e21 Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Thu, 14 May 2020 16:20:42 +0200 Subject: [PATCH 05/11] corrections --- .../sharing/managing_collaborators_of_a_resource.feature | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/features/sharing/managing_collaborators_of_a_resource.feature b/features/sharing/managing_collaborators_of_a_resource.feature index 5077190..27388fb 100644 --- a/features/sharing/managing_collaborators_of_a_resource.feature +++ b/features/sharing/managing_collaborators_of_a_resource.feature @@ -6,12 +6,13 @@ Scenario: Viewing collaborators of a resource # OR I have the role 'Co-Owner' WHEN looking at the resource in detail THEN I get a list of all collaborators of the resource separated by users and groups that whereby each entry contains the following information - - Name and additional information based on 'Scenario: Extra field to display in autocomplete results' + - Name +# - Additional information based on 'Scenario: Extra field to display in autocomplete results' - Avatar - - Type (User/Guest/Federated) +# - Type (User/Guest/Federated) - Role - - State (pending/accepted; for local/federated/guest) - - Expiration date (if applicable) +# - State (pending/accepted; for local/federated/guest) +# - Expiration date (if applicable) - Initiator of a reshare (if applicable) Scenario: Removing a collaborator from a resource From f654bb0004aa29a45f91e0238106582a6ed06fcb Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Thu, 14 May 2020 17:39:27 +0200 Subject: [PATCH 06/11] add details for viewing collaborators --- ...naging_collaborators_of_a_resource.feature | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/features/sharing/managing_collaborators_of_a_resource.feature b/features/sharing/managing_collaborators_of_a_resource.feature index 27388fb..16e2f0f 100644 --- a/features/sharing/managing_collaborators_of_a_resource.feature +++ b/features/sharing/managing_collaborators_of_a_resource.feature @@ -1,11 +1,11 @@ Feature: Managing collaborators of a resource -Scenario: Viewing collaborators of a resource +Scenario: Viewing collaborators of a resource as an Owner/Co-Owner GIVEN I'm a collaborator of a specific resource AND I have the role 'Owner' # OR I have the role 'Co-Owner' WHEN looking at the resource in detail - THEN I get a list of all collaborators of the resource separated by users and groups that whereby each entry contains the following information + THEN I get a list of all collaborators of the resource separated by users and groups whereby each entry contains the following information - Name # - Additional information based on 'Scenario: Extra field to display in autocomplete results' - Avatar @@ -14,11 +14,32 @@ Scenario: Viewing collaborators of a resource # - State (pending/accepted; for local/federated/guest) # - Expiration date (if applicable) - Initiator of a reshare (if applicable) + AND I see the Owner of the resource always as the first entry in the list + AND I see myself in the list (if applicable) + +Scenario: Viewing collaborators of a resource as a regular collaborator + GIVEN I'm a collaborator of a specific resource + AND I don't have the role 'Owner' +# AND I don't have the role 'Co-Owner' + WHEN looking at the resource in detail + THEN I get a list of all collaborators whom I added to the resource, separated by users and groups whereby each entry contains the following information + - Name +# - Additional information based on 'Scenario: Extra field to display in autocomplete results' + - Avatar +# - Type (User/Guest/Federated) + - Role +# - State (pending/accepted; for local/federated/guest) +# - Expiration date (if applicable) + - Initiator of a reshare (if applicable) + AND I see the Owner of the resource always as the first entry in the list + AND I see myself in the list Scenario: Removing a collaborator from a resource GIVEN I'm a collaborator of a specific resource AND I have the role 'Owner' # OR I have the role 'Co-Owner' + OR I have the permission 'Share' + AND I have previously added collaborators to the resource WHEN looking at the resource in detail THEN I can remove collaborators from the resource AND I have to confirm the removal @@ -28,7 +49,9 @@ Scenario: Removing a collaborator from a resource Scenario: Modifying a collaborator of a resource GIVEN I'm a collaborator of a specific resource AND I have the role 'Owner' -# OR I have the role 'Co-Owner' +# OR I have the role 'Co-Owner' + OR I have the permission 'Share' + AND I have previously added collaborators to the resource WHEN looking at the resource in detail THEN I can change each collaborator's role as in 'Feature: Roles for collaborators' AND I can change each collaborator's expiration date as in 'Feature: Expiration date for collaborators' From 6d690a19f4a99fff6d5883729c3fac32475211d6 Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Thu, 14 May 2020 17:52:10 +0200 Subject: [PATCH 07/11] minor corrections --- .../overview_of_received_shared_resources.feature | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/features/resources/overview_of_received_shared_resources.feature b/features/resources/overview_of_received_shared_resources.feature index d1558c9..7d2152d 100644 --- a/features/resources/overview_of_received_shared_resources.feature +++ b/features/resources/overview_of_received_shared_resources.feature @@ -4,18 +4,18 @@ Scenario: Listing received shared resources GIVEN I'm logged in as a user WHEN I have accepted collaborator invites OR I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' - OR I have shared resources that I removed from my personal space previously as in 'Feature: Removing a shared resource from a users' personal space' + OR I have shared resources that I removed from my personal space previously as in 'Feature: Removing a shared resource from a user's personal space' THEN I can list these resources AND I see the name of the resources AND I see file type icons or thumbnails AND I can recognize the initiator of the invite AND I see the time since the invite has been initiated AND I see the state of the invite (accepted/pending/declined) - AND I can add these resources to my personal space as in 'Scenario: Adding a shared resource to a users' personal space' - AND I can remove these resources from my personal space as in 'Scenario: Removing a shared resource from a users' personal space' + AND I can add these resources to my personal space as in 'Scenario: Adding a shared resource to a user's personal space' + AND I can remove these resources from my personal space as in 'Scenario: Removing a shared resource from a user's personal space' AND I can sort the list (ascending/descending) by name, state and time -Scenario: Adding a shared resource to a users' personal space +Scenario: Adding a shared resource to a user's personal space GIVEN I'm a logged in user WHEN I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' OR I have declined collaborator invites @@ -24,7 +24,7 @@ Scenario: Adding a shared resource to a users' personal space AND the resource is located in the folder configured via the 'share_folder' option AND I can access it as in 'Feature: Accessing a resource as a collaborator' -Scenario: Removing a shared resource from a users' personal space +Scenario: Removing a shared resource from a user's personal space GIVEN I'm a logged in user WHEN I have accepted collaborator invites THEN I can remove such a resource from my personal space From ca2209f002c1e900eae0afdf0df9b4af5038db7f Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Thu, 14 May 2020 17:54:49 +0200 Subject: [PATCH 08/11] more corrections --- ...essing_a_resource_as_a_collaborator.feature | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/features/resources/accessing_a_resource_as_a_collaborator.feature b/features/resources/accessing_a_resource_as_a_collaborator.feature index 435aec4..0aa0d35 100644 --- a/features/resources/accessing_a_resource_as_a_collaborator.feature +++ b/features/resources/accessing_a_resource_as_a_collaborator.feature @@ -8,9 +8,9 @@ Scenario: Accessing a resource as a collaborator with the 'Viewer' role THEN I can list the resource and its contents AND I can download the resource and its contents AND I can view the resource and its contents as in 'Feature: Accessing a resource' - AND I can rename the resource as in 'Scenario: Renaming a shared resource in a users' personal space' - AND I can move the resource as in 'Scenario: Moving a shared resource within a users' personal space' - AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a users' personal space' + AND I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' + AND I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' + AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' Scenario: Accessing a resource as a collaborator with the 'Editor' role GIVEN I'm a logged in user who is a collaborator of a resource @@ -20,9 +20,9 @@ Scenario: Accessing a resource as a collaborator with the 'Editor' role THEN I can list the resource and its contents AND I can download the resource and its contents AND I can view the resource and its contents as in 'Feature: Accessing a resource' - AND I can rename the resource as in 'Scenario: Renaming a shared resource in a users' personal space' - AND I can move the resource as in 'Scenario: Moving a shared resource within a users' personal space' - AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a users' personal space' + AND I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' + AND I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' + AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' AND I can rename the contents of the resource as in 'Feature: Renaming a resource' AND I can delete the contents of the resource as in 'Feature: Deleting a resource' AND I can move the contents of the resource as in 'Feature: Moving a resource' @@ -40,9 +40,9 @@ Scenario: Accessing a resource as a collaborator with the 'Advanced permissions' THEN I can list the resource and its contents AND I can download the resource and its contents AND I can view the resource and its contents as in 'Feature: Accessing a resource' - AND I can rename the resource as in 'Scenario: Renaming a shared resource in a users' personal space' - AND I can move the resource as in 'Scenario: Moving a shared resource within a users' personal space' - AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a users' personal space' + AND I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' + AND I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' + AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' AND I can use the resource based on the additionally granted detailed permissions described below AND the granted detailed permissions can stack/complement each other From 163304275a2e6aac86a94cc6ce8fefa6a2726b6d Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Fri, 15 May 2020 10:34:20 +0200 Subject: [PATCH 09/11] Fix Gherkin syntax --- ...ssing_a_resource_as_a_collaborator.feature | 114 +++++++++--------- ..._a_collaborator_to_from_a_resource.feature | 18 +-- ...rview_of_received_shared_resources.feature | 52 ++++---- features/resources/pending_shares.feature | 26 ++-- ...adding_collaborators_to_a_resource.feature | 30 ++--- ...naging_collaborators_of_a_resource.feature | 68 +++++------ .../sharing/roles_for_collaborators.feature | 72 +++++------ 7 files changed, 190 insertions(+), 190 deletions(-) diff --git a/features/resources/accessing_a_resource_as_a_collaborator.feature b/features/resources/accessing_a_resource_as_a_collaborator.feature index 0aa0d35..125d42e 100644 --- a/features/resources/accessing_a_resource_as_a_collaborator.feature +++ b/features/resources/accessing_a_resource_as_a_collaborator.feature @@ -1,70 +1,70 @@ Feature: Accessing a resource as a collaborator Scenario: Accessing a resource as a collaborator with the 'Viewer' role - GIVEN I'm a logged in user who is a collaborator of a resource - AND I have the role 'Viewer' -# AND I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' - WHEN accessing this resource - THEN I can list the resource and its contents - AND I can download the resource and its contents - AND I can view the resource and its contents as in 'Feature: Accessing a resource' - AND I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' - AND I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' - AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' + Given I'm a logged in user who is a collaborator of a resource + And I have the role 'Viewer' +# And I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' + When accessing this resource + Then I can list the resource and its contents + And I can download the resource and its contents + And I can view the resource and its contents as in 'Feature: Accessing a resource' + And I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' + And I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' + And I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' Scenario: Accessing a resource as a collaborator with the 'Editor' role - GIVEN I'm a logged in user who is a collaborator of a resource - AND I have the role 'Editor' -# AND I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' - WHEN accessing this resource - THEN I can list the resource and its contents - AND I can download the resource and its contents - AND I can view the resource and its contents as in 'Feature: Accessing a resource' - AND I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' - AND I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' - AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' - AND I can rename the contents of the resource as in 'Feature: Renaming a resource' - AND I can delete the contents of the resource as in 'Feature: Deleting a resource' - AND I can move the contents of the resource as in 'Feature: Moving a resource' - AND I can move resources into the resource as in 'Feature: Moving a resource' - AND I can move resources out of the resource as in 'Feature: Moving a resource' - AND I can create resources within the resource as in 'Feature: Creating a resource' - AND I can upload resources into the resource as in 'Feature: Uploading a resource' - AND I can edit/change/update the resource and its contents + Given I'm a logged in user who is a collaborator of a resource + And I have the role 'Editor' +# And I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' + When accessing this resource + Then I can list the resource and its contents + And I can download the resource and its contents + And I can view the resource and its contents as in 'Feature: Accessing a resource' + And I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' + And I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' + And I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' + And I can rename the contents of the resource as in 'Feature: Renaming a resource' + And I can delete the contents of the resource as in 'Feature: Deleting a resource' + And I can move the contents of the resource as in 'Feature: Moving a resource' + And I can move resources into the resource as in 'Feature: Moving a resource' + And I can move resources out of the resource as in 'Feature: Moving a resource' + And I can create resources within the resource as in 'Feature: Creating a resource' + And I can upload resources into the resource as in 'Feature: Uploading a resource' + And I can edit/change/update the resource and its contents Scenario: Accessing a resource as a collaborator with the 'Advanced permissions' role - GIVEN I'm a logged in user who is a collaborator of a resource - AND I have the role 'Advanced permissions' -# AND I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' - WHEN accessing this resource - THEN I can list the resource and its contents - AND I can download the resource and its contents - AND I can view the resource and its contents as in 'Feature: Accessing a resource' - AND I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' - AND I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' - AND I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' - AND I can use the resource based on the additionally granted detailed permissions described below - AND the granted detailed permissions can stack/complement each other + Given I'm a logged in user who is a collaborator of a resource + And I have the role 'Advanced permissions' +# And I have added the resource to my personal space as in 'Feature: Overview of received shared resources' / 'Feature: Pending Shares' + When accessing this resource + Then I can list the resource and its contents + And I can download the resource and its contents + And I can view the resource and its contents as in 'Feature: Accessing a resource' + And I can rename the resource as in 'Scenario: Renaming a shared resource in a user's personal space' + And I can move the resource as in 'Scenario: Moving a shared resource within a user's personal space' + And I can remove the resource from my personal space as in 'Feature: Removing a shared resource from a user's personal space' + And I can use the resource based on the additionally granted detailed permissions described below + And the granted detailed permissions can stack/complement each other - WHEN accessing this resources without any of the detailed permissions - THEN the behavior equals 'Scenario: Accessing a resource as a collaborator with the 'Viewer' role' + When accessing this resources without any of the detailed permissions + Then the behavior equals 'Scenario: Accessing a resource as a collaborator with the 'Viewer' role' - WHEN accessing this resource only with the permission "Edit" (single file) - THEN I can edit/change/update the resource + When accessing this resource only with the permission "Edit" (single file) + Then I can edit/change/update the resource - WHEN accessing this resource only with the permission "Create" (folder) - THEN I can move resources into the resource as in 'Feature: Moving a resource' - AND I can create resources within the resource as in 'Feature: Creating a resource' - AND I can upload resources into the resource as in 'Feature: Uploading a resource' + When accessing this resource only with the permission "Create" (folder) + Then I can move resources into the resource as in 'Feature: Moving a resource' + And I can create resources within the resource as in 'Feature: Creating a resource' + And I can upload resources into the resource as in 'Feature: Uploading a resource' - WHEN accessing this resource only with the permission "Change" (folder) - THEN I can rename the contents of the resource as in 'Feature: Renaming a resource' - AND I can edit/change/update the resource and its contents + When accessing this resource only with the permission "Change" (folder) + Then I can rename the contents of the resource as in 'Feature: Renaming a resource' + And I can edit/change/update the resource and its contents - WHEN accessing this resource only with the permission "Delete" (folder) - THEN I can delete the contents of the resource as in 'Feature: Deleting a resource' - AND I can move resources out of the resource as in 'Feature: Moving a resource' + When accessing this resource only with the permission "Delete" (folder) + Then I can delete the contents of the resource as in 'Feature: Deleting a resource' + And I can move resources out of the resource as in 'Feature: Moving a resource' - WHEN accessing this resource only with the permission "Manage" - THEN I can add collaborators to the resource as in 'Feature: Adding collaborators to a resource' - AND I can manage the collaborators of the resource as in 'Feature: Managing collaborators of a resource' + When accessing this resource only with the permission "Manage" + Then I can add collaborators to the resource as in 'Feature: Adding collaborators to a resource' + And I can manage the collaborators of the resource as in 'Feature: Managing collaborators of a resource' diff --git a/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature b/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature index 03b2f8c..751b958 100644 --- a/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature +++ b/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature @@ -1,14 +1,14 @@ Feature: Being added/removed as a collaborator to/from a resource Scenario: Being added as a regular single user - GIVEN I'm a regular ownCloud user of the instance the resource is located on - WHEN I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' - THEN the subsequent behavior is determined by 'Feature: Pending Shares' + Given I'm a regular ownCloud user of the instance the resource is located on + When I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' + Then the subsequent behavior is determined by 'Feature: Pending Shares' Scenario: Being removed as a collaborator from a resource - GIVEN I'm a collaborator of a certain resource - WHEN an Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' - OR a Co-Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' - THEN I do not have access to the resource anymore - AND the resource disappears from my resource list - AND I don't have a way to get back access except asking an Owner/Co-Owner to add me again + Given I'm a collaborator of a certain resource + When an Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' + Or a Co-Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' + Then I do not have access to the resource anymore + And the resource disappears from my resource list + And I don't have a way to get back access except asking an Owner/Co-Owner to add me again diff --git a/features/resources/overview_of_received_shared_resources.feature b/features/resources/overview_of_received_shared_resources.feature index 7d2152d..346cbf9 100644 --- a/features/resources/overview_of_received_shared_resources.feature +++ b/features/resources/overview_of_received_shared_resources.feature @@ -1,33 +1,33 @@ Feature: Overview of received shared resources Scenario: Listing received shared resources - GIVEN I'm logged in as a user - WHEN I have accepted collaborator invites - OR I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' - OR I have shared resources that I removed from my personal space previously as in 'Feature: Removing a shared resource from a user's personal space' - THEN I can list these resources - AND I see the name of the resources - AND I see file type icons or thumbnails - AND I can recognize the initiator of the invite - AND I see the time since the invite has been initiated - AND I see the state of the invite (accepted/pending/declined) - AND I can add these resources to my personal space as in 'Scenario: Adding a shared resource to a user's personal space' - AND I can remove these resources from my personal space as in 'Scenario: Removing a shared resource from a user's personal space' - AND I can sort the list (ascending/descending) by name, state and time + Given I'm logged in as a user + When I have accepted collaborator invites + Or I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' + Or I have shared resources that I removed from my personal space previously as in 'Feature: Removing a shared resource from a user's personal space' + Then I can list these resources + And I see the name of the resources + And I see file type icons or thumbnails + And I can recognize the initiator of the invite + And I see the time since the invite has been initiated + And I see the state of the invite (accepted/pending/declined) + And I can add these resources to my personal space as in 'Scenario: Adding a shared resource to a user's personal space' + And I can remove these resources from my personal space as in 'Scenario: Removing a shared resource from a user's personal space' + And I can sort the list (ascending/descending) by name, state and time Scenario: Adding a shared resource to a user's personal space - GIVEN I'm a logged in user - WHEN I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' - OR I have declined collaborator invites - THEN I can add such a resource to my personal space - AND the state of the invite changes to 'accepted' - AND the resource is located in the folder configured via the 'share_folder' option - AND I can access it as in 'Feature: Accessing a resource as a collaborator' + Given I'm a logged in user + When I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' + Or I have declined collaborator invites + Then I can add such a resource to my personal space + And the state of the invite changes to 'accepted' + And the resource is located in the folder configured via the 'share_folder' option + And I can access it as in 'Feature: Accessing a resource as a collaborator' Scenario: Removing a shared resource from a user's personal space - GIVEN I'm a logged in user - WHEN I have accepted collaborator invites - THEN I can remove such a resource from my personal space - AND the state of the invite changes to 'declined' - AND the resource is not located in my hierarchy any more - AND I can't access it any more + Given I'm a logged in user + When I have accepted collaborator invites + Then I can remove such a resource from my personal space + And the state of the invite changes to 'declined' + And the resource is not located in my hierarchy any more + And I can't access it any more diff --git a/features/resources/pending_shares.feature b/features/resources/pending_shares.feature index a87faa6..992fcc9 100644 --- a/features/resources/pending_shares.feature +++ b/features/resources/pending_shares.feature @@ -1,16 +1,16 @@ Feature: Pending Shares Scenario: Being added as a collaborator to a resource (Pending Shares enabled) - GIVEN I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' -# WHEN the option 'Automatically accept new incoming local user shares' is disabled - THEN the resource is not yet located in my file hierarchy -# THEN I am notified about the invite and can choose to 'accept' or 'decline' it - AND the resource appears in 'Feature: Overview of received shared resources' with state 'Pending' - WHEN I decline the resource -# THEN the notification is dismissed - THEN the state of the invite changes to 'declined' - WHEN I accept the resource -# THEN the notification is dismissed - THEN the state of the invite changes to 'accepted' - AND the resource is located in the folder configured via the 'share_folder' option - AND I can access it as in 'Feature: Accessing a resource as a collaborator' + Given I'm added as a collaborator to a resource as in 'Feature: Adding collaborators to a resource' +# When the option 'Automatically accept new incoming local user shares' is disabled + Then the resource is not yet located in my file hierarchy +# Then I am notified about the invite and can choose to 'accept' or 'decline' it + And the resource appears in 'Feature: Overview of received shared resources' with state 'Pending' + When I decline the resource +# Then the notification is dismissed + Then the state of the invite changes to 'declined' + When I accept the resource +# Then the notification is dismissed + Then the state of the invite changes to 'accepted' + And the resource is located in the folder configured via the 'share_folder' option + And I can access it as in 'Feature: Accessing a resource as a collaborator' diff --git a/features/sharing/adding_collaborators_to_a_resource.feature b/features/sharing/adding_collaborators_to_a_resource.feature index 4a007f4..555f278 100644 --- a/features/sharing/adding_collaborators_to_a_resource.feature +++ b/features/sharing/adding_collaborators_to_a_resource.feature @@ -1,25 +1,25 @@ Feature: Adding collaborators to a resource Scenario: Finding collaborators - GIVEN I'm a logged in user located in the collaborators panel of a resource - WHEN I start typing in the collaborator search field - THEN I see suggestions (with potentially many characters) based on the available user and group identifiers/attributes, sharing restrictions and options for autocomplete results. These are structured in the following way: + Given I'm a logged in user located in the collaborators panel of a resource + When I start typing in the collaborator search field + Then I see suggestions (with potentially many characters) based on the available user and group identifiers/attributes, sharing restrictions and options for autocomplete results. These are structured in the following way: - [Avatar] Identifier / name / mail address / federation ID - Additional information if applicable (e.g. 'Scenario: Extra field to display in autocomplete results') - Type (User/Group/Guest/Federated) - AND the suggestions for guests or federated users only appear once I enter a compliant identifier (e.g., "name@sub.domain.tld") - THEN I choose a collaborator - AND the chosen collaborator's becomes fixed but can easily be removed again - AND I can start typing again to add additional collaborators + And the suggestions for guests or federated users only appear once I enter a compliant identifier (e.g., "name@sub.domain.tld") + Then I choose a collaborator + And the chosen collaborator's becomes fixed but can easily be removed again + And I can start typing again to add additional collaborators Scenario: Setting collaborator properties - GIVEN I'm adding collaborators as in 'Scenario: Finding collaborators' - WHEN having added the first collaborator - THEN I can choose a role for the chosen collaborators as in 'Feature: Roles for collaborators' - THEN I can set an expiration date for the chosen collaborators as in 'Feature: Expiration date for collaborators' + Given I'm adding collaborators as in 'Scenario: Finding collaborators' + When having added the first collaborator + Then I can choose a role for the chosen collaborators as in 'Feature: Roles for collaborators' + Then I can set an expiration date for the chosen collaborators as in 'Feature: Expiration date for collaborators' Scenario: Confirming collaborators - GIVEN I have set collaborator properties as in 'Scenario: Setting collaborator properties' - WHEN I confirm the supplied information - THEN the collaborators are added to the resource according to the specified properties - AND I get visual feedback to know whether the action was successful or not + Given I have set collaborator properties as in 'Scenario: Setting collaborator properties' + When I confirm the supplied information + Then the collaborators are added to the resource according to the specified properties + And I get visual feedback to know whether the action was successful or not diff --git a/features/sharing/managing_collaborators_of_a_resource.feature b/features/sharing/managing_collaborators_of_a_resource.feature index 16e2f0f..437fb4b 100644 --- a/features/sharing/managing_collaborators_of_a_resource.feature +++ b/features/sharing/managing_collaborators_of_a_resource.feature @@ -1,11 +1,11 @@ Feature: Managing collaborators of a resource Scenario: Viewing collaborators of a resource as an Owner/Co-Owner - GIVEN I'm a collaborator of a specific resource - AND I have the role 'Owner' -# OR I have the role 'Co-Owner' - WHEN looking at the resource in detail - THEN I get a list of all collaborators of the resource separated by users and groups whereby each entry contains the following information + Given I'm a collaborator of a specific resource + And I have the role 'Owner' +# Or I have the role 'Co-Owner' + When looking at the resource in detail + Then I get a list of all collaborators of the resource separated by users and groups whereby each entry contains the following information - Name # - Additional information based on 'Scenario: Extra field to display in autocomplete results' - Avatar @@ -14,15 +14,15 @@ Scenario: Viewing collaborators of a resource as an Owner/Co-Owner # - State (pending/accepted; for local/federated/guest) # - Expiration date (if applicable) - Initiator of a reshare (if applicable) - AND I see the Owner of the resource always as the first entry in the list - AND I see myself in the list (if applicable) + And I see the Owner of the resource always as the first entry in the list + And I see myself in the list (if applicable) Scenario: Viewing collaborators of a resource as a regular collaborator - GIVEN I'm a collaborator of a specific resource - AND I don't have the role 'Owner' -# AND I don't have the role 'Co-Owner' - WHEN looking at the resource in detail - THEN I get a list of all collaborators whom I added to the resource, separated by users and groups whereby each entry contains the following information + Given I'm a collaborator of a specific resource + And I don't have the role 'Owner' +# And I don't have the role 'Co-Owner' + When looking at the resource in detail + Then I get a list of all collaborators whom I added to the resource, separated by users and groups whereby each entry contains the following information - Name # - Additional information based on 'Scenario: Extra field to display in autocomplete results' - Avatar @@ -31,29 +31,29 @@ Scenario: Viewing collaborators of a resource as a regular collaborator # - State (pending/accepted; for local/federated/guest) # - Expiration date (if applicable) - Initiator of a reshare (if applicable) - AND I see the Owner of the resource always as the first entry in the list - AND I see myself in the list + And I see the Owner of the resource always as the first entry in the list + And I see myself in the list Scenario: Removing a collaborator from a resource - GIVEN I'm a collaborator of a specific resource - AND I have the role 'Owner' -# OR I have the role 'Co-Owner' - OR I have the permission 'Share' - AND I have previously added collaborators to the resource - WHEN looking at the resource in detail - THEN I can remove collaborators from the resource - AND I have to confirm the removal - AND the collaborator disappears from the list - AND the removed users do not have access anymore + Given I'm a collaborator of a specific resource + And I have the role 'Owner' +# Or I have the role 'Co-Owner' + Or I have the permission 'Share' + And I have previously added collaborators to the resource + When looking at the resource in detail + Then I can remove collaborators from the resource + And I have to confirm the removal + And the collaborator disappears from the list + And the removed users do not have access anymore Scenario: Modifying a collaborator of a resource - GIVEN I'm a collaborator of a specific resource - AND I have the role 'Owner' -# OR I have the role 'Co-Owner' - OR I have the permission 'Share' - AND I have previously added collaborators to the resource - WHEN looking at the resource in detail - THEN I can change each collaborator's role as in 'Feature: Roles for collaborators' - AND I can change each collaborator's expiration date as in 'Feature: Expiration date for collaborators' - AND I have to confirm the modifications - AND the modifications take effect + Given I'm a collaborator of a specific resource + And I have the role 'Owner' +# Or I have the role 'Co-Owner' + Or I have the permission 'Share' + And I have previously added collaborators to the resource + When looking at the resource in detail + Then I can change each collaborator's role as in 'Feature: Roles for collaborators' + And I can change each collaborator's expiration date as in 'Feature: Expiration date for collaborators' + And I have to confirm the modifications + And the modifications take effect diff --git a/features/sharing/roles_for_collaborators.feature b/features/sharing/roles_for_collaborators.feature index ac466cf..a968d9d 100644 --- a/features/sharing/roles_for_collaborators.feature +++ b/features/sharing/roles_for_collaborators.feature @@ -10,41 +10,41 @@ Feature: Roles for collaborators - Offer granular permission sets Scenario: Setting roles for collaborators on a single file - GIVEN I'm a collaborator of a specific file - AND I have the role 'Owner' -# OR I have the role 'Co-Owner' - WHEN located in 'Scenario: Setting collaborator properties' -# THEN I can choose the role 'Co-Owner' -# AND I see an explanatory note "Manage collaborators, view, download and edit" - THEN I can choose the role 'Editor' - AND I see an explanatory note "View, download and edit" - THEN I can choose the role 'Viewer' - AND I see an explanatory note "View and download" -# THEN I can choose dynamic roles like 'Secure Viewer' which are introduced by apps -# AND I see an explanatory note defined by the respective app -# WHEN choosing a dynamic role -# THEN I can set single sub-permissions like 'Print / Export PDF' defined by the respective app - THEN I can choose the role 'Advanced permissions' - AND I see an explanatory note "Set detailed permissions" - WHEN choosing the role 'Advanced permissions' - THEN I can set single permissions "Manage" and "Edit" + Given I'm a collaborator of a specific file + And I have the role 'Owner' +# Or I have the role 'Co-Owner' + When located in 'Scenario: Setting collaborator properties' +# Then I can choose the role 'Co-Owner' +# And I see an explanatory note "Manage collaborators, view, download and edit" + Then I can choose the role 'Editor' + And I see an explanatory note "View, download and edit" + Then I can choose the role 'Viewer' + And I see an explanatory note "View and download" +# Then I can choose dynamic roles like 'Secure Viewer' which are introduced by apps +# And I see an explanatory note defined by the respective app +# When choosing a dynamic role +# Then I can set single sub-permissions like 'Print / Export PDF' defined by the respective app + Then I can choose the role 'Advanced permissions' + And I see an explanatory note "Set detailed permissions" + When choosing the role 'Advanced permissions' + Then I can set single permissions "Manage" and "Edit" Scenario: Setting roles for collaborators on a folder - GIVEN I'm a collaborator of a specific folder - AND I have the role 'Owner' -# OR I have the role 'Co-Owner' - WHEN located in 'Scenario: Setting collaborator properties' -# THEN I can choose the role 'Co-Owner' -# AND I see an explanatory note "Manage collaborators, view, download, edit and delete" - THEN I can choose the role 'Editor' - AND I see an explanatory note "View, download, edit and delete" - THEN I can choose the role 'Viewer' - AND I see an explanatory note "View and download" -# THEN I can choose dynamic roles like 'Secure Viewer' which are introduced by apps -# AND I see an explanatory note defined by the respective app -# WHEN choosing a dynamic role -# THEN I can set single sub-permissions like 'Print / Export PDF' defined by the respective app - THEN I can choose the role 'Advanced permissions' - AND I see an explanatory note "Set detailed permissions" - WHEN choosing the role 'Advanced permissions' - THEN I can set single permissions "Manage", "Create", "Change", "Delete" + Given I'm a collaborator of a specific folder + And I have the role 'Owner' +# Or I have the role 'Co-Owner' + When located in 'Scenario: Setting collaborator properties' +# Then I can choose the role 'Co-Owner' +# And I see an explanatory note "Manage collaborators, view, download, edit and delete" + Then I can choose the role 'Editor' + And I see an explanatory note "View, download, edit and delete" + Then I can choose the role 'Viewer' + And I see an explanatory note "View and download" +# Then I can choose dynamic roles like 'Secure Viewer' which are introduced by apps +# And I see an explanatory note defined by the respective app +# When choosing a dynamic role +# Then I can set single sub-permissions like 'Print / Export PDF' defined by the respective app + Then I can choose the role 'Advanced permissions' + And I see an explanatory note "Set detailed permissions" + When choosing the role 'Advanced permissions' + Then I can set single permissions "Manage", "Create", "Change", "Delete" From e66bf61641075e9e8fb0be1328c40aea6d9133f5 Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Fri, 22 May 2020 14:55:41 +0200 Subject: [PATCH 10/11] gherkin compliance --- ..._a_collaborator_to_from_a_resource.feature | 5 ++--- ...rview_of_received_shared_resources.feature | 7 ++----- ...naging_collaborators_of_a_resource.feature | 21 +++++++------------ .../sharing/roles_for_collaborators.feature | 6 ++---- 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature b/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature index 751b958..1dcfb68 100644 --- a/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature +++ b/features/resources/being_added_removed_as_a_collaborator_to_from_a_resource.feature @@ -7,8 +7,7 @@ Scenario: Being added as a regular single user Scenario: Being removed as a collaborator from a resource Given I'm a collaborator of a certain resource - When an Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' - Or a Co-Owner removes me from the resource as in 'Scenario: Removing a collaborator from a resource' + When I'm removed from the resource as in 'Scenario: Removing a collaborator from a resource' Then I do not have access to the resource anymore And the resource disappears from my resource list - And I don't have a way to get back access except asking an Owner/Co-Owner to add me again + And I don't have a way to get back access except asking a collaborator to add me again diff --git a/features/resources/overview_of_received_shared_resources.feature b/features/resources/overview_of_received_shared_resources.feature index 346cbf9..eb3600a 100644 --- a/features/resources/overview_of_received_shared_resources.feature +++ b/features/resources/overview_of_received_shared_resources.feature @@ -2,9 +2,7 @@ Feature: Overview of received shared resources Scenario: Listing received shared resources Given I'm logged in as a user - When I have accepted collaborator invites - Or I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' - Or I have shared resources that I removed from my personal space previously as in 'Feature: Removing a shared resource from a user's personal space' + When I have collaborator invites (accepted/pending/declined) Then I can list these resources And I see the name of the resources And I see file type icons or thumbnails @@ -17,8 +15,7 @@ Scenario: Listing received shared resources Scenario: Adding a shared resource to a user's personal space Given I'm a logged in user - When I have pending collaborator invites as in 'Scenario: Being added as a collaborator to a resource (Pending Shares enabled)' - Or I have declined collaborator invites + When I have pending/declined collaborator invites Then I can add such a resource to my personal space And the state of the invite changes to 'accepted' And the resource is located in the folder configured via the 'share_folder' option diff --git a/features/sharing/managing_collaborators_of_a_resource.feature b/features/sharing/managing_collaborators_of_a_resource.feature index 437fb4b..bb3f876 100644 --- a/features/sharing/managing_collaborators_of_a_resource.feature +++ b/features/sharing/managing_collaborators_of_a_resource.feature @@ -1,9 +1,8 @@ Feature: Managing collaborators of a resource -Scenario: Viewing collaborators of a resource as an Owner/Co-Owner +Scenario: Viewing collaborators of a resource as an Owner Given I'm a collaborator of a specific resource And I have the role 'Owner' -# Or I have the role 'Co-Owner' When looking at the resource in detail Then I get a list of all collaborators of the resource separated by users and groups whereby each entry contains the following information - Name @@ -14,13 +13,13 @@ Scenario: Viewing collaborators of a resource as an Owner/Co-Owner # - State (pending/accepted; for local/federated/guest) # - Expiration date (if applicable) - Initiator of a reshare (if applicable) - And I see the Owner of the resource always as the first entry in the list - And I see myself in the list (if applicable) + And the list also contains collaborators of parent resources as static entries + And collaborators of parent resources indicate their origin and allow to jump there ("via") + And I see myself always as the first entry in the list Scenario: Viewing collaborators of a resource as a regular collaborator Given I'm a collaborator of a specific resource And I don't have the role 'Owner' -# And I don't have the role 'Co-Owner' When looking at the resource in detail Then I get a list of all collaborators whom I added to the resource, separated by users and groups whereby each entry contains the following information - Name @@ -31,15 +30,14 @@ Scenario: Viewing collaborators of a resource as a regular collaborator # - State (pending/accepted; for local/federated/guest) # - Expiration date (if applicable) - Initiator of a reshare (if applicable) + And the list also contains collaborators of parent resources whom I added as static entries + And collaborators of parent resources indicate their origin and allow to jump there ("via") And I see the Owner of the resource always as the first entry in the list And I see myself in the list Scenario: Removing a collaborator from a resource Given I'm a collaborator of a specific resource - And I have the role 'Owner' -# Or I have the role 'Co-Owner' - Or I have the permission 'Share' - And I have previously added collaborators to the resource + And I can list other collaborators When looking at the resource in detail Then I can remove collaborators from the resource And I have to confirm the removal @@ -48,10 +46,7 @@ Scenario: Removing a collaborator from a resource Scenario: Modifying a collaborator of a resource Given I'm a collaborator of a specific resource - And I have the role 'Owner' -# Or I have the role 'Co-Owner' - Or I have the permission 'Share' - And I have previously added collaborators to the resource + And I can list other collaborators When looking at the resource in detail Then I can change each collaborator's role as in 'Feature: Roles for collaborators' And I can change each collaborator's expiration date as in 'Feature: Expiration date for collaborators' diff --git a/features/sharing/roles_for_collaborators.feature b/features/sharing/roles_for_collaborators.feature index a968d9d..9659dc8 100644 --- a/features/sharing/roles_for_collaborators.feature +++ b/features/sharing/roles_for_collaborators.feature @@ -9,10 +9,9 @@ Feature: Roles for collaborators - Cover legacy permission combinations - Offer granular permission sets -Scenario: Setting roles for collaborators on a single file +Scenario: Setting roles for collaborators on a single file as an Owner Given I'm a collaborator of a specific file And I have the role 'Owner' -# Or I have the role 'Co-Owner' When located in 'Scenario: Setting collaborator properties' # Then I can choose the role 'Co-Owner' # And I see an explanatory note "Manage collaborators, view, download and edit" @@ -29,10 +28,9 @@ Scenario: Setting roles for collaborators on a single file When choosing the role 'Advanced permissions' Then I can set single permissions "Manage" and "Edit" -Scenario: Setting roles for collaborators on a folder +Scenario: Setting roles for collaborators on a folder as an Owner Given I'm a collaborator of a specific folder And I have the role 'Owner' -# Or I have the role 'Co-Owner' When located in 'Scenario: Setting collaborator properties' # Then I can choose the role 'Co-Owner' # And I see an explanatory note "Manage collaborators, view, download, edit and delete" From a579b4ba2fe5397c129c3c80b67e48c4b5235e29 Mon Sep 17 00:00:00 2001 From: Patrick Maier Date: Fri, 22 May 2020 14:58:43 +0200 Subject: [PATCH 11/11] correction --- features/sharing/adding_collaborators_to_a_resource.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/sharing/adding_collaborators_to_a_resource.feature b/features/sharing/adding_collaborators_to_a_resource.feature index 555f278..51ba3bc 100644 --- a/features/sharing/adding_collaborators_to_a_resource.feature +++ b/features/sharing/adding_collaborators_to_a_resource.feature @@ -9,7 +9,7 @@ Scenario: Finding collaborators - Type (User/Group/Guest/Federated) And the suggestions for guests or federated users only appear once I enter a compliant identifier (e.g., "name@sub.domain.tld") Then I choose a collaborator - And the chosen collaborator's becomes fixed but can easily be removed again + And the chosen collaborator becomes fixed but can easily be removed again And I can start typing again to add additional collaborators Scenario: Setting collaborator properties