You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

106 lines
4.4 KiB

@core @core_course
Feature: Restricting access to course lists
In order to provide more targeted content
As a Moodle Administrator
I need to be able to give/revoke capabilities to view list of courses
Background:
Given the following "categories" exist:
| name | category | idnumber |
| Science category | 0 | SCI |
| English category | 0 | ENG |
| Other category | 0 | MISC |
And the following "courses" exist:
| fullname | shortname | category |
| Biology Y1 | BIO1 | SCI |
| Biology Y2 | BI02 | SCI |
| English Y1 | ENG1 | ENG |
| English Y2 | ENG2 | ENG |
| Humanities Y1 | HUM2 | MISC |
Given the following "users" exist:
| username | firstname | lastname | email |
| user0 | User | Z | user0@example.com |
| userb | User | B | userb@example.com |
| usere | User | E | usere@example.com |
Given the following "roles" exist:
| name | shortname | description | archetype |
| Category viewer | coursebrowse | My custom role 1 | |
Given I log in as "admin"
And I set the following system permissions of "Authenticated user" role:
| capability | permission |
| moodle/category:viewcourselist | Prevent |
And I set the following system permissions of "Guest" role:
| capability | permission |
| moodle/category:viewcourselist | Prevent |
And I set the following system permissions of "Category viewer" role:
| capability | permission |
| moodle/category:viewcourselist | Allow |
And I am on site homepage
And I turn editing mode on
And I add the "Navigation" block if not present
And I log out
And the following "role assigns" exist:
| user | role | contextlevel | reference |
| usere | coursebrowse | Category | ENG |
| userb | coursebrowse | Category | ENG |
| userb | coursebrowse | Category | SCI |
Scenario: Browse courses as a user without any browse capability
When I log in as "user0"
And I am on site homepage
Then I should not see "Available courses"
And "Courses" "link" should not exist in the "Navigation" "block"
And I log out
Scenario: Browse own courses as a user without any browse capability
Given the following "course enrolments" exist:
| user | course | role |
| user0 | BIO1 | student |
When I log in as "user0"
And I am on site homepage
And I should see "Available courses"
And I should see "Biology Y1"
And "Courses" "link" should not exist in the "Navigation" "block"
And I log out
Scenario: Browse courses as a user who has access to only one category
When I log in as "usere"
And I am on site homepage
Then I should see "Available courses"
And I should see "English Y1"
And I should see "English Y2"
And I should not see "Biology"
And I should not see "Humanities"
And I click on "Courses" "link" in the "Navigation" "block"
And "English category" "text" should exist in the ".breadcrumb" "css_element"
And I should see "English Y1"
And I should see "English Y2"
And I should not see "Biology"
And I should not see "Humanities"
And I should not see "Other category"
And I follow "English Y2"
And I should see "You can not enrol yourself in this course."
And I log out
Scenario: Browse courses as a user who has access to several but not all categories
When I log in as "userb"
And I am on site homepage
Then I should see "Available courses"
And I should see "English Y1"
And I should see "English Y2"
And I should see "Biology"
And I should not see "Humanities"
And I click on "Courses" "link" in the "Navigation" "block"
And "category" "text" should not exist in the ".breadcrumb" "css_element"
And I should see "Science category"
And I should see "English category"
And I should not see "Other category"
And I follow "Science category"
And I should see "Biology Y2"
And I should not see "English Y1"
And the "Course categories" select box should contain "Science category"
And the "Course categories" select box should contain "English category"
And the "Course categories" select box should not contain "Other category"
And I follow "Biology Y1"
And I should see "You can not enrol yourself in this course."
And I log out