Your IP : 192.168.165.1


Current Path : C:/xampp/htdocs/moodle/course/tests/behat/
Upload File :
Current File : C:/xampp/htdocs/moodle/course/tests/behat/course_browsing.feature

@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