#-- copyright # OpenProject is a project management system. # # Copyright (C) 2012-2013 the OpenProject Team # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 3. # # See doc/COPYRIGHT.rdoc for more details. #++ Feature: Project Association Management As a Project Member I want to view, edit and delete project associations for my project So that I can document dependencies to other projects properly Background: Given there are the following project types: | Name | Allows Association | | Waterfall Project | true | | Scrum Project | true | And there are the following roles: | Viewer | | Editor | | Project Admin | And the role "Viewer" may have the following rights: | view_timelines | | view_project_associations | And the role "Editor" may have the following rights: | view_timelines | | view_project_associations | | edit_project_associations | And the role "Project Admin" may have the following rights: | view_timelines | | view_project_associations | | edit_project_associations | | delete_project_associations | And there are the following projects of type "Waterfall Project": | My Project | | Visible | | Public | | Other | And there is a project named "Scrum" of type "Scrum Project" And the project "My Project" is not public And the project "Other" is not public And the project "Scrum" is not public And the project "Visible" is not public And the project "Public" is public And there are the following users: | Viewer | | Editor | | Project-Admin | And the user "Viewer" is a "Viewer" in the project "Scrum" And the user "Editor" is a "Viewer" in the project "Scrum" And the user "Project-Admin" is a "Viewer" in the project "Scrum" And the user "Viewer" is a "Viewer" in the project "Visible" And the user "Editor" is a "Viewer" in the project "Visible" And the user "Project-Admin" is a "Viewer" in the project "Visible" And I am working in project "My Project" And the project uses the following modules: | timelines | And the user "Viewer" is a "Viewer" And the user "Editor" is a "Editor" And the user "Project-Admin" is a "Project Admin" Scenario: Reader does not render anything when there are no project associations Given I am logged in as "Viewer" When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I follow "Dependencies" Then I should not see "Waterfall Project" And I should not see "Scrum Project" And I should not see "No data to display" Scenario: Reader gets 'No data to display' when there are associations to unknown projects Given I am logged in as "Viewer" And there are the following project associations: | Project A | Project B | | My Project | Other | When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I follow "Dependencies" Then I should not see "Waterfall Project" And I should not see "Scrum Project" And I should not see "No data to display" Scenario: Reader sees associations to projects where s/he is member and to public ones Given I am logged in as "Viewer" And there are the following project associations: | Project A | Project B | | My Project | Visible | | My Project | Public | | Scrum | My Project | When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I follow "Dependencies" Then I should see "Visible" below "Waterfall Project" And I should see "Public" below "Waterfall Project" And I should see "Scrum" below "Scrum Project" Scenario: Reader is not able to add associations Given I am logged in as "Viewer" When I go to the page of the project called "My Project" And I click on "Dependencies" And I should not be able to add new project associations @javascript Scenario: Editor is able to add associations Given I am logged in as "Editor" When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I click on "Dependencies" And I click on "New dependency" When I select "Visible" from "Set dependency for “My Project” with" And I fill in "A good reason" for "Cause" And I press "Add dependency" Then I should see a notice flash stating "Successful creation." And I should see "Visible" below "Waterfall Project" Scenario: Editor is able to edit associations Given I am logged in as "Editor" And there are the following project associations: | Project A | Project B | Description | | My Project | Visible | A good reason | When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I follow "Dependencies" When I follow "Edit Visible" And I fill in "A better reason" for "Cause" And I press "Update" Then I should see a notice flash stating "Successful update." And I should see "A better reason" below "Waterfall Project" Scenario: Editor cannot delete associations Given I am logged in as "Editor" And there are the following project associations: | Project A | Project B | Description | | My Project | Visible | A good reason | When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I follow "Dependencies" Then I should not see "Delete Visible" Scenario: Project-Admin may delete associations Given I am logged in as "Project-Admin" And there are the following project associations: | Project A | Project B | Description | | My Project | Visible | A good reason | When I go to the page of the project called "My Project" And I toggle the "Timelines" submenu And I follow "Dependencies" When I follow "Delete Visible" And I press "Delete" Then I should see a notice flash stating "Successful deletion." Then I should not see "Waterfall Project" And I should not see "Scrum Project" And I should not see "No data to display" And I should not see "A good reason"