From 83a73da1a36b2a00c00aad4bc736736951304c46 Mon Sep 17 00:00:00 2001 From: Angelia Dela Cruz Date: Mon, 10 Jul 2023 15:36:26 +0800 Subject: [PATCH] MDL-77450 Behat: Behat cleanup and optimisation --- mod/assign/tests/behat/group_submission.feature | 264 +++++++----------------- 1 file changed, 79 insertions(+), 185 deletions(-) diff --git a/mod/assign/tests/behat/group_submission.feature b/mod/assign/tests/behat/group_submission.feature index 8bccbe0086e..a3791bb1e3a 100644 --- a/mod/assign/tests/behat/group_submission.feature +++ b/mod/assign/tests/behat/group_submission.feature @@ -4,41 +4,44 @@ Feature: Group assignment submissions As a teacher I need to group submissions in groups - @javascript - Scenario: Switch between group modes + Background: Given the following "courses" exist: | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 1 | + | Course 1 | C1 | 0 | 1 | And the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Teacher | 1 | teacher1@example.com | - | student0 | Student | 0 | student0@example.com | - | student1 | Student | 1 | student1@example.com | - | student2 | Student | 2 | student2@example.com | - | student3 | Student | 3 | student3@example.com | + | username | firstname | lastname | email | + | teacher1 | Teacher | 1 | teacher1@example.com | + | student0 | Student | 0 | student0@example.com | + | student1 | Student | 1 | student1@example.com | + | student2 | Student | 2 | student2@example.com | + | student3 | Student | 3 | student3@example.com | + | student4 | Student | 4 | student4@example.com | And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | - | student0 | C1 | student | - | student1 | C1 | student | - | student2 | C1 | student | - | student3 | C1 | student | + | user | course | role | + | teacher1 | C1 | editingteacher | + | student0 | C1 | student | + | student1 | C1 | student | + | student2 | C1 | student | + | student3 | C1 | student | + | student4 | C1 | student | And the following "groups" exist: - | name | course | idnumber | - | Group 1 | C1 | G1 | - And the following "activity" exists: + | name | course | idnumber | + | Group 1 | C1 | G1 | + + @javascript + Scenario: Switch between group modes + Given the following "activity" exists: | activity | assign | | course | C1 | | name | Test assignment name | - | intro | Test assignment description | | submissiondrafts | 0 | | teamsubmission | 1 | And I am on the "Test assignment name" Activity page logged in as teacher1 When I follow "View all submissions" - Then "//tr[contains(., 'Student 0')][contains(., 'Default group')]" "xpath_element" should exist - And "//tr[contains(., 'Student 1')][contains(., 'Default group')]" "xpath_element" should exist - And "//tr[contains(., 'Student 2')][contains(., 'Default group')]" "xpath_element" should exist - And "//tr[contains(., 'Student 3')][contains(., 'Default group')]" "xpath_element" should exist + Then I should see "Default group" in the "Student 0" "table_row" + And I should see "Default group" in the "Student 1" "table_row" + And I should see "Default group" in the "Student 2" "table_row" + And I should see "Default group" in the "Student 3" "table_row" And I am on the "Test assignment name" "assign activity editing" page And I set the following fields to these values: | Group mode | Separate groups | @@ -48,52 +51,30 @@ Feature: Group assignment submissions | Group mode | Separate groups | And I press "Save and display" And the following "group members" exist: - | user | group | - | student0 | G1 | - | student1 | G1 | + | user | group | + | student0 | G1 | + | student1 | G1 | And I am on the "Test assignment name" "assign activity" page And I follow "View all submissions" And I set the field "Separate groups" to "Group 1" - And "//tr[contains(., 'Student 0')][contains(., 'Group 1')]" "xpath_element" should exist - And "//tr[contains(., 'Student 1')][contains(., 'Group 1')]" "xpath_element" should exist + And I should see "Group 1" in the "Student 0" "table_row" + And I should see "Group 1" in the "Student 1" "table_row" And I should not see "Student 2" And I set the field "Separate groups" to "All participants" - And "//tr[contains(., 'Student 0')][contains(., 'Group 1')]" "xpath_element" should exist - And "//tr[contains(., 'Student 1')][contains(., 'Group 1')]" "xpath_element" should exist - And "//tr[contains(., 'Student 2')][contains(., 'Default group')]" "xpath_element" should exist - And "//tr[contains(., 'Student 3')][contains(., 'Default group')]" "xpath_element" should exist + And I should see "Group 1" in the "Student 0" "table_row" + And I should see "Group 1" in the "Student 1" "table_row" + And I should see "Default group" in the "Student 2" "table_row" + And I should see "Default group" in the "Student 3" "table_row" - @javascript Scenario: Confirm that the grading status changes for each group member - Given the following "courses" exist: - | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 1 | - And the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Teacher | 1 | teacher1@example.com | - | student1 | Student | 1 | student1@example.com | - | student2 | Student | 2 | student2@example.com | - | student3 | Student | 3 | student3@example.com | - | student4 | Student | 4 | student4@example.com | - And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | - | student1 | C1 | student | - | student2 | C1 | student | - | student3 | C1 | student | - | student4 | C1 | student | - And the following "groups" exist: - | name | course | idnumber | - | Group 1 | C1 | G1 | - And the following "group members" exist: - | user | group | - | student1 | G1 | - | student2 | G1 | + Given the following "group members" exist: + | user | group | + | student1 | G1 | + | student2 | G1 | And the following "activity" exists: | activity | assign | | course | C1 | | name | Test assignment name | - | intro | Test assignment description | | submissiondrafts | 0 | | assignsubmission_onlinetext_enabled | 1 | | assignsubmission_file_enabled | 0 | @@ -102,18 +83,15 @@ Feature: Group assignment submissions And the following "mod_assign > submissions" exist: | assign | user | onlinetext | | Test assignment name | student1 | I'm the student's first submission | - And I am on the "Test assignment name" Activity page logged in as teacher1 When I follow "View all submissions" Then "Student 1" row "Status" column of "generaltable" table should contain "Submitted for grading" And "Student 2" row "Status" column of "generaltable" table should contain "Submitted for grading" And "Student 3" row "Status" column of "generaltable" table should not contain "Submitted for grading" And "Student 4" row "Status" column of "generaltable" table should not contain "Submitted for grading" - And the following "mod_assign > submissions" exist: | assign | user | onlinetext | | Test assignment name | student3 | I'm the student's first submission | - And I am on the "Test assignment name" Activity page And I follow "View all submissions" And "Student 1" row "Status" column of "generaltable" table should contain "Submitted for grading" @@ -123,46 +101,23 @@ Feature: Group assignment submissions @javascript Scenario: Confirm that group submissions can be reopened - Given the following "courses" exist: - | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 1 | - And the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Teacher | 1 | teacher1@example.com | - | student1 | Student | 1 | student1@example.com | - | student2 | Student | 2 | student2@example.com | - | student3 | Student | 3 | student3@example.com | - | student4 | Student | 4 | student4@example.com | - And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | - | student1 | C1 | student | - | student2 | C1 | student | - | student3 | C1 | student | - | student4 | C1 | student | - And the following "groups" exist: - | name | course | idnumber | - | Group 1 | C1 | G1 | - And the following "group members" exist: - | user | group | - | student1 | G1 | - | student2 | G1 | + Given the following "group members" exist: + | user | group | + | student1 | G1 | + | student2 | G1 | And the following "activity" exists: | activity | assign | | course | C1 | | name | Test assignment name | - | intro | Test assignment description | | submissiondrafts | 0 | | assignsubmission_onlinetext_enabled | 1 | | assignsubmission_file_enabled | 0 | | teamsubmission | 1 | | attemptreopenmethod | manual | | requireallteammemberssubmit | 0 | - And the following "mod_assign > submissions" exist: | assign | user | onlinetext | | Test assignment name | student1 | I'm the student's first submission | - And I am on the "Test assignment name" Activity page logged in as teacher1 And I follow "View all submissions" And I click on "Grade" "link" in the "Student 1" "table_row" @@ -173,48 +128,24 @@ Feature: Group assignment submissions And I set the following fields to these values: | Allow another attempt | 1 | And I press "Save changes" - When I am on "Course 1" course homepage - And I am on the "Test assignment name" "assign activity" page + When I am on the "Test assignment name" "assign activity" page And I follow "View all submissions" Then "Student 1" row "Status" column of "generaltable" table should contain "Reopened" And "Student 2" row "Status" column of "generaltable" table should contain "Reopened" Scenario: Confirm groups and submission counts are correct - Given the following "courses" exist: - | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 1 | - And the following "users" exist: - | username | firstname | lastname | email | - | student1 | Student | 1 | student1@example.com | - | student2 | Student | 2 | student2@example.com | - | student3 | Student | 3 | student3@example.com | - | student4 | Student | 4 | student4@example.com | - | student5 | Student | 5 | student5@example.com | - | student6 | Student | 6 | student6@example.com | - And the following "course enrolments" exist: - | user | course | role | - | student1 | C1 | student | - | student2 | C1 | student | - | student3 | C1 | student | - | student4 | C1 | student | - | student5 | C1 | student | - | student6 | C1 | student | - And the following "groups" exist: - | name | course | idnumber | - | Group 1 | C1 | G1 | - | Group 2 | C1 | G2 | - | Group 3 | C1 | G3 | + Given the following "groups" exist: + | name | course | idnumber | + | Group 2 | C1 | G2 | + | Group 3 | C1 | G3 | And the following "group members" exist: - | user | group | - | student1 | G1 | - | student2 | G1 | - | student3 | G2 | - | student4 | G2 | - | student5 | G3 | - | student6 | G3 | + | user | group | + | student1 | G1 | + | student2 | G2 | + | student3 | G3 | And the following "groupings" exist: - | name | course | idnumber | - | Grouping 1 | C1 | GG1 | + | name | course | idnumber | + | Grouping 1 | C1 | GG1 | And the following "grouping groups" exist: | grouping | group | | GG1 | G1 | @@ -224,7 +155,6 @@ Feature: Group assignment submissions | activity | assign | | course | C1 | | name | Test assignment name | - | intro | Test assignment description | | submissiondrafts | 0 | | assignsubmission_onlinetext_enabled | 1 | | assignsubmission_file_enabled | 0 | @@ -234,52 +164,33 @@ Feature: Group assignment submissions | groupmode | 1 | | teamsubmissiongroupingid | GG1 | | submissiondrafts | 0 | - And the following "mod_assign > submissions" exist: | assign | user | onlinetext | | Test assignment name | student1 | I'm the student's first submission | + | Test assignment name | student2 | I'm the student's first submission | | Test assignment name | student3 | I'm the student's first submission | - | Test assignment name | student5 | I'm the student's first submission | - And I am on the "Test assignment name" Activity page logged in as admin And I should see "3" in the "Groups" "table_row" And I should see "3" in the "Submitted" "table_row" When I select "Group 1" from the "Separate groups" singleselect Then I should see "1" in the "Groups" "table_row" And I should see "1" in the "Submitted" "table_row" - When I select "Group 2" from the "Separate groups" singleselect + And I select "Group 2" from the "Separate groups" singleselect And I should see "1" in the "Groups" "table_row" And I should see "1" in the "Submitted" "table_row" - When I select "Group 3" from the "Separate groups" singleselect + And I select "Group 3" from the "Separate groups" singleselect And I should see "1" in the "Groups" "table_row" And I should see "1" in the "Submitted" "table_row" Scenario: Confirm that the submission status changes for each group member - Given the following "courses" exist: - | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 1 | - And the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Teacher | 1 | teacher1@example.com | - | student1 | Student | 1 | student1@example.com | - | student2 | Student | 2 | student2@example.com | - And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | - | student1 | C1 | student | - | student2 | C1 | student | - And the following "groups" exist: - | name | course | idnumber | - | Group 1 | C1 | G1 | - And the following "group members" exist: - | user | group | - | student1 | G1 | - | student2 | G1 | + Given the following "group members" exist: + | user | group | + | student1 | G1 | + | student2 | G1 | And the following "activity" exists: | activity | assign | | course | C1 | | name | Test assignment name | - | intro | Test assignment description | | submissiondrafts | 1 | | assignsubmission_onlinetext_enabled | 1 | | assignsubmission_file_enabled | 0 | @@ -312,45 +223,40 @@ Feature: Group assignment submissions Scenario: Student can submit or edit group assignment depending on 'requireallteammemberssubmit' setting Given the following "courses" exist: | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 2 | - And the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Terry | Alexander | teacher1@example.com | - | student1 | Sam | Edwards | student1@example.com | - | student2 | Carlos | Rivera | student2@example.com | + | Course 2 | C2 | 0 | 2 | And the following "course enrolments" exist: | user | course | role | - | teacher1 | C1 | editingteacher | - | student1 | C1 | student | - | student2 | C1 | student | + | teacher1 | C2 | editingteacher | + | student1 | C2 | student | + | student2 | C2 | student | And the following "groups" exist: | name | course | idnumber | - | Group 1 | C1 | G1 | + | Group 1 | C2 | CG1 | And the following "group members" exist: | user | group | - | student1 | G1 | - | student2 | G1 | + | student1 | CG1 | + | student2 | CG1 | And the following "activities" exist: | activity | course | name | assignsubmission_onlinetext_enabled | assignsubmission_file_enabled | assignsubmission_file_maxfiles | assignsubmission_file_maxsizebytes | submissiondrafts | teamsubmission | requireallteammemberssubmit | - | assign | C1 | Assign 1 | 1 | 1 | 1 | 2097152 | 1 | 1 | 1 | - | assign | C1 | Assign 2 | 1 | 1 | 1 | 2097152 | 0 | 1 | 0 | + | assign | C2 | Assign 1 | 1 | 1 | 1 | 2097152 | 1 | 1 | 1 | + | assign | C2 | Assign 2 | 1 | 1 | 1 | 2097152 | 0 | 1 | 0 | # Submit an assignment with 'requireallteammemberssubmit' setting enabled When I am on the "Assign 1" "assign activity" page logged in as student1 Then I should see "Group 1" - And I should not see "Carlos Rivera" + And I should not see "Student 2" And I press "Add submission" And I set the field "Online text" to "student1 submission" And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager And I press "Save changes" # Confirm that Submission status remains as draft and all students appear because 'Submit assignment' was not yet clicked And I should see "Draft (not submitted)" in the "Submission status" "table_row" - And I should see "Users who need to submit: Sam Edwards, Carlos Rivera" + And I should see "Users who need to submit: Student 1, Student 2" And I press "Submit assignment" And I press "Continue" # Confirm that Submission status remains as draft and only student2 appears because student2 has not yet submitted assignment And I am on the "Assign 1" "assign activity" page logged in as student2 And I should see "Draft (not submitted)" in the "Submission status" "table_row" - And I should see "Users who need to submit: Carlos Rivera" + And I should see "Users who need to submit: Student 2" And I press "Edit submission" And I set the field "Online text" to "student2 updated submission" And I delete "empty.txt" from "File submissions" filemanager @@ -368,7 +274,7 @@ Feature: Group assignment submissions # Submit an assignment with 'requireallteammemberssubmit' disabled And I am on the "Assign 2" "assign activity" page logged in as student1 And I should see "Group 1" - And I should not see "Carlos Rivera" + And I should not see "Student 2" And I press "Add submission" And I set the field "Online text" to "student1 submission" And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager @@ -379,31 +285,19 @@ Feature: Group assignment submissions And I should not see "Users who need to submit" Scenario: Group submission does not use non-participation groups - Given the following "courses" exist: - | fullname | shortname | category | groupmode | - | Course 1 | C1 | 0 | 1 | - And the following "users" exist: - | username | firstname | lastname | email | - | teacher1 | Teacher | 1 | teacher1@example.com | - | student1 | Student | 1 | student0@example.com | - And the following "course enrolments" exist: - | user | course | role | - | teacher1 | C1 | editingteacher | - | student1 | C1 | student | - And the following "groups" exist: + Given the following "groups" exist: | name | course | idnumber | participation | - | Group 1 | C1 | G1 | 0 | + | Group A | C1 | CG1 | 0 | And the following "group members" exist: - | group | user | - | G1 | student1 | + | group | user | + | CG1 | student1 | And the following "activity" exists: | activity | assign | | course | C1 | | name | Test assignment name | - | intro | Test assignment description | | submissiondrafts | 0 | | teamsubmission | 1 | | groupmode | 1 | When I am on the "Test assignment name" Activity page logged in as student1 Then I should see "Default group" - And I should not see "Group 1" + And I should not see "Group A" -- 2.11.4.GIT