52599d31dcacfcb14c302bd02a0b0abb49268966
[moodle.git] / admin / tool / behat / tests / behat / edit_permissions.feature
1 @tool @tool_behat
2 Feature: Edit capabilities
3   In order to extend and restrict moodle features
4   As an admin or a teacher
5   I need to allow/deny the existing capabilities at different levels
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname  |
10       | teacher1 | Teacher   | 1         |
11       | tutor    | Teaching  | Assistant |
12       | student  | Student   | One       |
13     And the following "courses" exist:
14       | fullname | shortname |
15       | Course 1 | C1        |
16     And the following "course enrolments" exist:
17       | user     | course | role           |
18       | teacher1 | C1     | editingteacher |
19       | tutor    | C1     | teacher        |
20       | student  | C1     | student        |
22   Scenario: Default system capabilities modification
23     Given I log in as "admin"
24     And I set the following system permissions of "Teacher" role:
25       | capability | permission |
26       | block/mnet_hosts:myaddinstance | Allow |
27       | moodle/site:messageanyuser | Inherit |
28       | moodle/grade:managesharedforms | Prevent |
29       | moodle/course:request | Prohibit |
30     When I follow "Edit Teacher role"
31     Then "block/mnet_hosts:myaddinstance" capability has "Allow" permission
32     And "moodle/site:messageanyuser" capability has "Not set" permission
33     And "moodle/grade:managesharedforms" capability has "Prevent" permission
34     And "moodle/course:request" capability has "Prohibit" permission
36   Scenario: Course capabilities overrides
37     Given I log in as "teacher1"
38     And I am on "Course 1" course homepage
39     And I navigate to "Users > Permissions" in current page administration
40     And I override the system permissions of "Student" role with:
41       | mod/forum:deleteanypost | Prohibit |
42       | mod/forum:editanypost | Prevent |
43       | mod/forum:addquestion | Allow |
44     When I set the field "Advanced role override" to "Student (3)"
45     And I press "Go"
46     Then "mod/forum:deleteanypost" capability has "Prohibit" permission
47     And "mod/forum:editanypost" capability has "Prevent" permission
48     And "mod/forum:addquestion" capability has "Allow" permission
50   Scenario: Module capabilities overrides
51     Given I log in as "teacher1"
52     And I am on "Course 1" course homepage with editing mode on
53     And I add a "Forum" to section "1" and I fill the form with:
54       | Forum name | I'm the name |
55       | Description | I'm the introduction |
56     And I follow "I'm the name"
57     And I navigate to "Permissions" in current page administration
58     And I override the system permissions of "Student" role with:
59       | mod/forum:deleteanypost | Prohibit |
60       | mod/forum:editanypost | Prevent |
61       | mod/forum:addquestion | Allow |
62     When I set the field "Advanced role override" to "Student (3)"
63     And I click on "Go" "button" in the "region-main" "region"
64     Then "mod/forum:deleteanypost" capability has "Prohibit" permission
65     And "mod/forum:editanypost" capability has "Prevent" permission
66     And "mod/forum:addquestion" capability has "Allow" permission
68   @javascript
69   Scenario: Edit permissions escapes role names correctly
70     When I am on the "C1" "Course" page logged in as "admin"
71     And I navigate to "Edit settings" in current page administration
72     And I set the following fields to these values:
73       | Your word for 'Teacher'             | Teacher >= editing  |
74       | Your word for 'Non-editing teacher' | Teacher < "editing" |
75       | Your word for 'Student'             | Studier & 'learner' |
76     And I press "Save and display"
77     And I navigate to course participants
78     Then I should see "Teacher >= editing (Teacher)" in the "Teacher 1" "table_row"
79     And I should see "Teacher < \"editing\" (Non-editing teacher)" in the "Teaching Assistant" "table_row"
80     And I should see "Studier & 'learner' (Student)" in the "Student One" "table_row"
81     And I navigate to "Permissions" in current page administration
82     And I should see "Teacher >= editing" in the "mod/forum:replypost" "table_row"
83     And I should see "Teacher < \"editing\"" in the "mod/forum:replypost" "table_row"
84     And I should see "Studier & 'learner'" in the "mod/forum:replypost" "table_row"
85     And I follow "Prohibit"
86     And "Teacher >= editing" "button" in the "Prohibit role" "dialogue" should be visible
87     And "Teacher < \"editing\"" "button" in the "Prohibit role" "dialogue" should be visible
88     And "Studier & 'learner'" "button" in the "Prohibit role" "dialogue" should be visible