From b74c95a474b3c1a44e24a82d7e5962dcbd825239 Mon Sep 17 00:00:00 2001 From: Dmitrii Metelkin Date: Wed, 25 Jul 2018 17:30:56 +1000 Subject: [PATCH] Add tests to support new permissions and default activity options --- tests/behat/activtiy_options.feature | 142 +++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 tests/behat/activtiy_options.feature diff --git a/tests/behat/activtiy_options.feature b/tests/behat/activtiy_options.feature new file mode 100644 index 0000000..b5957bc --- /dev/null +++ b/tests/behat/activtiy_options.feature @@ -0,0 +1,142 @@ +@mod @mod_customcert +Feature: Being able to correctly display options on the certificate activity edit form + + Background: + Given the following "courses" exist: + | fullname | shortname | category | + | Course 1 | C1 | 0 | + And the following "users" exist: + | username | firstname | lastname | email | + | teacher1 | Teacher | 1 | teacher1@example.com | + | manager1 | Manager | 1 | Manager1@example.com | + And the following "course enrolments" exist: + | user | course | role | + | teacher1 | C1 | editingteacher | + | manager1 | C1 | manager | + And the following "activities" exist: + | activity | name | intro | course | idnumber | + | customcert | Custom certificate 1 | Custom certificate 1 intro | C1 | customcert1 | + + Scenario: Edit an activity as an Editing Teacher I can see all custom certificate options + And I log in as "teacher1" + And I am on "Course 1" course homepage with editing mode on + And I follow "Custom certificate 1" + And I navigate to "Edit settings" in current page administration + And I should see "Email students" + And I should see "Email teachers" + And I should see "Email others" + And I should see "Allow anyone to verify a certificate" + And I should see "Required minutes in course" + And I should see "Set protection" + + Scenario: Create an activity as an Editing Teacher I can see all custom certificate options + And I log in as "teacher1" + And I am on "Course 1" course homepage with editing mode on + And I add a "Custom certificate" to section "1" + And I should see "Email students" + And I should see "Email teachers" + And I should see "Email others" + And I should see "Allow anyone to verify a certificate" + And I should see "Required minutes in course" + And I should see "Set protection" + + Scenario: Add an activity as a Manager I can see all custom certificate options + And I log in as "manager1" + And I am on "Course 1" course homepage with editing mode on + And I add a "Custom certificate" to section "1" + And I should see "Email students" + And I should see "Email teachers" + And I should see "Email others" + And I should see "Allow anyone to verify a certificate" + And I should see "Required minutes in course" + And I should see "Set protection" + + Scenario: Edit an activity as a Manager Teacher I can see all custom certificate options + And I log in as "manager1" + And I am on "Course 1" course homepage with editing mode on + And I follow "Custom certificate 1" + And I navigate to "Edit settings" in current page administration + And I should see "Email students" + And I should see "Email teachers" + And I should see "Email others" + And I should see "Allow anyone to verify a certificate" + And I should see "Required minutes in course" + And I should see "Set protection" + + Scenario: Create an activity as an Editing Teacher without required capabilities I can't see all custom certificate options + And I log in as "admin" + And I set the following system permissions of "Teacher" role: + | capability | permission | + | mod/customcert:manageemailstudents | Prevent | + | mod/customcert:manageemailteachers | Prevent | + | mod/customcert:manageemailothers | Prevent | + | mod/customcert:manageverifyany | Prevent | + | mod/customcert:managerequiredtime | Prevent | + | mod/customcert:manageprotection | Prevent | + And I log out + When I log in as "teacher1" + And I am on "Course 1" course homepage with editing mode on + And I add a "Custom certificate" to section "1" + And I should not see "Email students" + And I should not see "Email teachers" + And I should not see "Email others" + And I should not see "Allow anyone to verify a certificate" + And I should not see "Required minutes in course" + And I should not see "Set protection" + + Scenario: Edit an activity as an Editing Teacher without required capabilities I can't see all custom certificate options + And I log in as "admin" + And I set the following system permissions of "Teacher" role: + | capability | permission | + | mod/customcert:manageemailstudents | Prevent | + | mod/customcert:manageemailteachers | Prevent | + | mod/customcert:manageemailothers | Prevent | + | mod/customcert:manageverifyany | Prevent | + | mod/customcert:managerequiredtime | Prevent | + | mod/customcert:manageprotection | Prevent | + And I log out + When I log in as "teacher1" + And I am on "Course 1" course homepage with editing mode on + And I follow "Custom certificate 1" + And I navigate to "Edit settings" in current page administration + And I should not see "Email students" + And I should not see "Email teachers" + And I should not see "Email others" + And I should not see "Allow anyone to verify a certificate" + And I should not see "Required minutes in course" + And I should not see "Set protection" + + Scenario: Add an activity using default custom certificate options + And I log in as "manager1" + And I am on "Course 1" course homepage with editing mode on + And I add a "Custom certificate" to section "0" + And the field "emailstudents" matches value "0" + And the field "emailteachers" matches value "0" + And the field "emailothers" matches value "" + And the field "verifyany" matches value "0" + And the field "requiredtime" matches value "0" + And the field "protection_print" matches value "0" + And the field "protection_modify" matches value "0" + And the field "protection_copy" matches value "0" + + Scenario: Add an activity using configured custom certificate options + And the following config values are set as admin: + | emailstudents | 1 | customcert | + | emailteachers | 1 | customcert | + | emailothers | test@moodle.com | customcert | + | verifyany | 1 | customcert | + | requiredtime | 5 | customcert | + | protection_print | 1 | customcert | + | protection_modify | 1 | customcert | + | protection_copy | 1 | customcert | + And I log in as "manager1" + And I am on "Course 1" course homepage with editing mode on + And I add a "Custom certificate" to section "1" + And the field "emailstudents" matches value "1" + And the field "emailteachers" matches value "1" + And the field "emailothers" matches value "test@moodle.com" + And the field "verifyany" matches value "1" + And the field "requiredtime" matches value "5" + And the field "protection_print" matches value "1" + And the field "protection_modify" matches value "1" + And the field "protection_copy" matches value "1"