MDL-50917 navigation: Behat tests for viewing user preference page.
authorAdrian Greeve <adrian@moodle.com>
Thu, 10 Sep 2015 05:22:40 +0000 (13:22 +0800)
committerAdrian Greeve <adrian@moodle.com>
Tue, 22 Sep 2015 02:57:52 +0000 (10:57 +0800)
user/tests/behat/view_preferences_page.feature [new file with mode: 0644]

diff --git a/user/tests/behat/view_preferences_page.feature b/user/tests/behat/view_preferences_page.feature
new file mode 100644 (file)
index 0000000..4d40f89
--- /dev/null
@@ -0,0 +1,85 @@
+@core @core_user
+Feature: Access to preferences page
+  In order to view the preferences page
+  As a user
+  I need global permissions to view the page.
+
+  Background:
+    Given the following "users" exist:
+      | username | firstname | lastname | email |
+      | student1 | Student | 1 | student1@example.com |
+      | student2 | Student | 2 | student2@example.com |
+      | manager1 | Manager | 1 | manager1@example.com |
+      | teacher1 | Teacher | 1 | teacher1@example.com |
+      | parent   | Parent  | 1 | parent1@example.com |
+    And the following "courses" exist:
+      | fullname | shortname | format |
+      | Course 1 | C1 | topics |
+      | Course 2 | C2 | topics |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student2 | C1 | student |
+      | teacher1 | C1 | editingteacher |
+   And the following "system role assigns" exist:
+      | user | course | role |
+      | manager1 | Acceptance test site | manager |
+
+  Scenario: A student and teacher with normal permissions can not view another user's permissions page.
+    Given I log in as "student1"
+    And I follow "Course 1"
+    And I navigate to "Participants" node in "Current course > C1"
+    And I follow "Student 2"
+    And I should not see "Preferences" in the "#region-main" "css_element"
+    And I log out
+    And I log in as "teacher1"
+    And I follow "Course 1"
+    When I navigate to "Participants" node in "Current course > C1"
+    And I follow "Student 2"
+    Then I should not see "Preferences" in the "#region-main" "css_element"
+
+  Scenario: Administrators and Managers can view another user's permissions page.
+    Given I log in as "admin"
+    And I am on site homepage
+    And I follow "Course 1"
+    And I navigate to "Participants" node in "Current course > C1"
+    And I follow "Student 2"
+    And I should see "Preferences" in the "#region-main" "css_element"
+    And I log out
+    And I log in as "manager1"
+    And I am on site homepage
+    And I follow "Course 1"
+    When I navigate to "Participants" node in "Current course > C1"
+    And I follow "Student 2"
+    Then I should see "Preferences" in the "#region-main" "css_element"
+
+  @javascript
+  Scenario: A user with the appropriate permissions can view another user's permissions page.
+    Given I log in as "admin"
+    And I am on site homepage
+    And I follow "Turn editing on"
+    And I add the "Mentees" block
+    And I navigate to "Define roles" node in "Site administration > Users > Permissions"
+    And I click on "Add a new role" "button"
+    And I click on "Continue" "button"
+    And I set the following fields to these values:
+    | Short name | Parent |
+    | Custom full name | Parent |
+    | contextlevel30 | 1 |
+    | moodle/user:editprofile | 1 |
+    | moodle/user:viewalldetails | 1 |
+    | moodle/user:viewuseractivitiesreport | 1 |
+    | moodle/user:viewdetails | 1 |
+    And I click on "Create this role" "button"
+    And I navigate to "Browse list of users" node in "Site administration > Users > Accounts"
+    And I follow "Student 1"
+    And I click on "Preferences" "link" in the ".profile_tree" "css_element"
+    And I follow "Assign roles relative to this user"
+    And I follow "Parent"
+    And I click on "//select[@id='addselect']/descendant::option[contains(., 'Parent 1 (parent1@example.com)')]" "xpath_element"
+    And I click on "Add" "button"
+    And I log out
+    And I log in as "parent"
+    And I am on site homepage
+    When I follow "Student 1"
+    Then I should see "Preferences" in the "#region-main" "css_element"