Skip to content

Commit

Permalink
MDL-76733 mod_assign: Remove JS requirement for time-based tests
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
andrewnicols committed Jun 15, 2023
1 parent b5fa1ee commit 1adbb84
Showing 1 changed file with 51 additions and 67 deletions.
118 changes: 51 additions & 67 deletions mod/assign/tests/behat/set_availability.feature
Expand Up @@ -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:"
Expand All @@ -37,41 +36,38 @@ 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 |
When I am on the "C1" Course page logged in as student1
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"

Expand All @@ -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"
Expand All @@ -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"

Expand Down

0 comments on commit 1adbb84

Please sign in to comment.