mirror of
https://github.com/moodle/moodle.git
synced 2025-03-24 17:40:26 +01:00
MDL-76733 mod_assign: Tidy up availability behat tests
This feature had lots of small issues and it made sense to fix it whilst investigating a query: * most of the steps do not require JavaScript * it uses the UI to set an admin setting, for every scenario: ** only 3-4 of the scenarios actually test that setting ** it is very slow to do it his way when we have a generator step we can use * we create two assignments in the Background, but each test only uses one of them * we create the assignments in the Background with a generator, but update them to modify various settings in each Scenario using the UI when we should just create one assignment for each test and set it up correctly for that Scenario
This commit is contained in:
parent
6ca70dd59f
commit
1450dade43
@ -1,14 +1,11 @@
|
||||
@mod @mod_assign @javascript
|
||||
@mod @mod_assign
|
||||
Feature: Set availability dates for an assignment
|
||||
In order to control when a student can upload an assignment
|
||||
As a teacher
|
||||
I need be able to set availability dates for an assignment
|
||||
In order to control when a student can upload an assignment
|
||||
As a teacher
|
||||
I need be able to set availability dates for an assignment
|
||||
|
||||
Background:
|
||||
Given I log in as "admin"
|
||||
And I set the following administration settings values:
|
||||
| Enable timed assignments | 1 |
|
||||
And the following "courses" exist:
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname |
|
||||
| Course 1 | C1 |
|
||||
And the following "users" exist:
|
||||
@ -21,72 +18,53 @@ Feature: Set availability dates for an assignment
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
| student2 | C1 | student |
|
||||
And the following "activity" exists:
|
||||
| activity | assign |
|
||||
| course | C1 |
|
||||
| name | Assignment name |
|
||||
| description | Assignment description |
|
||||
| assignsubmission_file_enabled | 1 |
|
||||
| assignsubmission_file_maxfiles | 1 |
|
||||
| assignsubmission_file_maxsizebytes | 0 |
|
||||
| submissiondrafts | 0 |
|
||||
Given the following "activity" exists:
|
||||
| activity | assign |
|
||||
| course | C1 |
|
||||
| name | Test late assignment with time limit |
|
||||
| assignsubmission_onlinetext_enabled | 1 |
|
||||
| assignsubmission_file_enabled | 1 |
|
||||
| assignsubmission_file_maxfiles | 1 |
|
||||
| assignsubmission_file_maxsizebytes | 1000000 |
|
||||
| submissiondrafts | 0 |
|
||||
| allowsubmissionsfromdate_enabled | 0 |
|
||||
| duedate_enabled | 0 |
|
||||
| cutoffdate_enabled | 0 |
|
||||
| gradingduedate_enabled | 0 |
|
||||
|
||||
Scenario: Student cannot submit an assignment prior to the 'allow submissions from' date
|
||||
Given I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Allow submissions from' to tomorrow at noon.
|
||||
And I set the field "Allow submissions from" to "##tomorrow noon##"
|
||||
And I press "Save and return to course"
|
||||
And I log out
|
||||
|
||||
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## |
|
||||
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:"
|
||||
And the activity date in "Assignment name" should contain "##tomorrow noon##%A, %d %B %Y, %I:%M##"
|
||||
|
||||
@javascript
|
||||
Scenario: Student can see the assignment's due date in the course calendar
|
||||
Given I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Allow submissions from' to the first day of this month at noon.
|
||||
And I set the field "Allow submissions from" to "##first day of this month noon##"
|
||||
# Set 'Due date' to the second day of this month at noon.
|
||||
And I set the field "Due date" to "##first day of this month noon +24 hours##"
|
||||
And I press "Save and return to course"
|
||||
And I turn editing mode on
|
||||
And I add the "Calendar" block
|
||||
And I log out
|
||||
|
||||
And I am on the "C1" Course page logged in as student1
|
||||
When I hover over day "2" of this month in the mini-calendar block
|
||||
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## |
|
||||
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"
|
||||
|
||||
@_file_upload
|
||||
@javascript @_file_upload
|
||||
Scenario: Student can submit an assignment before the due date
|
||||
Given I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Allow submissions from' to now.
|
||||
And I set the field "Allow submissions from" to "##now##"
|
||||
# Set 'Due date' to 2 days 5 hours 30 minutes in the future.
|
||||
And I set the field "Due date" to "##+2 days 5 hours 30 minutes##"
|
||||
And I press "Save and return to course"
|
||||
And I log out
|
||||
|
||||
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## |
|
||||
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##"
|
||||
@ -94,40 +72,37 @@ Feature: Set availability dates for an assignment
|
||||
And "Add submission" "button" should exist
|
||||
And I press "Add submission"
|
||||
And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager
|
||||
When I press "Save changes"
|
||||
Then I should see "Submitted for grading" in the "Submission status" "table_row"
|
||||
And I log out
|
||||
And I press "Save changes"
|
||||
And I should see "Submitted for grading" in the "Submission status" "table_row"
|
||||
|
||||
And I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I should see "1" in the "Submitted" "table_row"
|
||||
And I follow "View all submissions"
|
||||
And I should see "Submitted for grading" in the "Student 1" "table_row"
|
||||
|
||||
@_file_upload
|
||||
@javascript @_file_upload
|
||||
Scenario: Student can submit an assignment after the due date and the submission is marked as late
|
||||
Given I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Allow submissions from' to 3 days ago.
|
||||
And I set the field "Allow submissions from" to "##3 days ago##"
|
||||
# Set 'Due date' to 2 days 5 hours 30 minutes ago.
|
||||
And I set the field "Due date" to "##2 days 5 hours 30 minutes ago##"
|
||||
# Set 'Cut-off date' to tomorrow at noon.
|
||||
And I set the field "Cut-off date" to "##tomorrow noon##"
|
||||
And I press "Save and return to course"
|
||||
And I log out
|
||||
|
||||
And I am on the "Assignment name" Activity page logged in as student1
|
||||
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## |
|
||||
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
|
||||
When I press "Save changes"
|
||||
Then I should see "Submitted for grading" in the "Submission status" "table_row"
|
||||
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"
|
||||
And I log out
|
||||
|
||||
And I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I should see "1" in the "Submitted" "table_row"
|
||||
@ -135,23 +110,20 @@ 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"
|
||||
|
||||
@_file_upload
|
||||
@javascript @_file_upload
|
||||
Scenario: Student can submit an assignment before the time limit runs out
|
||||
Given I log in as "admin"
|
||||
And I change the window size to "large"
|
||||
And I set the following administration settings values:
|
||||
| Enable timed assignments | 1 |
|
||||
And I log out
|
||||
And I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Time limit' to 20 seconds.
|
||||
And I set the field "timelimit[enabled]" to "1"
|
||||
And I set the field "timelimit[number]" to "20"
|
||||
And I set the field "timelimit[timeunit]" to "seconds"
|
||||
And I press "Save and return to course"
|
||||
And I log 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 |
|
||||
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
|
||||
@ -160,57 +132,51 @@ Feature: Set availability dates for an assignment
|
||||
And "Begin assignment" "button" should exist
|
||||
And I press "Begin assignment"
|
||||
And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager
|
||||
When I press "Save changes"
|
||||
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"
|
||||
|
||||
@_file_upload
|
||||
@javascript @_file_upload
|
||||
Scenario: Assignment with time limit and due date shows how late assignment is submitted relative to due date
|
||||
Given I log in as "admin"
|
||||
And I change the window size to "large"
|
||||
And I set the following administration settings values:
|
||||
| Enable timed assignments | 1 |
|
||||
And I log out
|
||||
And I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Time limit' to 5 seconds.
|
||||
And I set the field "timelimit[enabled]" to "1"
|
||||
And I set the field "timelimit[number]" to "5"
|
||||
And I set the field "timelimit[timeunit]" to "seconds"
|
||||
# Set 'Due date' to 2 days 5 hours 30 minutes ago.
|
||||
And I set the field "Due date" to "##2 days 5 hours 30 minutes ago##"
|
||||
And I press "Save and display"
|
||||
And I should see "5 secs" in the "Time limit" "table_row"
|
||||
And I log 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 | 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 "5" seconds
|
||||
And I wait "2" seconds
|
||||
And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager
|
||||
When I press "Save changes"
|
||||
And I press "Save changes"
|
||||
Then I should see "Assignment was submitted 2 days 5 hours late" in the "Time remaining" "table_row"
|
||||
|
||||
Scenario: Student cannot submit an assignment after the cut-off date
|
||||
Given I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Allow submissions from' to 3 days ago.
|
||||
And I set the field "Allow submissions from" to "##3 days ago##"
|
||||
# Set 'Due date' to 2 days 5 hours 30 minutes ago.
|
||||
And I set the field "Due date" to "##2 days 5 hours 30 minutes ago##"
|
||||
# Set 'Cut-off date' to yesterday at noon.
|
||||
And I set the field "Cut-off date" to "##yesterday noon##"
|
||||
And I press "Save and return to course"
|
||||
And I log out
|
||||
|
||||
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 | ##yesterday noon## |
|
||||
When I am on the "Assignment name" Activity page logged in as student1
|
||||
Then "Add submission" "button" should not exist
|
||||
And I log out
|
||||
|
||||
And I am on the "Assignment name" Activity page logged in as teacher1
|
||||
And I should see "0" in the "Submitted" "table_row"
|
||||
@ -218,18 +184,27 @@ Feature: Set availability dates for an assignment
|
||||
And I should see "No submission" in the "Student 1" "table_row"
|
||||
And I should see "Assignment is overdue by: 2 days 5 hours" in the "Student 1" "table_row"
|
||||
|
||||
@_file_upload
|
||||
Scenario: Late submission will be calculated only when the student starts the assignment
|
||||
Given I am on the "Test late assignment with time limit" Activity page logged in as admin
|
||||
And I navigate to "Settings" in current page administration
|
||||
And I follow "Expand all"
|
||||
# Set 'Time limit' to 5 seconds.
|
||||
And I set the field "timelimit[enabled]" to "1"
|
||||
And I set the field "timelimit[number]" to "5"
|
||||
And I set the field "timelimit[timeunit]" to "seconds"
|
||||
And I press "Save and return to course"
|
||||
When I am on the "Test late assignment with time limit" Activity page logged in as student1
|
||||
And I wait "6" seconds
|
||||
@javascript @_file_upload
|
||||
Scenario: Late submission will be calculated only when the student starts the assignm
|
||||
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 |
|
||||
| allowsubmissionsfromdate_enabled | 0 |
|
||||
| duedate_enabled | 0 |
|
||||
| cutoffdate_enabled | 0 |
|
||||
| gradingduedate_enabled | 0 |
|
||||
|
||||
When I am on the "Assignment name" Activity page logged in as student1
|
||||
And I wait "3" seconds
|
||||
And I click on "Begin assignment" "link"
|
||||
And I click on "Begin assignment" "button"
|
||||
And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager
|
||||
|
Loading…
x
Reference in New Issue
Block a user