%PDF- %PDF-
Direktori : /home/vacivi36/ava/mod/quiz/tests/behat/ |
Current File : /home/vacivi36/ava/mod/quiz/tests/behat/quiz_user_override.feature |
@mod @mod_quiz Feature: Quiz user override In order to grant a student special access to a quiz As a teacher I need to create an override for that user. Background: And the following "custom profile fields" exist: | datatype | shortname | name | | text | frog | Favourite frog | Given the following "users" exist: | username | firstname | lastname | email | profile_field_frog | | teacher | Teacher | One | teacher@example.com | | | helper | Exam | Helper | helper@example.com | | | student1 | Student | One | student1@example.com | yellow frog | | student2 | Student | Two | student2@example.com | prince frog | | student3 | Student | Three | student3@example.com | Kermit | And the following "courses" exist: | fullname | shortname | category | | Course 1 | C1 | 0 | And the following "course enrolments" exist: | user | course | role | | teacher | C1 | editingteacher | | helper | C1 | teacher | | student1 | C1 | student | | student2 | C1 | student | | student3 | C1 | student | @javascript Scenario: Add, modify then delete a user override Given the following "activities" exist: | activity | name | course | idnumber | | quiz | Test quiz | C1 | quiz1 | And I am on the "Test quiz" "mod_quiz > View" page logged in as "teacher" And I change window size to "large" And I navigate to "Overrides" in current page administration And I press "Add user override" And I set the following fields to these values: | Override user | Student One (student1@example.com) | | id_timeclose_enabled | 1 | | timeclose[day] | 1 | | timeclose[month] | January | | timeclose[year] | 2020 | | timeclose[hour] | 08 | | timeclose[minute] | 00 | And I press "Save" Then I should see "Wednesday, 1 January 2020, 8:00" And I click on "Edit" "link" in the "Student One" "table_row" And I set the following fields to these values: | timeclose[year] | 2030 | And I press "Save" And I should see "Action" And I should see "Tuesday, 1 January 2030, 8:00" in the "Student One" "table_row" And I should see "student1@example.com" in the "Student One" "table_row" And I click on "Delete" "link" in the "Student One" "table_row" And I should see "Are you sure you want to delete the override for user Student One (student1@example.com)?" And I press "Continue" And I should not see "Student One" @javascript Scenario: Can add a user override when the quiz is not available to the student Given the following "activities" exist: | activity | name | course | idnumber | visible | | quiz | Test quiz | C1 | quiz1 | 0 | When I am on the "Test quiz" "mod_quiz > User overrides" page logged in as "teacher" And I press "Add user override" And I set the following fields to these values: | Override user | Student One (student1@example.com) | | Attempts allowed | 1 | And I press "Save" Then I should see "This override is inactive" And I should see "Action" And "Edit" "icon" should exist in the "Student One" "table_row" And "copy" "icon" should exist in the "Student One" "table_row" And "Delete" "icon" should exist in the "Student One" "table_row" And I follow "Student One" And I should see "Student One" And I should see "User details" @javascript Scenario: Teacher without 'See full user identity in lists' can see and edit overrides Given the following "permission overrides" exist: | capability | permission | role | contextlevel | reference | | moodle/site:viewuseridentity | Prevent | editingteacher | Course | C1 | And the following "activities" exist: | activity | name | course | idnumber | visible | | quiz | Test quiz | C1 | quiz1 | 0 | When I am on the "Test quiz" "mod_quiz > User overrides" page logged in as "teacher" And I press "Add user override" And I set the following fields to these values: | Override user | Student One | | Attempts allowed | 1 | And I press "Save" And I should see "Action" And I should not see "student1@example.com" And "Edit" "icon" should exist in the "Student One" "table_row" And "copy" "icon" should exist in the "Student One" "table_row" And "Delete" "icon" should exist in the "Student One" "table_row" Scenario: A teacher without accessallgroups permission should only be able to add user override for users that he/she shares groups with, when the activity's group mode is to "separate groups" Given the following "groups" exist: | name | course | idnumber | | Group 1 | C1 | G1 | | Group 2 | C1 | G2 | And the following "group members" exist: | user | group | | student1 | G1 | | teacher | G1 | | student2 | G2 | And the following "permission overrides" exist: | capability | permission | role | contextlevel | reference | | moodle/site:accessallgroups | Prevent | editingteacher | Course | C1 | And the following "activities" exist: | activity | name | course | idnumber | groupmode | | quiz | Test quiz | C1 | quiz1 | 1 | When I am on the "Test quiz" "mod_quiz > User overrides" page logged in as "teacher" And I press "Add user override" Then the "Override user" select box should contain "Student One (student1@example.com)" And the "Override user" select box should not contain "Student Two (student2@example.com)" Scenario: Override user in an activity with group mode set to "separate groups" as a teacher who is not a member in any group, and does not have accessallgroups permission Given the following "groups" exist: | name | course | idnumber | | Group 1 | C1 | G1 | And the following "group members" exist: | user | group | | student1 | G1 | And the following "permission overrides" exist: | capability | permission | role | contextlevel | reference | | moodle/site:accessallgroups | Prevent | editingteacher | Course | C1 | And the following "activities" exist: | activity | name | course | idnumber | groupmode | | quiz | Test quiz | C1 | quiz1 | 1 | When I am on the "Test quiz" "mod_quiz > User overrides" page logged in as "teacher" Then I should see "No groups you can access." And the "Add user override" "button" should be disabled Scenario: A non-editing teacher can see the overrides, but not change them Given the following "activities" exist: | activity | name | course | idnumber | | quiz | Test quiz | C1 | quiz1 | And the following "mod_quiz > user overrides" exist: | quiz | user | attempts | | Test quiz | student1 | 2 | | Test quiz | student2 | 2 | And I am on the "Test quiz" "mod_quiz > View" page logged in as "helper" When I navigate to "Overrides" in current page administration Then "Student One" "table_row" should exist And "Student Two" "table_row" should exist And "Add user override" "button" should not exist And I should not see "Action" And "Edit" "link" should not exist in the "Student One" "table_row" And "Copy" "link" should not exist in the "Student One" "table_row" And "Delete" "link" should not exist in the "Student One" "table_row" And I am on the "Test quiz" "mod_quiz > View" page And I should see "Settings overrides exist (Users: 2)" @javascript Scenario: Teachers can see user additional user identity information Given the following config values are set as admin: | showuseridentity | email,profile_field_frog | And the following "activities" exist: | activity | name | course | idnumber | | quiz | Test quiz | C1 | quiz1 | And the following "mod_quiz > user overrides" exist: | quiz | user | attempts | | Test quiz | student1 | 2 | | Test quiz | student2 | 2 | When I am on the "Test quiz" "mod_quiz > User overrides" page logged in as "teacher" Then I should see "yellow frog" in the "Student One" "table_row" And I should see "prince frog" in the "Student Two" "table_row" And I press "Add user override" And I expand the "Override user" autocomplete And I should see "Kermit" And I should not see "Student one" And I should not see "Student two" And I press "Cancel" And I click on "Edit" "link" in the "Student One" "table_row" And I should see "Student One (student1@example.com, yellow frog)" And I press "Cancel" And I click on "Delete" "link" in the "Student One" "table_row" And I should see "Student One (student1@example.com, yellow frog)" Scenario: Add button disabled if no users Given the following "courses" exist: | fullname | shortname | category | | Course 2 | C2 | 0 | And the following "activities" exist: | activity | name | course | idnumber | | quiz | Other quiz | C2 | quiz2 | When I am on the "Other quiz" "mod_quiz > User overrides" page logged in as "admin" Then the "Add user override" "button" should be disabled