From 1adbb84d0765f7fabccf3ded01aeee593baae54a Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 15 Jun 2023 09:28:05 +0800 Subject: [PATCH] MDL-76733 mod_assign: Remove JS requirement for time-based tests Converting these tests to use an onlinetext submission and drop the JS requirement means that they are much less susceptible to runtime issues, and not susceptible to those caused by JS at all. --- .../tests/behat/set_availability.feature | 118 ++++++++---------- 1 file changed, 51 insertions(+), 67 deletions(-) diff --git a/mod/assign/tests/behat/set_availability.feature b/mod/assign/tests/behat/set_availability.feature index 87a00110026..ef77d244b00 100644 --- a/mod/assign/tests/behat/set_availability.feature +++ b/mod/assign/tests/behat/set_availability.feature @@ -21,14 +21,13 @@ Feature: Set availability dates for an assignment Scenario: Student cannot submit an assignment prior to the 'allow submissions from' date Given the following "activity" exists: - | activity | assign | - | course | C1 | - | name | Assignment name | - | assignsubmission_file_enabled | 1 | - | assignsubmission_file_maxfiles | 1 | - | assignsubmission_file_maxsizebytes | 0 | - | submissiondrafts | 0 | - | allowsubmissionsfromdate | ##tomorrow noon## | + | activity | assign | + | course | C1 | + | name | Assignment name | + | assignsubmission_onlinetext_enabled | 1 | + | assignsubmission_file_enabled | 0 | + | submissiondrafts | 0 | + | allowsubmissionsfromdate | ##tomorrow noon## | When I am on the "Assignment name" Activity page logged in as student1 Then "Add submission" "button" should not exist And the activity date in "Assignment name" should contain "Opens:" @@ -37,15 +36,14 @@ Feature: Set availability dates for an assignment @javascript Scenario: Student can see the assignment's due date in the course calendar Given the following "activity" exists: - | activity | assign | - | course | C1 | - | name | Assignment name | - | assignsubmission_file_enabled | 1 | - | assignsubmission_file_maxfiles | 1 | - | assignsubmission_file_maxsizebytes | 0 | - | submissiondrafts | 0 | - | allowsubmissionsfromdate | ##first day of this month noon## | - | duedate | ##first day of this month noon +24 hours## | + | activity | assign | + | course | C1 | + | name | Assignment name | + | assignsubmission_onlinetext_enabled | 1 | + | assignsubmission_file_enabled | 0 | + | submissiondrafts | 0 | + | allowsubmissionsfromdate | ##first day of this month noon## | + | duedate | ##first day of this month noon +24 hours## | And the following "blocks" exist: | blockname | contextlevel | reference | pagetypepattern | defaultregion | | calendar_month | Course | C1 | course-view-* | site-post | @@ -53,25 +51,23 @@ Feature: Set availability dates for an assignment And I hover over day "2" of this month in the mini-calendar block Then I should see "Assignment name is due" - @javascript @_file_upload Scenario: Student can submit an assignment before the due date Given the following "activity" exists: - | activity | assign | - | course | C1 | - | name | Assignment name | - | assignsubmission_file_enabled | 1 | - | assignsubmission_file_maxfiles | 1 | - | assignsubmission_file_maxsizebytes | 0 | - | submissiondrafts | 0 | - | allowsubmissionsfromdate | ##now## | - | duedate | ##+2 days 5 hours 30 minutes## | + | activity | assign | + | course | C1 | + | name | Assignment name | + | assignsubmission_onlinetext_enabled | 1 | + | assignsubmission_file_enabled | 0 | + | submissiondrafts | 0 | + | allowsubmissionsfromdate | ##now## | + | duedate | ##+2 days 5 hours 30 minutes## | When I am on the "Assignment name" Activity page logged in as student1 And the activity date in "Assignment name" should contain "Due:" And the activity date in "Assignment name" should contain "##+2 days 5 hours 30 minutes##%A, %d %B %Y##" And I should see "2 days 5 hours" in the "Time remaining" "table_row" And "Add submission" "button" should exist And I press "Add submission" - And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager + And I set the field "Online text" to "This is my submission" And I press "Save changes" And I should see "Submitted for grading" in the "Submission status" "table_row" @@ -80,26 +76,24 @@ Feature: Set availability dates for an assignment And I follow "View all submissions" And I should see "Submitted for grading" in the "Student 1" "table_row" - @javascript @_file_upload Scenario: Student can submit an assignment after the due date and the submission is marked as late Given the following "activity" exists: - | activity | assign | - | course | C1 | - | name | Assignment name | - | assignsubmission_file_enabled | 1 | - | assignsubmission_file_maxfiles | 1 | - | assignsubmission_file_maxsizebytes | 0 | - | submissiondrafts | 0 | - | allowsubmissionsfromdate | ##3 days ago## | - | duedate | ##2 days 5 hours 30 minutes ago## | - | cutoffdate | ##tomorrow noon## | + | activity | assign | + | course | C1 | + | name | Assignment name | + | assignsubmission_onlinetext_enabled | 1 | + | assignsubmission_file_enabled | 0 | + | submissiondrafts | 0 | + | allowsubmissionsfromdate | ##3 days ago## | + | duedate | ##2 days 5 hours 30 minutes ago## | + | cutoffdate | ##tomorrow noon## | When I am on the "Assignment name" Activity page logged in as student1 And the activity date in "Assignment name" should contain "Due:" And the activity date in "Assignment name" should contain "##2 days 5 hours 30 minutes ago##%A, %d %B %Y##" And I should see "Assignment is overdue by: 2 days 5 hours" in the "Time remaining" "table_row" And "Add submission" "button" should exist And I press "Add submission" - And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager + And I set the field "Online text" to "This is my submission" And I press "Save changes" And I should see "Submitted for grading" in the "Submission status" "table_row" And I should see "Assignment was submitted 2 days 5 hours late" in the "Time remaining" "table_row" @@ -110,56 +104,46 @@ Feature: Set availability dates for an assignment And I should see "Submitted for grading" in the "Student 1" "table_row" And I should see "2 days 5 hours late" in the "Student 1" "table_row" - @javascript @_file_upload Scenario: Student can submit an assignment before the time limit runs out Given the following config values are set as admin: | config | value | plugin | | enabletimelimit | 1 | assign | And the following "activity" exists: - | activity | assign | - | course | C1 | - | name | Assignment name | - | assignsubmission_file_enabled | 1 | - | assignsubmission_file_maxfiles | 1 | - | assignsubmission_file_maxsizebytes | 0 | - | submissiondrafts | 0 | - | timelimit | 20 | + | activity | assign | + | course | C1 | + | name | Assignment name | + | assignsubmission_onlinetext_enabled | 1 | + | assignsubmission_file_enabled | 0 | + | submissiondrafts | 0 | + | timelimit | 20 | When I am on the "Assignment name" Activity page logged in as student1 And I should see "20 secs" in the "Time limit" "table_row" And "Begin assignment" "link" should exist And I follow "Begin assignment" And I wait "1" seconds - And "Begin assignment" "button" should exist - And I press "Begin assignment" - And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager + And I set the field "Online text" to "This is my submission" And I press "Save changes" Then I should see "Submitted for grading" in the "Submission status" "table_row" And I should see "secs under the time limit" in the "Time remaining" "table_row" - @javascript @_file_upload Scenario: Assignment with time limit and due date shows how late assignment is submitted relative to due date Given the following config values are set as admin: | config | value | plugin | | enabletimelimit | 1 | assign | And the following "activity" exists: - | activity | assign | - | course | C1 | - | name | Assignment name | - | assignsubmission_file_enabled | 1 | - | assignsubmission_file_maxfiles | 1 | - | assignsubmission_file_maxsizebytes | 0 | - | submissiondrafts | 0 | - | timelimit | 2 | - | duedate | ##2 days 5 hours 30 minutes ago## | + | activity | assign | + | course | C1 | + | name | Assignment name | + | assignsubmission_onlinetext_enabled | 1 | + | assignsubmission_file_enabled | 0 | + | submissiondrafts | 0 | + | timelimit | 2 | + | duedate | ##2 days 5 hours 30 minutes ago## | When I am on the "Assignment name" Activity page logged in as student1 And I should see "2 secs" in the "Time limit" "table_row" And "Begin assignment" "link" should exist And I follow "Begin assignment" - And I wait "1" seconds - And "Begin assignment" "button" should exist - And I press "Begin assignment" - And I wait "2" seconds - And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager + And I set the field "Online text" to "This is my submission" And I press "Save changes" Then I should see "Assignment was submitted 2 days 5 hours late" in the "Time remaining" "table_row"