Vmeda.Online/src/addons/mod/assign/tests/behat/basic_usage.feature
Dani Palou 9a929f684c MOBILE-4028 behat: Fix test after changes in links workflow
Before MOBILE-4028, links could be treated before authenticating to a site, and this meant that the 'navigateToModule' function used 'getAndOpenCourse', which opened first the course and then the activity. Now the links are treated after authenticating, and this means that the activity is opened directly, without opening the course first.
2024-11-25 14:31:43 +01:00

252 lines
12 KiB
Gherkin
Executable File

@addon_mod_assign @app @javascript
Feature: Test basic usage of assignment activity in app
In order to participate in the assignment while using the mobile app
I need basic assignment functionality to work
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | teacher | teacher1@example.com |
| student1 | Student | student | student1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And the following "activities" exist:
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | attemptreopenmethod | maxattempts |
| assign | C1 | assign1 | assignment1 | Test assignment description1 | 1 | ## 20 August 2002 12:00 PM ## | manual | -1 |
Scenario: View assign description, due date & View list of student submissions (as teacher) & View own submission or student submission
# Create, edit and submit as a student
Given I entered the assign activity "assignment1" on course "Course 1" as "student1" in the app
Then the header should be "assignment1" in the app
And I should find "Test assignment description1" in the app
And I should find "Due:" in the app
And I should find "20 August 2002, 12:00 PM" in the app
When I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test" in the app
And I press "Save" in the app
Then I should find "Draft (not submitted)" in the app
And I should find "Not graded" in the app
When I press "Edit submission" in the app
And I set the field "Online text submissions" to "Submission test edited" in the app
And I press "Save" in the app
And I press "OK" in the app
Then I should find "Submission test edited" in the app
When I press "Submit assignment" in the app
And I press "OK" in the app
Then I should find "Submitted for grading" in the app
And I should find "Not graded" in the app
And I should find "Submission test edited" in the app
# View as a teacher
Given I entered the assign activity "assignment1" on course "Course 1" as "teacher1" in the app
Then the header should be "assignment1" in the app
When I press "Submitted" in the app
Then I should find "Student student" in the app
And I should find "Not graded" in the app
When I press "Student student" in the app
Then I should find "Online text submissions" in the app
And I should find "Submission test edited" in the app
And the following events should have been logged for "student1" in the app:
| name | activity | activityname | course |
| \assignsubmission_onlinetext\event\assessable_uploaded | assign | assignment1 | Course 1 |
| \assignsubmission_onlinetext\event\submission_created | assign | assignment1 | Course 1 |
| \assignsubmission_onlinetext\event\submission_updated | assign | assignment1 | Course 1 |
| \mod_assign\event\assessable_submitted | assign | assignment1 | Course 1 |
| \mod_assign\event\course_module_viewed | assign | assignment1 | Course 1 |
| \mod_assign\event\statement_accepted | assign | assignment1 | Course 1 |
| \mod_assign\event\submission_status_viewed | assign | assignment1 | Course 1 |
And the following events should have been logged for "teacher1" in the app:
| name | activity | activityname | course |
| \mod_assign\event\grading_table_viewed | assign | assignment1 | Course 1 |
| \mod_assign\event\course_module_viewed | assign | assignment1 | Course 1 |
Scenario: Edit/Add submission (online text) & Add new attempt from previous submission & Submit for grading
# Submit first attempt as a student
Given I entered the assign activity "assignment1" on course "Course 1" as "student1" in the app
Then I should find "assignment1" in the app
When I replace "/Assignment is overdue by: .*/" within "addon-mod-assign-submission core-tabs ion-item:nth-child(2)" with "Assignment is overdue by: [Overdue date]"
Then the UI should match the snapshot
When I press "Add submission" in the app
Then I set the field "Online text submissions" to "Submission test 1st attempt" in the app
And I press "Save" in the app
And I press "Submit assignment" in the app
And I press "OK" in the app
# Allow more attempts as a teacher
Given I entered the assign activity "assignment1" on course "Course 1" as "teacher1" in the app
When I press "Participants" in the app
And I press "Student student" in the app
And I press "Grade" in the app
And I press "Allow another attempt" in the app
And I press "Done" in the app
Then I should find "Reopened" in the app
And I should find "Not graded" in the app
# Submit second attempt as a student
Given I entered the assign activity "assignment1" on course "Course 1" as "student1" in the app
When I pull to refresh in the app
Then I should find "Reopened" in the app
And I should find "2 out of Unlimited" in the app
And I should find "Add a new attempt based on previous submission" in the app
And I should find "Add a new attempt" in the app
When I press "Add a new attempt based on previous submission" in the app
And I press "OK" in the app
Then I should find "Submission test 1st attempt" in the app
When I set the field "Online text submissions" to "Submission test 2nd attempt" in the app
And I press "Save" in the app
And I press "OK" in the app
And I press "Submit assignment" in the app
And I press "OK" in the app
# View second attempt as a teacher
Given I entered the assign activity "assignment1" on course "Course 1" as "teacher1" in the app
When I press "Participants" in the app
And I pull to refresh in the app
And I press "Student student" in the app
Then I should find "Online text submissions" in the app
And I should find "Submission test 2nd attempt" in the app
@lms_from4.5
Scenario: Remove submission (online text)
Given I entered the assign activity "assignment1" on course "Course 1" as "student1" in the app
And I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test" in the app
And I press "Save" in the app
When I press "Remove submission" in the app
And I press "DELETE" in the app
Then I should find "No attempt" in the app
Scenario: Add submission offline (online text) & Submit for grading offline & Sync submissions
Given I entered the course "Course 1" as "student1" in the app
And I press "assignment1" in the app
When I press "Add submission" in the app
And I switch network connection to offline
And I set the field "Online text submissions" to "Submission test" in the app
And I press "Save" in the app
And I press "Submit assignment" in the app
And I press "OK" in the app
Then I should find "This Assignment has offline data to be synchronised." in the app
When I switch network connection to wifi
And I go back in the app
And I press "assignment1" in the app
And I press "Information" in the app
And I press "Refresh" in the app
Then I should find "Submitted for grading" in the app
But I should not find "This Assignment has offline data to be synchronised." in the app
Scenario: Edit an offline submission before synchronising it
Given I entered the course "Course 1" as "student1" in the app
And I press "assignment1" in the app
When I press "Add submission" in the app
And I switch network connection to offline
And I set the field "Online text submissions" to "Submission test original offline" in the app
And I press "Save" in the app
Then I should find "This Assignment has offline data to be synchronised." in the app
And I should find "Submission test original offline" in the app
When I press "Edit submission" in the app
And I set the field "Online text submissions" to "Submission test edited offline" in the app
And I press "Save" in the app
Then I should find "This Assignment has offline data to be synchronised." in the app
And I should find "Submission test edited offline" in the app
But I should not find "Submission test original offline" in the app
When I press "Submit assignment" in the app
And I press "OK" in the app
Then I should find "This Assignment has offline data to be synchronised." in the app
When I switch network connection to wifi
And I go back in the app
And I press "assignment1" in the app
Then I should find "Submitted for grading" in the app
And I should find "Submission test edited offline" in the app
But I should not find "This Assignment has offline data to be synchronised." in the app
@lms_from4.5
Scenario: Remove submission offline and syncrhonize it
Given I entered the course "Course 1" as "student1" in the app
And I press "assignment1" in the app
When I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test" in the app
And I press "Save" in the app
Then I should find "Draft (not submitted)" in the app
# Remove submission added online.
When I switch network connection to offline
And I press "Remove submission" in the app
And I press "DELETE" in the app
Then I should find "No attempt" in the app
And I should find "This Assignment has offline data to be synchronised." in the app
# Synchronize submission removal.
When I switch network connection to wifi
And I press the back button in the app
And I press "assignment1" in the app
Then I should find "No attempt" in the app
But I should not find "This Assignment has offline data to be synchronised." in the app
# Remove submission added offline (while offline)
Given I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test offline" in the app
And I switch network connection to offline
And I press "Save" in the app
When I press "Remove submission" in the app
And I press "DELETE" in the app
Then I should find "No attempt" in the app
But I should not find "This Assignment has offline data to be synchronised." in the app
# Remove submission added offline (while online before synchronising)
Given I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test offline" in the app
And I switch network connection to offline
And I press "Save" in the app
And I switch network connection to wifi
When I press "Remove submission" in the app
And I press "DELETE" in the app
Then I should find "No attempt" in the app
But I should not find "This Assignment has offline data to be synchronised." in the app
@lms_from4.5
Scenario: Add submission offline after removing a submission offline
Given I entered the course "Course 1" as "student1" in the app
And I press "assignment1" in the app
When I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test online" in the app
And I press "Save" in the app
And I switch network connection to offline
And I press "Remove submission" in the app
And I press "DELETE" in the app
Then I should find "This Assignment has offline data to be synchronised." in the app
And I should find "No attempt" in the app
When I press "Add submission" in the app
And I set the field "Online text submissions" to "Submission test offline" in the app
And I press "Save" in the app
And I press "OK" in the app
Then I should find "This Assignment has offline data to be synchronised." in the app
And I should find "Submission test offline" in the app
When I switch network connection to wifi
And I go back in the app
And I press "assignment1" in the app
Then I should find "Submission test offline" in the app
But I should not find "This Assignment has offline data to be synchronised." in the app