MOBILE-4470 behat: Clean up tests before 4.1
parent
4cd4fa6fd6
commit
83e75e58dd
|
@ -1,93 +0,0 @@
|
||||||
@addon_block_timeline @app @javascript @lms_upto3.11
|
|
||||||
Feature: Timeline block.
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student1 |
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
| Course 2 | C2 |
|
|
||||||
| Course 3 | C3 |
|
|
||||||
| Course 4 | C4 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student1 | C2 | student |
|
|
||||||
| student1 | C3 | student |
|
|
||||||
| student1 | Acceptance test site | student |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | course | idnumber | name | duedate |
|
|
||||||
| assign | Acceptance test site | assign00 | Assignment 00 | ##tomorrow## |
|
|
||||||
| assign | C2 | assign01 | Assignment 01 | ##yesterday## |
|
|
||||||
| assign | C1 | assign02 | Assignment 02 | ##tomorrow## |
|
|
||||||
| assign | C1 | assign03 | Assignment 03 | ##tomorrow## |
|
|
||||||
| assign | C2 | assign04 | Assignment 04 | ##+2 days## |
|
|
||||||
| assign | C1 | assign05 | Assignment 05 | ##+5 days## |
|
|
||||||
| assign | C2 | assign06 | Assignment 06 | ##+31 days## |
|
|
||||||
| assign | C2 | assign07 | Assignment 07 | ##+31 days## |
|
|
||||||
| assign | C3 | assign08 | Assignment 08 | ##+31 days## |
|
|
||||||
| assign | C2 | assign09 | Assignment 09 | ##+31 days## |
|
|
||||||
| assign | C1 | assign10 | Assignment 10 | ##+31 days## |
|
|
||||||
| assign | C1 | assign11 | Assignment 11 | ##+6 months## |
|
|
||||||
| assign | C1 | assign12 | Assignment 12 | ##+6 months## |
|
|
||||||
| assign | C1 | assign13 | Assignment 13 | ##+6 months## |
|
|
||||||
| assign | C2 | assign14 | Assignment 14 | ##+6 months## |
|
|
||||||
| assign | C2 | assign15 | Assignment 15 | ##+6 months## |
|
|
||||||
| assign | C2 | assign16 | Assignment 16 | ##+6 months## |
|
|
||||||
| assign | C3 | assign17 | Assignment 17 | ##+6 months## |
|
|
||||||
| assign | C3 | assign18 | Assignment 18 | ##+6 months## |
|
|
||||||
| assign | C3 | assign19 | Assignment 19 | ##+6 months## |
|
|
||||||
| assign | C1 | assign20 | Assignment 20 | ##+1 year## |
|
|
||||||
| assign | C1 | assign21 | Assignment 21 | ##+1 year## |
|
|
||||||
| assign | C2 | assign22 | Assignment 22 | ##+1 year## |
|
|
||||||
| assign | C2 | assign23 | Assignment 23 | ##+1 year## |
|
|
||||||
| assign | C3 | assign24 | Assignment 24 | ##+1 year## |
|
|
||||||
| assign | C3 | assign25 | Assignment 25 | ##+1 year## |
|
|
||||||
|
|
||||||
Scenario: See courses inside block
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
And I press "Open block drawer" in the app
|
|
||||||
Then I should find "Assignment 00" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Assignment 02" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Assignment 05" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Course 1" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Course 2" within "Timeline" "ion-card" in the app
|
|
||||||
But I should not find "Assignment 01" within "Timeline" "ion-card" in the app
|
|
||||||
And I should not find "Course 3" within "Timeline" "ion-card" in the app
|
|
||||||
|
|
||||||
When I press "Filter timeline by date" in the app
|
|
||||||
And I press "Overdue" in the app
|
|
||||||
Then I should find "Assignment 01" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Course 2" within "Timeline" "ion-card" in the app
|
|
||||||
But I should not find "Assignment 00" within "Timeline" "ion-card" in the app
|
|
||||||
And I should not find "Assignment 02" within "Timeline" "ion-card" in the app
|
|
||||||
And I should not find "Course 1" within "Timeline" "ion-card" in the app
|
|
||||||
And I should not find "Course 3" within "Timeline" "ion-card" in the app
|
|
||||||
|
|
||||||
When I press "Filter timeline by date" in the app
|
|
||||||
And I press "All" in the app
|
|
||||||
Then I should find "Assignment 19" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Course 3" within "Timeline" "ion-card" in the app
|
|
||||||
But I should not find "Assignment 20" within "Timeline" "ion-card" in the app
|
|
||||||
|
|
||||||
When I press "Load more" in the app
|
|
||||||
Then I should find "Assignment 21" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Assignment 25" within "Timeline" "ion-card" in the app
|
|
||||||
|
|
||||||
When I press "Filter timeline by date" in the app
|
|
||||||
And I press "Next 7 days" in the app
|
|
||||||
And I press "Sort by" in the app
|
|
||||||
And I press "Sort by courses" in the app
|
|
||||||
Then I should find "Course 1" "h3" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Course 2" "h3" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Assignment 02" within "Timeline" "ion-card" in the app
|
|
||||||
And I should find "Assignment 04" within "Timeline" "ion-card" in the app
|
|
||||||
But I should not find "Course 3" within "Timeline" "ion-card" in the app
|
|
||||||
|
|
||||||
When the following "activities" exist:
|
|
||||||
| activity | course | idnumber | name | duedate |
|
|
||||||
| assign | C1 | newassign | New Assignment | ##tomorrow## |
|
|
||||||
And I pull to refresh in the app
|
|
||||||
Then I should find "New Assignment" in the app
|
|
|
@ -46,7 +46,6 @@ Feature: Timeline block.
|
||||||
| assign | C3 | assign24 | Assignment 24 | ##+1 year## |
|
| assign | C3 | assign24 | Assignment 24 | ##+1 year## |
|
||||||
| assign | C3 | assign25 | Assignment 25 | ##+1 year## |
|
| assign | C3 | assign25 | Assignment 25 | ##+1 year## |
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: See courses inside block
|
Scenario: See courses inside block
|
||||||
Given I entered the app as "student1"
|
Given I entered the app as "student1"
|
||||||
Then I should find "Assignment 00" within "Timeline" "ion-card" in the app
|
Then I should find "Assignment 00" within "Timeline" "ion-card" in the app
|
||||||
|
@ -92,7 +91,6 @@ Feature: Timeline block.
|
||||||
And I pull to refresh in the app
|
And I pull to refresh in the app
|
||||||
Then I should find "New Assignment" in the app
|
Then I should find "New Assignment" in the app
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Search
|
Scenario: Search
|
||||||
Given I entered the app as "student1"
|
Given I entered the app as "student1"
|
||||||
Then I should find "Assignment 00" within "Timeline" "ion-card" in the app
|
Then I should find "Assignment 00" within "Timeline" "ion-card" in the app
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_competency @app @javascript @lms_from3.11
|
@addon_competency @app @javascript
|
||||||
Feature: Test competency navigation
|
Feature: Test competency navigation
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,78 +0,0 @@
|
||||||
@addon_coursecompletion @app @javascript @lms_upto3.11
|
|
||||||
Feature: Course completion navigation
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "users" exist:
|
|
||||||
| username | firstname | lastname | email | idnumber |
|
|
||||||
| teacher1 | Teacher | 1 | teacher1@example.com | T1 |
|
|
||||||
| student1 | Student | 1 | student1@example.com | S1 |
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname | category | enablecompletion | showcompletionconditions |
|
|
||||||
| Course 1 | C1 | 0 | 1 | 1 |
|
|
||||||
| Course 2 | C2 | 0 | | |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| teacher1 | C1 | editingteacher |
|
|
||||||
| teacher1 | C2 | editingteacher |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student1 | C2 | student |
|
|
||||||
And the following "activity" exists:
|
|
||||||
| activity | assign |
|
|
||||||
| course | C1 |
|
|
||||||
| name | Test assignment name |
|
|
||||||
| assignsubmission_onlinetext_enabled | 1 |
|
|
||||||
| grade[modgrade_type] | Point |
|
|
||||||
| grade[modgrade_point] | 100 |
|
|
||||||
| gradepass | 70 |
|
|
||||||
| completion | 2 |
|
|
||||||
| completionusegrade | 1 |
|
|
||||||
| completionpassgrade | 1 |
|
|
||||||
And the following "activity" exists:
|
|
||||||
| activity | page |
|
|
||||||
| course | C2 |
|
|
||||||
| name | P1 |
|
|
||||||
And the following "blocks" exist:
|
|
||||||
| blockname | contextlevel | reference |
|
|
||||||
| completionstatus | Course | C1 |
|
|
||||||
| selfcompletion | Course | C1 |
|
|
||||||
| activity_modules | Course | C1 |
|
|
||||||
| completionstatus | Course | C2 |
|
|
||||||
| selfcompletion | Course | C2 |
|
|
||||||
| activity_modules | Course | C2 |
|
|
||||||
And the following config values are set as admin:
|
|
||||||
| enablecompletion | 1 |
|
|
||||||
And I am on the "Course 1" course page logged in as teacher1
|
|
||||||
And I navigate to "Course completion" in current page administration
|
|
||||||
And I click on "Condition: Activity completion" "link"
|
|
||||||
And I set the field "Assignment - Test assignment name" to "1"
|
|
||||||
And I expand all fieldsets
|
|
||||||
And I set the following fields to these values:
|
|
||||||
| id_criteria_self | 1 |
|
|
||||||
And I press "Save changes"
|
|
||||||
|
|
||||||
Scenario: Completion is available only when enabled for the course
|
|
||||||
Given I entered the course "Course 1" as "student1" in the app
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
Then I should find "Course completion status" in the app
|
|
||||||
And I should find "Self completion" in the app
|
|
||||||
When I press "Close" in the app
|
|
||||||
And I press "Completion" in the app
|
|
||||||
Then I should find "Status" in the app
|
|
||||||
|
|
||||||
Given I entered the course "Course 2" as "student1" in the app
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
Then I should not find "Course completion status" in the app
|
|
||||||
And I should not find "Self completion" in the app
|
|
||||||
When I press "Close" in the app
|
|
||||||
Then I should not find "Completion" in the app
|
|
||||||
|
|
||||||
Given the following config values are set as admin:
|
|
||||||
| enablecompletion | 0 |
|
|
||||||
Then I entered the course "Course 1" as "student1" in the app
|
|
||||||
And I pull to refresh in the app
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
Then I should not find "Course completion status" in the app
|
|
||||||
And I should not find "Self completion" in the app
|
|
||||||
When I press "Close" in the app
|
|
||||||
Then I should not find "Completion" in the app
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_coursecompletion @app @javascript @lms_from4.0
|
@addon_coursecompletion @app @javascript
|
||||||
Feature: Course completion navigation
|
Feature: Course completion navigation
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
@addon_mod_assign @app @javascript @lms_upto3.10
|
|
||||||
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 |
|
|
||||||
| assign | C1 | assign1 | assignment1 | Test assignment description1 | 1 | ## 20 August 2002 12:00 PM ## | manual |
|
|
||||||
|
|
||||||
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 date" in the app
|
|
||||||
And I should find "Tuesday, 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" near "assignment1" in the app
|
|
||||||
Then I should find "Online text submissions" in the app
|
|
||||||
And I should find "Submission test edited" in the app
|
|
|
@ -19,7 +19,6 @@ Feature: Test basic usage of assignment activity in app
|
||||||
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | attemptreopenmethod |
|
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | attemptreopenmethod |
|
||||||
| assign | C1 | assign1 | assignment1 | Test assignment description1 | 1 | ## 20 August 2002 12:00 PM ## | manual |
|
| assign | C1 | assign1 | assignment1 | Test assignment description1 | 1 | ## 20 August 2002 12:00 PM ## | manual |
|
||||||
|
|
||||||
@lms_from3.11
|
|
||||||
Scenario: View assign description, due date & View list of student submissions (as teacher) & View own submission or student submission
|
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
|
# Create, edit and submit as a student
|
||||||
Given I entered the assign activity "assignment1" on course "Course 1" as "student1" in the app
|
Given I entered the assign activity "assignment1" on course "Course 1" as "student1" in the app
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_assign @app @javascript @lms_from4.0
|
@addon_mod_assign @app @javascript
|
||||||
Feature: Test marking workflow in assignment activity in app
|
Feature: Test marking workflow in assignment activity in app
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_bigbluebuttonbn @mod_bigbluebuttonbn @app @javascript @lms_from4.0
|
@addon_mod_bigbluebuttonbn @mod_bigbluebuttonbn @app @javascript
|
||||||
Feature: Test basic usage of BBB activity in app
|
Feature: Test basic usage of BBB activity in app
|
||||||
In order to join a BBB meeting while using the mobile app
|
In order to join a BBB meeting while using the mobile app
|
||||||
As a student
|
As a student
|
||||||
|
@ -97,7 +97,6 @@ Feature: Test basic usage of BBB activity in app
|
||||||
And I press "Join session" in the app
|
And I press "Join session" in the app
|
||||||
Then the app should have opened a browser tab with url "blindsidenetworks.com"
|
Then the app should have opened a browser tab with url "blindsidenetworks.com"
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Display right info based on instance type
|
Scenario: Display right info based on instance type
|
||||||
Given the following "activities" exist:
|
Given the following "activities" exist:
|
||||||
| activity | name | course | idnumber | type |
|
| activity | name | course | idnumber | type |
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_bigbluebuttonbn @mod_bigbluebuttonbn @app @javascript @lms_from4.0
|
@addon_mod_bigbluebuttonbn @mod_bigbluebuttonbn @app @javascript
|
||||||
Feature: Test usage of BBB activity with groups in app
|
Feature: Test usage of BBB activity with groups in app
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,94 +0,0 @@
|
||||||
@addon_mod_chat @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test basic usage of chat in app
|
|
||||||
As a student
|
|
||||||
I need basic chat functionality to work
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
And the following "users" exist:
|
|
||||||
| username | firstname | lastname |
|
|
||||||
| student1 | david | student |
|
|
||||||
| student2 | pau | student2 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student2 | C1 | student |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber | groupmode |
|
|
||||||
| chat | Test chat name | Test chat | C1 | chat | 0 |
|
|
||||||
|
|
||||||
Scenario: Receive and send messages & See connected users, beep and talk to
|
|
||||||
# Send messages as student1
|
|
||||||
Given I entered the chat activity "Test chat name" on course "Course 1" as "student1" in the app
|
|
||||||
Then I should find "Enter the chat" in the app
|
|
||||||
And I should find "Past sessions" in the app
|
|
||||||
|
|
||||||
When I press "Enter the chat" in the app
|
|
||||||
And I set the field "New message" to "Hi!" in the app
|
|
||||||
And I press "Send" in the app
|
|
||||||
Then I should find "Hi!" in the app
|
|
||||||
|
|
||||||
When I set the field "New message" to "I am David" in the app
|
|
||||||
And I press "Send" in the app
|
|
||||||
Then I should find "Hi!" in the app
|
|
||||||
And I should find "I am David" in the app
|
|
||||||
# Confirm leave the page
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
|
|
||||||
# Read messages, view connected users, send beep and reply as student2
|
|
||||||
Given I entered the chat activity "Test chat name" on course "Course 1" as "student2" in the app
|
|
||||||
And I press "Enter the chat" in the app
|
|
||||||
Then I should find "Hi!" in the app
|
|
||||||
And I should find "I am David" in the app
|
|
||||||
|
|
||||||
When I press "Users" in the app
|
|
||||||
Then I should find "david student" in the app
|
|
||||||
|
|
||||||
When I press "Beep" in the app
|
|
||||||
Then I should find "You beeped david student" in the app
|
|
||||||
|
|
||||||
When I set the field "New message" to "Hi David, I am Pau." in the app
|
|
||||||
And I press "Send" in the app
|
|
||||||
Then I should find "Hi David, I am Pau." in the app
|
|
||||||
And the following events should have been logged for "student1" in the app:
|
|
||||||
| name | activity | activityname | course |
|
|
||||||
| \mod_chat\event\course_module_viewed | chat | Test chat name | Course 1 |
|
|
||||||
| \mod_chat\event\message_sent | chat | Test chat name | Course 1 |
|
|
||||||
And the following events should have been logged for "student2" in the app:
|
|
||||||
| name | activity | activityname | course |
|
|
||||||
| \mod_chat\event\course_module_viewed | chat | Test chat name | Course 1 |
|
|
||||||
| \mod_chat\event\message_sent | chat | Test chat name | Course 1 |
|
|
||||||
|
|
||||||
Scenario: Past sessions shown
|
|
||||||
# Send messages as student1
|
|
||||||
Given I entered the chat activity "Test chat name" on course "Course 1" as "student1" in the app
|
|
||||||
When I press "Enter the chat" in the app
|
|
||||||
And I set the field "New message" to "Hi!" in the app
|
|
||||||
And I press "Send" in the app
|
|
||||||
Then I should find "Hi!" in the app
|
|
||||||
|
|
||||||
When I set the field "New message" to "I am David" in the app
|
|
||||||
And I press "Send" in the app
|
|
||||||
Then I should find "I am David" in the app
|
|
||||||
# Confirm leave the page
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
|
|
||||||
# Read messages from past sessions as student2
|
|
||||||
Given I entered the chat activity "Test chat name" on course "Course 1" as "student2" in the app
|
|
||||||
When I press "Past sessions" in the app
|
|
||||||
And I press "Show incomplete sessions" in the app
|
|
||||||
And I press "david student" near "(2)" in the app
|
|
||||||
Then I should find "Hi!" in the app
|
|
||||||
And I should find "I am David" in the app
|
|
||||||
|
|
||||||
Scenario: Prefetch chat
|
|
||||||
# Only check that the chat is marked as downloaded to test that lazy handler is working.
|
|
||||||
Given I entered the course "Course 1" as "student1" in the app
|
|
||||||
When I press "Course downloads" in the app
|
|
||||||
And I press "Download" within "Test chat name" "ion-item" in the app
|
|
||||||
Then I should not be able to press "Download" within "Test chat name" "ion-item" in the app
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_chat @app @javascript @lms_from4.0
|
@addon_mod_chat @app @javascript
|
||||||
Feature: Test basic usage of chat in app
|
Feature: Test basic usage of chat in app
|
||||||
As a student
|
As a student
|
||||||
I need basic chat functionality to work
|
I need basic chat functionality to work
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
@addon_mod_chat @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test chat navigation
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
And the following "users" exist:
|
|
||||||
| username | firstname | lastname |
|
|
||||||
| student1 | Student | first |
|
|
||||||
| student2 | Student | second |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student2 | C1 | student |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber | groupmode |
|
|
||||||
| chat | Test chat name | Test chat | C1 | chat | 0 |
|
|
||||||
# Create sessions
|
|
||||||
# TODO use generator instead
|
|
||||||
And I entered the chat activity "Test chat name" on course "Course 1" as "student1" in the app
|
|
||||||
And I press "Enter the chat" in the app
|
|
||||||
And I set the field "New message" to "Test message" in the app
|
|
||||||
And I press "Send" in the app
|
|
||||||
Then I should find "Test message" in the app
|
|
||||||
# Confirm leave the page
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
|
|
||||||
Scenario: Tablet navigation on chat
|
|
||||||
Given I entered the course "Course 1" as "student2" in the app
|
|
||||||
And I change viewport size to "1200x640" in the app
|
|
||||||
|
|
||||||
# Sessions
|
|
||||||
When I press "Test chat name" in the app
|
|
||||||
And I press "Past sessions" in the app
|
|
||||||
Then I should find "No sessions found" in the app
|
|
||||||
|
|
||||||
# Sessions — split view
|
|
||||||
When I press "Show incomplete sessions" in the app
|
|
||||||
Then "Student first" should be selected in the app
|
|
||||||
And I should find "Test message" in the app
|
|
||||||
|
|
||||||
When I press "Show incomplete sessions" in the app
|
|
||||||
Then I should not find "Student first" in the app
|
|
||||||
And I should not find "Test message" in the app
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_chat @app @javascript @lms_from4.0
|
@addon_mod_chat @app @javascript
|
||||||
Feature: Test chat navigation
|
Feature: Test chat navigation
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
@addon_mod_choice @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test basic usage of choice activity in app
|
|
||||||
In order to participate in the choice while using the mobile app
|
|
||||||
As a student
|
|
||||||
I need basic choice 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 |
|
|
||||||
|
|
||||||
Scenario: Download students choice in text format
|
|
||||||
# Submit answer as student
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber | option |
|
|
||||||
| choice | Choice name | Test choice description | C1 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
And I entered the choice activity "Choice name" on course "Course 1" as "student1" in the app
|
|
||||||
Then I select "Option 2" in the app
|
|
||||||
And I press "Save my choice" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
|
|
||||||
# Download answers as teacher
|
|
||||||
Given I entered the choice activity "Choice name" on course "Course 1" as "teacher1" in the app
|
|
||||||
Then I should find "Test choice description" in the app
|
|
||||||
|
|
||||||
When I open a browser tab with url "$WWWROOT"
|
|
||||||
And I am on the "choice1" Activity page logged in as teacher1
|
|
||||||
And I press "Actions menu"
|
|
||||||
And I follow "View 1 responses"
|
|
||||||
And I press "Download in text format"
|
|
||||||
# TODO Then I should find "..." in the downloads folder
|
|
|
@ -165,7 +165,6 @@ Feature: Test basic usage of choice activity in app
|
||||||
But I should not find "This Choice has offline data to be synchronised." in the app
|
But I should not find "This Choice has offline data to be synchronised." in the app
|
||||||
|
|
||||||
# TODO remove LMS UI steps in app tests
|
# TODO remove LMS UI steps in app tests
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Download students choice in text format
|
Scenario: Download students choice in text format
|
||||||
# Submit answer as student
|
# Submit answer as student
|
||||||
Given the following "activities" exist:
|
Given the following "activities" exist:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_data @app @javascript @lms_from3.11
|
@addon_mod_data @app @javascript
|
||||||
Feature: Users can manage entries in database activities
|
Feature: Users can manage entries in database activities
|
||||||
In order to populate databases
|
In order to populate databases
|
||||||
As a user
|
As a user
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_data @app @javascript @lms_from3.11
|
@addon_mod_data @app @javascript
|
||||||
Feature: Users can store entries in database activities when offline and sync when online
|
Feature: Users can store entries in database activities when offline and sync when online
|
||||||
In order to populate databases while offline
|
In order to populate databases while offline
|
||||||
As a user
|
As a user
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_feedback @app @javascript @lms_from3.11
|
@addon_mod_feedback @app @javascript
|
||||||
Feature: Test feedback navigation
|
Feature: Test feedback navigation
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -34,7 +34,6 @@ Feature: Test usage of forum activity with groups in app
|
||||||
| forum2 | Disc vis G2 | Disc vis G2 | Disc vis G2 content | G2 |
|
| forum2 | Disc vis G2 | Disc vis G2 | Disc vis G2 content | G2 |
|
||||||
| forum2 | Disc vis ALL | Disc vis ALL | Disc vis ALL content | All participants |
|
| forum2 | Disc vis ALL | Disc vis ALL | Disc vis ALL content | All participants |
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Student can only see the right groups
|
Scenario: Student can only see the right groups
|
||||||
Given I entered the forum activity "Separate groups forum" on course "Course 1" as "student1" in the app
|
Given I entered the forum activity "Separate groups forum" on course "Course 1" as "student1" in the app
|
||||||
Then I should find "Disc sep G1" in the app
|
Then I should find "Disc sep G1" in the app
|
||||||
|
@ -65,7 +64,6 @@ Feature: Test usage of forum activity with groups in app
|
||||||
And I should find "Disc vis ALL" in the app
|
And I should find "Disc vis ALL" in the app
|
||||||
But I should not find "Disc vis G2" in the app
|
But I should not find "Disc vis G2" in the app
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Teacher can see all groups
|
Scenario: Teacher can see all groups
|
||||||
Given I entered the forum activity "Separate groups forum" on course "Course 1" as "teacher1" in the app
|
Given I entered the forum activity "Separate groups forum" on course "Course 1" as "teacher1" in the app
|
||||||
When I press "Separate groups" in the app
|
When I press "Separate groups" in the app
|
||||||
|
|
|
@ -158,7 +158,6 @@ Feature: Test basic usage of glossary in app
|
||||||
Then I should find "Garlic" in the app
|
Then I should find "Garlic" in the app
|
||||||
And I should find "Allium sativum" in the app
|
And I should find "Allium sativum" in the app
|
||||||
|
|
||||||
@lms_from3.10
|
|
||||||
Scenario: Edit entries
|
Scenario: Edit entries
|
||||||
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
||||||
|
|
||||||
|
@ -275,7 +274,6 @@ Feature: Test basic usage of glossary in app
|
||||||
But I should not find "stub2.txt" in the app
|
But I should not find "stub2.txt" in the app
|
||||||
And I should not find "Brassica oleracea var. italica" in the app
|
And I should not find "Brassica oleracea var. italica" in the app
|
||||||
|
|
||||||
@lms_from3.10
|
|
||||||
Scenario: Delete entries
|
Scenario: Delete entries
|
||||||
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
||||||
|
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
@addon_mod_lesson @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test decimal separators in lesson
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And 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 | name | intro | course | idnumber | modattempts | review | maxattempts | retake | allowofflineattempts |
|
|
||||||
| lesson | Basic lesson | Basic lesson descr | C1 | lesson | 1 | 1 | 9 | 1 | 0 |
|
|
||||||
| lesson | Offline lesson | Offline lesson descr | C1 | lesson | 1 | 1 | 9 | 1 | 1 |
|
|
||||||
# Currently there are no generators for pages. See MDL-77581.
|
|
||||||
And I log in as "teacher1"
|
|
||||||
And I change window size to "small"
|
|
||||||
And I am on "Course 1" course homepage
|
|
||||||
And I follow "Basic lesson"
|
|
||||||
And I follow "Add a question page"
|
|
||||||
And I set the field "Select a question type" to "Numerical"
|
|
||||||
And I press "Add a question page"
|
|
||||||
And I set the following fields to these values:
|
|
||||||
| Page title | Hardest question ever |
|
|
||||||
| Page contents | 1 + 1.87? |
|
|
||||||
| id_answer_editor_0 | 2.87 |
|
|
||||||
| id_response_editor_0 | Correct answer |
|
|
||||||
| id_jumpto_0 | End of lesson |
|
|
||||||
| id_score_0 | 1 |
|
|
||||||
| id_answer_editor_1 | 2.1:2.8 |
|
|
||||||
| id_response_editor_1 | Incorrect answer |
|
|
||||||
| id_jumpto_1 | This page |
|
|
||||||
| id_score_1 | 0 |
|
|
||||||
And I press "Save page"
|
|
||||||
And I am on "Course 1" course homepage
|
|
||||||
And I follow "Offline lesson"
|
|
||||||
And I follow "Add a question page"
|
|
||||||
And I set the field "Select a question type" to "Numerical"
|
|
||||||
And I press "Add a question page"
|
|
||||||
And I set the following fields to these values:
|
|
||||||
| Page title | Hardest question ever |
|
|
||||||
| Page contents | 1 + 1.87? |
|
|
||||||
| id_answer_editor_0 | 2.87 |
|
|
||||||
| id_response_editor_0 | Correct answer |
|
|
||||||
| id_jumpto_0 | End of lesson |
|
|
||||||
| id_score_0 | 1 |
|
|
||||||
| id_answer_editor_1 | 2.1:2.8 |
|
|
||||||
| id_response_editor_1 | Incorrect answer |
|
|
||||||
| id_jumpto_1 | This page |
|
|
||||||
| id_score_1 | 0 |
|
|
||||||
And I press "Save page"
|
|
||||||
And I log out
|
|
||||||
|
|
||||||
# This scenario needs to be duplicated because of MDL-77550
|
|
||||||
Scenario: Attempt an online lesson successfully as a student (custom separator) and review as teacher
|
|
||||||
Given the following "language customisations" exist:
|
|
||||||
| component | stringid | value |
|
|
||||||
| core_langconfig | decsep | , |
|
|
||||||
And the following config values are set as admin:
|
|
||||||
| customlangstrings | "core.decsep|,|en" | tool_mobile |
|
|
||||||
And I entered the course "Course 1" as "student1" in the app
|
|
||||||
And I press "Basic lesson" in the app
|
|
||||||
When I press "Start" in the app
|
|
||||||
Then I should find "1 + 1.87?" in the app
|
|
||||||
|
|
||||||
When I set the field "Your answer" to "2,87" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Correct answer" in the app
|
|
||||||
And I should find "2.87" in the app
|
|
||||||
And I should not find "Incorrect answer" in the app
|
|
||||||
|
|
||||||
When I press "Continue" in the app
|
|
||||||
Then I should find "Congratulations - end of lesson reached" in the app
|
|
||||||
And I should find "Your score is 1 (out of 1)." in the app
|
|
||||||
|
|
||||||
When I press "Review lesson" in the app
|
|
||||||
Then the field "Your answer" matches value "2,87" in the app
|
|
||||||
|
|
||||||
When I press the back button in the app
|
|
||||||
And I press "Start" in the app
|
|
||||||
And I set the field "Your answer" to "2.87" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Correct answer" in the app
|
|
||||||
And I should find "2.87" in the app
|
|
||||||
And I should not find "Incorrect answer" in the app
|
|
||||||
|
|
||||||
When I press "Continue" in the app
|
|
||||||
Then I should find "Congratulations - end of lesson reached" in the app
|
|
||||||
And I should find "Your score is 1 (out of 1)." in the app
|
|
||||||
|
|
||||||
When I press "Review lesson" in the app
|
|
||||||
Then the field "Your answer" matches value "2,87" in the app
|
|
|
@ -78,7 +78,6 @@ Feature: Test decimal separators in lesson
|
||||||
Then I should find "Congratulations - end of lesson reached" in the app
|
Then I should find "Congratulations - end of lesson reached" in the app
|
||||||
And I should find "Your score is 1 (out of 1)." in the app
|
And I should find "Your score is 1 (out of 1)." in the app
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Attempt an online lesson successfully as a student (custom separator) and review as teacher
|
Scenario: Attempt an online lesson successfully as a student (custom separator) and review as teacher
|
||||||
Given the following "language customisations" exist:
|
Given the following "language customisations" exist:
|
||||||
| component | stringid | value |
|
| component | stringid | value |
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_quiz @app @javascript @lms_from3.11
|
@addon_mod_quiz @app @javascript
|
||||||
Feature: View list of attempts in the app
|
Feature: View list of attempts in the app
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_quiz @app @javascript @lms_from4.0 @lms_upto4.3
|
@addon_mod_quiz @app @javascript @lms_upto4.3
|
||||||
Feature: Attempt a quiz in app
|
Feature: Attempt a quiz in app
|
||||||
As a student
|
As a student
|
||||||
In order to demonstrate what I know
|
In order to demonstrate what I know
|
||||||
|
|
|
@ -1,211 +0,0 @@
|
||||||
@addon_mod_quiz @app @javascript @lms_from3.11 @lms_upto3.11
|
|
||||||
Feature: Attempt a quiz in app
|
|
||||||
As a student
|
|
||||||
In order to demonstrate what I know
|
|
||||||
I need to be able to attempt quizzes
|
|
||||||
|
|
||||||
# These scenarios are duplicated from main because the manual quiz setup is not
|
|
||||||
# equivalent before 4.0.
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
And the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student1 |
|
|
||||||
| teacher1 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| teacher1 | C1 | editingteacher |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber |
|
|
||||||
| quiz | Quiz 1 | Quiz 1 description | C1 | quiz1 |
|
|
||||||
And the following "question categories" exist:
|
|
||||||
| contextlevel | reference | name |
|
|
||||||
| Course | C1 | Test questions |
|
|
||||||
And the following "questions" exist:
|
|
||||||
| questioncategory | qtype | name | questiontext |
|
|
||||||
| Test questions | truefalse | TF1 | Text of the first question |
|
|
||||||
| Test questions | truefalse | TF2 | Text of the second question |
|
|
||||||
And quiz "Quiz 1" contains the following questions:
|
|
||||||
| question | page |
|
|
||||||
| TF1 | 1 |
|
|
||||||
| TF2 | 2 |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber |
|
|
||||||
| quiz | Quiz 2 | Quiz 2 description | C1 | quiz2 |
|
|
||||||
And the following "question categories" exist:
|
|
||||||
| contextlevel | reference | name |
|
|
||||||
| Course | C1 | Test questions 2 |
|
|
||||||
And the following "questions" exist:
|
|
||||||
| questioncategory | qtype | name | questiontext |
|
|
||||||
| Test questions | multichoice | TF3 | Text of the first question |
|
|
||||||
| Test questions | shortanswer | TF4 | Text of the second question |
|
|
||||||
| Test questions | numerical | TF5 | Text of the third question |
|
|
||||||
| Test questions | essay | TF6 | Text of the fourth question |
|
|
||||||
| Test questions | ddwtos | TF7 | The [[1]] brown [[2]] jumped over the [[3]] dog. |
|
|
||||||
| Test questions | truefalse | TF8 | Text of the sixth question |
|
|
||||||
| Test questions | match | TF9 | Text of the seventh question |
|
|
||||||
| Test questions | description | TF10 | Text of the eighth question |
|
|
||||||
# TODO test calculated question type.
|
|
||||||
# The calculatedsimple type is implemented using the calculated type.
|
|
||||||
# The calculatedmulti type is implemented using the multichoice type.
|
|
||||||
# The randomsamatch type is implemented using the match type.
|
|
||||||
And the following "questions" exist:
|
|
||||||
| questioncategory | qtype | name | template |
|
|
||||||
| Test questions | gapselect | TF11 | missingchoiceno |
|
|
||||||
| Test questions | ddimageortext | TF12 | xsection |
|
|
||||||
| Test questions | ddmarker | TF13 | mkmap |
|
|
||||||
And quiz "Quiz 2" contains the following questions:
|
|
||||||
| question | page |
|
|
||||||
| TF3 | 1 |
|
|
||||||
| TF4 | 2 |
|
|
||||||
| TF5 | 3 |
|
|
||||||
| TF6 | 4 |
|
|
||||||
| TF7 | 5 |
|
|
||||||
| TF8 | 6 |
|
|
||||||
| TF9 | 7 |
|
|
||||||
| TF10 | 8 |
|
|
||||||
| TF11 | 9 |
|
|
||||||
| TF12 | 10 |
|
|
||||||
| TF13 | 11 |
|
|
||||||
|
|
||||||
# TODO rewrite using generators.
|
|
||||||
And I am on the "Course 1" "core_question > course question bank" page logged in as teacher1
|
|
||||||
And I add a "Embedded answers (Cloze)" question filling the form with:
|
|
||||||
| Question name | multianswer |
|
|
||||||
| Question text | {1:SHORTANSWER:=Berlin} is the capital of Germany. |
|
|
||||||
| General feedback | The capital of Germany is Berlin. |
|
|
||||||
And I am on the "quiz2" "Activity" page
|
|
||||||
And I click on "Actions menu" "link"
|
|
||||||
And I click on "Edit quiz" "link"
|
|
||||||
And I click on "Add" "link"
|
|
||||||
And I click on "from question bank" "link"
|
|
||||||
And I set the field with xpath "//tr[contains(normalize-space(.), 'multianswer')]//input[@type='checkbox']" to "1"
|
|
||||||
And I click on "Add selected questions to the quiz" "button"
|
|
||||||
And I log out
|
|
||||||
|
|
||||||
Scenario: View a quiz entry page (attempts, status, etc.)
|
|
||||||
Given I entered the quiz activity "Quiz 1" on course "Course 1" as "student1" in the app
|
|
||||||
When I press "Attempt quiz now" in the app
|
|
||||||
Then I should find "Text of the first question" in the app
|
|
||||||
But I should not find "Text of the second question" in the app
|
|
||||||
|
|
||||||
When I press "Next" in the app
|
|
||||||
Then I should find "Text of the second question" in the app
|
|
||||||
But I should not find "Text of the first question" in the app
|
|
||||||
|
|
||||||
When I press "Previous" in the app
|
|
||||||
Then I should find "Text of the first question" in the app
|
|
||||||
But I should not find "Text of the second question" in the app
|
|
||||||
|
|
||||||
When I press "Next" in the app
|
|
||||||
Then I should find "Text of the second question" in the app
|
|
||||||
But I should not find "Text of the first question" in the app
|
|
||||||
|
|
||||||
When I press "Previous" in the app
|
|
||||||
Then I should find "Text of the first question" in the app
|
|
||||||
But I should not find "Text of the second question" in the app
|
|
||||||
|
|
||||||
When I press "Next" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Summary of attempt" in the app
|
|
||||||
|
|
||||||
When I press "Not yet answered" within "2" "ion-item" in the app
|
|
||||||
Then I should find "Text of the second question" in the app
|
|
||||||
But I should not find "Text of the first question" in the app
|
|
||||||
|
|
||||||
When I press "Submit" in the app
|
|
||||||
And I press "Submit all and finish" in the app
|
|
||||||
Then I should find "Once you submit" in the app
|
|
||||||
|
|
||||||
When I press "Cancel" near "Once you submit" in the app
|
|
||||||
Then I should find "Summary of attempt" in the app
|
|
||||||
|
|
||||||
When I press "Submit all and finish" in the app
|
|
||||||
And I press "Submit" near "Once you submit" in the app
|
|
||||||
Then I should find "Review" in the app
|
|
||||||
And I should find "Started" in the app
|
|
||||||
And I should find "Status" in the app
|
|
||||||
And I should find "Completed" in the app
|
|
||||||
And I should find "Duration" in the app
|
|
||||||
And I should find "Marks" in the app
|
|
||||||
And I should find "Grade" in the app
|
|
||||||
And I should find "Question 1" in the app
|
|
||||||
And I should find "Question 2" in the app
|
|
||||||
|
|
||||||
Scenario: Attempt a quiz (all question types)
|
|
||||||
Given I entered the quiz activity "Quiz 2" on course "Course 1" as "student1" in the app
|
|
||||||
When I press "Attempt quiz now" in the app
|
|
||||||
And I press "Four" in the app
|
|
||||||
And I press "Three" in the app
|
|
||||||
And I set the field "Answer" to "Berlin" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "Answer" to "testing" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "Answer" to "5" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "Answer" to "Testing an essay" in the app
|
|
||||||
And I press "Next" "ion-button" in the app
|
|
||||||
And I press "quick" ".drag" in the app
|
|
||||||
And I click on ".place1.drop" "css"
|
|
||||||
And I press "fox" ".drag" in the app
|
|
||||||
And I click on ".place2.drop" "css"
|
|
||||||
And I press "lazy" ".drag" in the app
|
|
||||||
And I click on ".place3.drop" "css"
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "True" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "frog" to "amphibian" in the app
|
|
||||||
And I set the field "newt" to "insect" in the app
|
|
||||||
And I set the field "cat" to "mammal" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
Then I should find "Text of the eighth question" in the app
|
|
||||||
|
|
||||||
When I press "Next" in the app
|
|
||||||
And I set the field "Blank 1" to "cat" in the app
|
|
||||||
And I set the field "Blank 2" to "mat" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "abyssal" ".drag" in the app
|
|
||||||
And I click on ".place6.dropzone" "css"
|
|
||||||
And I press "trench" ".drag" in the app
|
|
||||||
And I click on ".place3.dropzone" "css"
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "Railway station" ".marker" in the app
|
|
||||||
And I click on "img.dropbackground" "css"
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Answer saved" in the app
|
|
||||||
And I should find "Incomplete answer" within "10" "ion-item" in the app
|
|
||||||
But I should not find "Not yet answered" in the app
|
|
||||||
|
|
||||||
When I press "Submit all and finish" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Review" in the app
|
|
||||||
And I should find "Finished" in the app
|
|
||||||
And I should find "Not yet graded" in the app
|
|
||||||
|
|
||||||
When I press "Correct" within "Question 2" "ion-card" in the app
|
|
||||||
Then I should find "The correct answer is: Berlin" in the app
|
|
||||||
And I should find "Mark 1.00 out of 1.00" in the app
|
|
||||||
|
|
||||||
Scenario: Submit a quiz & Review a quiz attempt
|
|
||||||
Given I entered the quiz activity "Quiz 1" on course "Course 1" as "student1" in the app
|
|
||||||
When I press "Attempt quiz now" in the app
|
|
||||||
Then I should find "Text of the first question" in the app
|
|
||||||
|
|
||||||
When I press "True" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "False" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "Submit all and finish" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Review" in the app
|
|
||||||
|
|
||||||
Given I open a browser tab with url "$WWWROOT"
|
|
||||||
When I am on the "quiz1" Activity page logged in as teacher1
|
|
||||||
And I follow "Attempts: 1"
|
|
||||||
And I follow "Review attempt"
|
|
||||||
Then I should see "Finished"
|
|
||||||
And I should see "1.00/2.00"
|
|
|
@ -1,116 +0,0 @@
|
||||||
@addon_mod_quiz @app @javascript @lms_upto3.9
|
|
||||||
Feature: Attempt a quiz in app
|
|
||||||
As a student
|
|
||||||
In order to demonstrate what I know
|
|
||||||
I need to be able to attempt quizzes
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
And the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student1 |
|
|
||||||
| teacher1 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| teacher1 | C1 | editingteacher |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber |
|
|
||||||
| quiz | Quiz 1 | Quiz 1 description | C1 | quiz1 |
|
|
||||||
And the following "question categories" exist:
|
|
||||||
| contextlevel | reference | name |
|
|
||||||
| Course | C1 | Test questions |
|
|
||||||
And the following "questions" exist:
|
|
||||||
| questioncategory | qtype | name | questiontext |
|
|
||||||
| Test questions | truefalse | TF1 | Text of the first question |
|
|
||||||
| Test questions | truefalse | TF2 | Text of the second question |
|
|
||||||
And quiz "Quiz 1" contains the following questions:
|
|
||||||
| question | page |
|
|
||||||
| TF1 | 1 |
|
|
||||||
| TF2 | 2 |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber |
|
|
||||||
| quiz | Quiz 2 | Quiz 2 description | C1 | quiz2 |
|
|
||||||
And the following "question categories" exist:
|
|
||||||
| contextlevel | reference | name |
|
|
||||||
| Course | C1 | Test questions 2 |
|
|
||||||
And the following "questions" exist:
|
|
||||||
| questioncategory | qtype | name | questiontext |
|
|
||||||
| Test questions | multichoice | TF3 | Text of the first question |
|
|
||||||
| Test questions | shortanswer | TF4 | Text of the second question |
|
|
||||||
| Test questions | numerical | TF5 | Text of the third question |
|
|
||||||
| Test questions | essay | TF6 | Text of the fourth question |
|
|
||||||
| Test questions | ddwtos | TF7 | The [[1]] brown [[2]] jumped over the [[3]] dog. |
|
|
||||||
| Test questions | truefalse | TF8 | Text of the sixth question |
|
|
||||||
| Test questions | match | TF9 | Text of the seventh question |
|
|
||||||
| Test questions | description | TF10 | Text of the eighth question |
|
|
||||||
And the following "questions" exist:
|
|
||||||
| questioncategory | qtype | name | template |
|
|
||||||
| Test questions | gapselect | TF11 | missingchoiceno |
|
|
||||||
| Test questions | ddimageortext | TF12 | xsection |
|
|
||||||
| Test questions | ddmarker | TF13 | mkmap |
|
|
||||||
And quiz "Quiz 2" contains the following questions:
|
|
||||||
| question | page |
|
|
||||||
| TF3 | 1 |
|
|
||||||
| TF4 | 2 |
|
|
||||||
| TF5 | 3 |
|
|
||||||
| TF6 | 4 |
|
|
||||||
| TF7 | 5 |
|
|
||||||
| TF8 | 6 |
|
|
||||||
| TF9 | 7 |
|
|
||||||
| TF10 | 8 |
|
|
||||||
| TF11 | 9 |
|
|
||||||
| TF12 | 10 |
|
|
||||||
| TF13 | 11 |
|
|
||||||
|
|
||||||
# This scenario is duplicated from main because the description type question (the eighth)
|
|
||||||
# cannot be filled in 3.9, since the selects are missing accessible labels.
|
|
||||||
Scenario: Attempt a quiz (all question types)
|
|
||||||
Given I entered the quiz activity "Quiz 2" on course "Course 1" as "student1" in the app
|
|
||||||
When I press "Attempt quiz now" in the app
|
|
||||||
And I press "Four" in the app
|
|
||||||
And I press "Three" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "Answer" to "testing" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "Answer" to "5" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "Answer" to "Testing an essay" in the app
|
|
||||||
And I press "Next" "ion-button" in the app
|
|
||||||
And I press "quick" ".drag" in the app
|
|
||||||
And I click on ".place1.drop" "css"
|
|
||||||
And I press "fox" ".drag" in the app
|
|
||||||
And I click on ".place2.drop" "css"
|
|
||||||
And I press "lazy" ".drag" in the app
|
|
||||||
And I click on ".place3.drop" "css"
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "True" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I set the field "frog" to "amphibian" in the app
|
|
||||||
And I set the field "newt" to "insect" in the app
|
|
||||||
And I set the field "cat" to "mammal" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
Then I should find "Text of the eighth question" in the app
|
|
||||||
|
|
||||||
When I press "Next" in the app
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "abyssal" ".drag" in the app
|
|
||||||
And I click on ".place6.dropzone" "css"
|
|
||||||
And I press "trench" ".drag" in the app
|
|
||||||
And I click on ".place3.dropzone" "css"
|
|
||||||
And I press "Next" in the app
|
|
||||||
And I press "Railway station" ".marker" in the app
|
|
||||||
And I click on "img.dropbackground" "css"
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Answer saved" in the app
|
|
||||||
And I should find "Not yet answered" within "8" "ion-item" in the app
|
|
||||||
And I should find "Incomplete answer" within "9" "ion-item" in the app
|
|
||||||
|
|
||||||
When I press "Submit all and finish" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
Then I should find "Review" in the app
|
|
||||||
And I should find "Finished" in the app
|
|
||||||
And I should find "Not yet graded" in the app
|
|
|
@ -609,7 +609,6 @@ Feature: Test attempts and grading settings of SCORM activity in app
|
||||||
# And I press the back button in the app
|
# And I press the back button in the app
|
||||||
# Then I should find "74%" within "Grade reported" "ion-item" in the app
|
# Then I should find "74%" within "Grade reported" "ion-item" in the app
|
||||||
|
|
||||||
# @lms_from4.1
|
|
||||||
# Scenario: SCORM grade is calculated right based on 'Attempts grading' setting
|
# Scenario: SCORM grade is calculated right based on 'Attempts grading' setting
|
||||||
# Given the following "activities" exist:
|
# Given the following "activities" exist:
|
||||||
# | activity | name | course | idnumber | packagefilepath | maxattempt | whatgrade | grademethod | forcenewattempt |
|
# | activity | name | course | idnumber | packagefilepath | maxattempt | whatgrade | grademethod | forcenewattempt |
|
||||||
|
|
|
@ -20,7 +20,6 @@ Feature: Test availability options of SCORM activity in app
|
||||||
| scorm | C1 | Current SCORM | mod/scorm/tests/packages/singlesco_scorm12.zip | ##yesterday## | ##tomorrow## |
|
| scorm | C1 | Current SCORM | mod/scorm/tests/packages/singlesco_scorm12.zip | ##yesterday## | ##tomorrow## |
|
||||||
| scorm | C1 | Future SCORM | mod/scorm/tests/packages/singlesco_scorm12.zip | ##tomorrow## | ##+2 days## |
|
| scorm | C1 | Future SCORM | mod/scorm/tests/packages/singlesco_scorm12.zip | ##tomorrow## | ##+2 days## |
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Only open SCORMs can be played
|
Scenario: Only open SCORMs can be played
|
||||||
Given I entered the course "Course 1" as "student1" in the app
|
Given I entered the course "Course 1" as "student1" in the app
|
||||||
When I press "Past SCORM" in the app
|
When I press "Past SCORM" in the app
|
||||||
|
|
|
@ -1,277 +0,0 @@
|
||||||
@addon_mod_survey @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test basic usage of survey activity in app
|
|
||||||
In order to participate in surveys while using the mobile app
|
|
||||||
As a student
|
|
||||||
I need basic survey functionality to work
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
And the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student1 |
|
|
||||||
| teacher1 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| teacher1 | C1 | editingteacher |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber | groupmode |
|
|
||||||
| survey | Test survey name | Test survey | C1 | survey | 0 |
|
|
||||||
|
|
||||||
Scenario: Answer a survey & View results (ATTLS)
|
|
||||||
Given I entered the survey activity "Test survey name" on course "Course 1" as "student1" in the app
|
|
||||||
And I set the following fields to these values in the app:
|
|
||||||
| 1. In evaluating what someone says, I focus on the quality of their argument, not on the person who's presenting it. | Strongly agree |
|
|
||||||
| 2. I like playing devil's advocate - arguing the opposite of what someone is saying. | Strongly disagree |
|
|
||||||
| 3. I like to understand where other people are 'coming from', what experiences have led them to feel the way they do. | Somewhat agree |
|
|
||||||
| 4. The most important part of my education has been learning to understand people who are very different to me. | Somewhat disagree |
|
|
||||||
| 5. I feel that the best way for me to achieve my own identity is to interact with a variety of other people. | Somewhat agree |
|
|
||||||
| 6. I enjoy hearing the opinions of people who come from backgrounds different to mine - it helps me to understand how the same things can be seen in such different ways. | Somewhat agree |
|
|
||||||
| 7. I find that I can strengthen my own position through arguing with someone who disagrees with me. | Somewhat agree |
|
|
||||||
| 8. I am always interested in knowing why people say and believe the things they do. | Somewhat agree |
|
|
||||||
| 9. I often find myself arguing with the authors of books that I read, trying to logically figure out why they're wrong. | Somewhat agree |
|
|
||||||
| 10. It's important for me to remain as objective as possible when I analyze something. | Somewhat agree |
|
|
||||||
| 11. I try to think with people instead of against them. | Somewhat agree |
|
|
||||||
| 12. I have certain criteria I use in evaluating arguments. | Somewhat agree |
|
|
||||||
| 13. I'm more likely to try to understand someone else's opinion than to try to evaluate it. | Somewhat agree |
|
|
||||||
| 14. I try to point out weaknesses in other people's thinking to help them clarify their arguments. | Somewhat agree |
|
|
||||||
| 15. I tend to put myself in other people's shoes when discussing controversial issues, to see why they think the way they do. | Somewhat agree |
|
|
||||||
| 16. One could call my way of analysing things 'putting them on trial' because I am careful to consider all the evidence. | Somewhat agree |
|
|
||||||
| 17. I value the use of logic and reason over the incorporation of my own concerns when solving problems. | Somewhat agree |
|
|
||||||
| 18. I can obtain insight into opinions that differ from mine through empathy. | Somewhat agree |
|
|
||||||
| 19. When I encounter people whose opinions seem alien to me, I make a deliberate effort to 'extend' myself into that person, to try to see how they could have those opinions. | Somewhat agree |
|
|
||||||
| 20. I spend time figuring out what's 'wrong' with things. For example, I'll look for something in a literary interpretation that isn't argued well enough. | Somewhat agree |
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
And I press "Results" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
And I switch to the browser tab opened by the app
|
|
||||||
And I log in as "student1"
|
|
||||||
Then I should see "You've completed this survey. The graph below shows a summary of your results compared to the class averages."
|
|
||||||
And I should see "1 people have completed this survey so far"
|
|
||||||
And the following events should have been logged for "student1" in the app:
|
|
||||||
| name | activity | activityname | course |
|
|
||||||
| \mod_survey\event\course_module_viewed | survey | Test survey name | Course 1 |
|
|
||||||
| \mod_survey\event\response_submitted | survey | Test survey name | Course 1 |
|
|
||||||
|
|
||||||
Scenario: Answer a survey & View results (Critical incidents)
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | template |course | idnumber | groupmode |
|
|
||||||
| survey | Test survey critical incidents | Test survey1 | 5 | C1 | survey1 | 0 |
|
|
||||||
Given I entered the survey activity "Test survey critical incidents" on course "Course 1" as "student1" in the app
|
|
||||||
And I set the following fields to these values in the app:
|
|
||||||
| At what moment in class were you most engaged as a learner? | 1st answer |
|
|
||||||
| At what moment in class were you most distanced as a learner? | 2nd answer |
|
|
||||||
| What action from anyone in the forums did you find most affirming or helpful? | 3rd answer |
|
|
||||||
| What action from anyone in the forums did you find most puzzling or confusing? | 4th answer |
|
|
||||||
| What event surprised you most? | 5th answer |
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
Then I should see "Results"
|
|
||||||
|
|
||||||
When I press "Results" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
And I switch to the browser tab opened by the app
|
|
||||||
And I log in as "student1"
|
|
||||||
Then I should see "Test survey critical incidents"
|
|
||||||
And I should see "1st answer"
|
|
||||||
And I should see "2nd answer"
|
|
||||||
And I should see "3rd answer"
|
|
||||||
And I should see "4th answer"
|
|
||||||
And I should see "5th answer"
|
|
||||||
|
|
||||||
Scenario: Answer a survey & View results (Colles actual)
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | template |course | idnumber | groupmode |
|
|
||||||
| survey | Test survey Colles (actual) | Test survey1 | 1 | C1 | survey1 | 0 |
|
|
||||||
Given I entered the survey activity "Test survey Colles (actual)" on course "Course 1" as "student1" in the app
|
|
||||||
And I set the following fields to these values in the app:
|
|
||||||
| 1. my learning focuses on issues that interest me. | Sometimes |
|
|
||||||
| 2. what I learn is important for my professional practice. | Sometimes |
|
|
||||||
| 3. I learn how to improve my professional practice. | Sometimes |
|
|
||||||
| 4. what I learn connects well with my professional practice. | Sometimes |
|
|
||||||
| 5. I think critically about how I learn. | Sometimes |
|
|
||||||
| 6. I think critically about my own ideas. | Sometimes |
|
|
||||||
| 7. I think critically about other students' ideas. | Sometimes |
|
|
||||||
| 8. I think critically about ideas in the readings. | Sometimes |
|
|
||||||
| 9. I explain my ideas to other students. | Sometimes |
|
|
||||||
| 10. I ask other students to explain their ideas. | Sometimes |
|
|
||||||
| 11. other students ask me to explain my ideas. | Sometimes |
|
|
||||||
| 12. other students respond to my ideas. | Sometimes |
|
|
||||||
| 13. the tutor stimulates my thinking. | Sometimes |
|
|
||||||
| 14. the tutor encourages me to participate. | Sometimes |
|
|
||||||
| 15. the tutor models good discourse. | Sometimes |
|
|
||||||
| 16. the tutor models critical self-reflection. | Sometimes |
|
|
||||||
| 17. other students encourage my participation. | Sometimes |
|
|
||||||
| 18. other students praise my contribution. | Sometimes |
|
|
||||||
| 19. other students value my contribution. | Sometimes |
|
|
||||||
| 20. other students empathise with my struggle to learn. | Sometimes |
|
|
||||||
| 21. I make good sense of other students' messages. | Sometimes |
|
|
||||||
| 22. other students make good sense of my messages. | Sometimes |
|
|
||||||
| 23. I make good sense of the tutor's messages. | Sometimes |
|
|
||||||
| 24. the tutor makes good sense of my messages. | Sometimes |
|
|
||||||
| 25. How long did this survey take you to complete? | under 1 min |
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
Then I should see "You have completed this survey"
|
|
||||||
|
|
||||||
When I press "Results" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
And I switch to the browser tab opened by the app
|
|
||||||
And I log in as "student1"
|
|
||||||
Then I should see "You've completed this survey. The graph below shows a summary of your results compared to the class averages."
|
|
||||||
And I should see "1 people have completed this survey so far"
|
|
||||||
|
|
||||||
Scenario: Answer a survey & View results (Colles preferred)
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | template | course | idnumber | groupmode |
|
|
||||||
| survey | Test survey Colles (preferred) | Test survey1 | 2 | C1 | survey1 | 0 |
|
|
||||||
Given I entered the survey activity "Test survey Colles (preferred)" on course "Course 1" as "student1" in the app
|
|
||||||
And I set the following fields to these values in the app:
|
|
||||||
| 1. my learning focuses on issues that interest me. | Sometimes |
|
|
||||||
| 2. what I learn is important for my professional practice. | Sometimes |
|
|
||||||
| 3. I learn how to improve my professional practice. | Sometimes |
|
|
||||||
| 4. what I learn connects well with my professional practice. | Sometimes |
|
|
||||||
| 5. I think critically about how I learn. | Sometimes |
|
|
||||||
| 6. I think critically about my own ideas. | Sometimes |
|
|
||||||
| 7. I think critically about other students' ideas. | Sometimes |
|
|
||||||
| 8. I think critically about ideas in the readings. | Sometimes |
|
|
||||||
| 9. I explain my ideas to other students. | Sometimes |
|
|
||||||
| 10. I ask other students to explain their ideas. | Sometimes |
|
|
||||||
| 11. other students ask me to explain my ideas. | Sometimes |
|
|
||||||
| 12. other students respond to my ideas. | Sometimes |
|
|
||||||
| 13. the tutor stimulates my thinking. | Sometimes |
|
|
||||||
| 14. the tutor encourages me to participate. | Sometimes |
|
|
||||||
| 15. the tutor models good discourse. | Sometimes |
|
|
||||||
| 16. the tutor models critical self-reflection. | Sometimes |
|
|
||||||
| 17. other students encourage my participation. | Sometimes |
|
|
||||||
| 18. other students praise my contribution. | Sometimes |
|
|
||||||
| 19. other students value my contribution. | Sometimes |
|
|
||||||
| 20. other students empathise with my struggle to learn. | Sometimes |
|
|
||||||
| 21. I make good sense of other students' messages. | Sometimes |
|
|
||||||
| 22. other students make good sense of my messages. | Sometimes |
|
|
||||||
| 23. I make good sense of the tutor's messages. | Sometimes |
|
|
||||||
| 24. the tutor makes good sense of my messages. | Sometimes |
|
|
||||||
| 25. How long did this survey take you to complete? | under 1 min |
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
Then I should see "You have completed this survey"
|
|
||||||
|
|
||||||
When I press "Results" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
And I switch to the browser tab opened by the app
|
|
||||||
And I log in as "student1"
|
|
||||||
Then I should see "You've completed this survey. The graph below shows a summary of your results compared to the class averages."
|
|
||||||
And I should see "1 people have completed this survey so far"
|
|
||||||
|
|
||||||
Scenario: Answer a survey & View results (Colles preferred and actual)
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | template | course | idnumber | groupmode |
|
|
||||||
| survey | Test survey Colles (preferred and actual) | Test survey1 | 3 | C1 | survey1 | 0 |
|
|
||||||
Given I entered the survey activity "Test survey Colles (preferred and actual)" on course "Course 1" as "student1" in the app
|
|
||||||
And I set the following fields to these values in the app:
|
|
||||||
| 1. I prefer that my learning focuses on issues that interest me. | Sometimes |
|
|
||||||
| 2. I found that my learning focuses on issues that interest me. | Sometimes |
|
|
||||||
| 3. I prefer that what I learn is important for my professional practice. | Sometimes |
|
|
||||||
| 4. I found that what I learn is important for my professional practice. | Sometimes |
|
|
||||||
| 5. I prefer that I learn how to improve my professional practice. | Sometimes |
|
|
||||||
| 6. I found that I learn how to improve my professional practice. | Sometimes |
|
|
||||||
| 7. I prefer that what I learn connects well with my professional practice. | Sometimes |
|
|
||||||
| 8. I found that what I learn connects well with my professional practice. | Sometimes |
|
|
||||||
| 9. I prefer that I think critically about how I learn. | Sometimes |
|
|
||||||
| 10. I found that I think critically about how I learn. | Sometimes |
|
|
||||||
| 11. I prefer that I think critically about my own ideas. | Sometimes |
|
|
||||||
| 12. I found that I think critically about my own ideas. | Sometimes |
|
|
||||||
| 13. I prefer that I think critically about other students' ideas. | Sometimes |
|
|
||||||
| 14. I found that I think critically about other students' ideas. | Sometimes |
|
|
||||||
| 15. I prefer that I think critically about ideas in the readings. | Sometimes |
|
|
||||||
| 16. I found that I think critically about ideas in the readings. | Sometimes |
|
|
||||||
| 17. I prefer that I explain my ideas to other students. | Sometimes |
|
|
||||||
| 18. I found that I explain my ideas to other students. | Sometimes |
|
|
||||||
| 19. I prefer that I ask other students to explain their ideas. | Sometimes |
|
|
||||||
| 20. I found that I ask other students to explain their ideas. | Sometimes |
|
|
||||||
| 21. I prefer that other students ask me to explain my ideas. | Sometimes |
|
|
||||||
| 22. I found that other students ask me to explain my ideas. | Sometimes |
|
|
||||||
| 23. I prefer that other students respond to my ideas. | Sometimes |
|
|
||||||
| 24. I found that other students respond to my ideas. | Sometimes |
|
|
||||||
| 25. I prefer that the tutor stimulates my thinking. | Sometimes |
|
|
||||||
| 26. I found that the tutor stimulates my thinking. | Sometimes |
|
|
||||||
| 27. I prefer that the tutor encourages me to participate. | Sometimes |
|
|
||||||
| 28. I found that the tutor encourages me to participate. | Sometimes |
|
|
||||||
| 29. I prefer that the tutor models good discourse. | Sometimes |
|
|
||||||
| 30. I found that the tutor models good discourse. | Sometimes |
|
|
||||||
| 31. I prefer that the tutor models critical self-reflection. | Sometimes |
|
|
||||||
| 32. I found that the tutor models critical self-reflection. | Sometimes |
|
|
||||||
| 33. I prefer that other students encourage my participation. | Sometimes |
|
|
||||||
| 34. I found that other students encourage my participation. | Sometimes |
|
|
||||||
| 35. I prefer that other students praise my contribution. | Sometimes |
|
|
||||||
| 36. I found that other students praise my contribution. | Sometimes |
|
|
||||||
| 37. I prefer that other students value my contribution. | Sometimes |
|
|
||||||
| 38. I found that other students value my contribution. | Sometimes |
|
|
||||||
| 39. I prefer that other students empathise with my struggle to learn. | Sometimes |
|
|
||||||
| 40. I found that other students empathise with my struggle to learn. | Sometimes |
|
|
||||||
| 41. I prefer that I make good sense of other students' messages. | Sometimes |
|
|
||||||
| 42. I found that I make good sense of other students' messages. | Sometimes |
|
|
||||||
| 43. I prefer that other students make good sense of my messages. | Sometimes |
|
|
||||||
| 44. I found that other students make good sense of my messages. | Sometimes |
|
|
||||||
| 45. I prefer that I make good sense of the tutor's messages. | Sometimes |
|
|
||||||
| 46. I found that I make good sense of the tutor's messages. | Sometimes |
|
|
||||||
| 47. I prefer that the tutor makes good sense of my messages. | Sometimes |
|
|
||||||
| 48. I found that the tutor makes good sense of my messages. | Sometimes |
|
|
||||||
| 49. How long did this survey take you to complete? | 1-2 min |
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
Then I should see "You have completed this survey"
|
|
||||||
|
|
||||||
When I press "Results" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
And I switch to the browser tab opened by the app
|
|
||||||
And I log in as "student1"
|
|
||||||
Then I should see "You've completed this survey. The graph below shows a summary of your results compared to the class averages."
|
|
||||||
And I should see "1 people have completed this survey so far"
|
|
||||||
|
|
||||||
Scenario: Answer survey offline & Sync survey
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | template | course | idnumber | groupmode |
|
|
||||||
| survey | Test survey critical incidents | Test survey1 | 5 | C1 | survey1 | 0 |
|
|
||||||
Given I entered the survey activity "Test survey critical incidents" on course "Course 1" as "student1" in the app
|
|
||||||
And I switch network connection to offline
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
Then I should see "This Survey has offline data to be synchronised."
|
|
||||||
|
|
||||||
When I switch network connection to wifi
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "Test survey critical incidents" in the app
|
|
||||||
And I press "Information" in the app
|
|
||||||
And I press "Refresh" in the app
|
|
||||||
Then I should see "Results"
|
|
||||||
And I should see "You have completed this survey."
|
|
||||||
But I should not see "This Survey has offline data to be synchronised."
|
|
||||||
|
|
||||||
Scenario: Prefetch & Auto-sync survey
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | intro | template | course | idnumber | groupmode |
|
|
||||||
| survey | Test survey critical incidents | Test survey1 | 5 | C1 | survey1 | 0 |
|
|
||||||
Given I entered the course "Course 1" as "student1" in the app
|
|
||||||
And I press "Course downloads" in the app
|
|
||||||
And I press "Download" within "Test survey critical incidents" "ion-item" in the app
|
|
||||||
And I press the back button in the app
|
|
||||||
And I switch network connection to offline
|
|
||||||
And I press "Test survey name" in the app
|
|
||||||
Then I should see "There was a problem connecting to the site. Please check your connection and try again."
|
|
||||||
|
|
||||||
When I press "OK" in the app
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "Test survey critical incidents" in the app
|
|
||||||
And I press "Submit" in the app
|
|
||||||
And I press "OK" in the app
|
|
||||||
Then I should see "This Survey has offline data to be synchronised."
|
|
||||||
|
|
||||||
When I switch network connection to wifi
|
|
||||||
And I run cron tasks in the app
|
|
||||||
Then I should not see "This Survey has offline data to be synchronised."
|
|
||||||
And I should see "You have completed this survey."
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_mod_survey @app @javascript @lms_from4.0
|
@addon_mod_survey @app @javascript
|
||||||
Feature: Test basic usage of survey activity in app
|
Feature: Test basic usage of survey activity in app
|
||||||
In order to participate in surveys while using the mobile app
|
In order to participate in surveys while using the mobile app
|
||||||
As a student
|
As a student
|
||||||
|
|
|
@ -19,7 +19,6 @@ Feature: Test basic usage of workshop activity in app
|
||||||
| activity | name | intro | course | idnumber |
|
| activity | name | intro | course | idnumber |
|
||||||
| workshop | Test workshop | Workshop description | C1 | workshop |
|
| workshop | Test workshop | Workshop description | C1 | workshop |
|
||||||
|
|
||||||
@lms_from3.11
|
|
||||||
Scenario: Take a workshop
|
Scenario: Take a workshop
|
||||||
|
|
||||||
# Setup phase
|
# Setup phase
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@addon_notifications @app @javascript @lms_from3.11
|
@addon_notifications @app @javascript
|
||||||
Feature: Notifications
|
Feature: Notifications
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_comments @app @javascript @lms_from3.11
|
@core_comments @app @javascript
|
||||||
Feature: Test basic usage of comments in app
|
Feature: Test basic usage of comments in app
|
||||||
In order to participate in the comments while using the mobile app
|
In order to participate in the comments while using the mobile app
|
||||||
As a student
|
As a student
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_course @app @javascript @lms_from4.1
|
@core_course @app @javascript
|
||||||
Feature: Test basic usage of one course in app
|
Feature: Test basic usage of one course in app
|
||||||
In order to participate in one course while using the mobile app
|
In order to participate in one course while using the mobile app
|
||||||
As a student
|
As a student
|
||||||
|
|
|
@ -1,34 +0,0 @@
|
||||||
@core_course @app @javascript @lms_upto3.10
|
|
||||||
Feature: Check course completion feature.
|
|
||||||
In order to track the progress of the course on mobile device
|
|
||||||
As a student
|
|
||||||
I need to be able to update the activity completion status.
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "users" exist:
|
|
||||||
| username | firstname | lastname | email |
|
|
||||||
| student1 | Student | 1 | student1@example.com |
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname | category | enablecompletion |
|
|
||||||
| Course 1 | C1 | 0 | 1 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
|
|
||||||
Scenario: Activity completion, marking the checkbox manually
|
|
||||||
Given the following "activities" exist:
|
|
||||||
| activity | name | course | idnumber | completion | completionview |
|
|
||||||
| forum | First forum | C1 | forum1 | 1 | 0 |
|
|
||||||
| forum | Second forum | C1 | forum2 | 1 | 0 |
|
|
||||||
And I entered the course "Course 1" as "student1" in the app
|
|
||||||
# Set activities as completed.
|
|
||||||
Then I should find "0%" in the app
|
|
||||||
And I click on "ion-button[title=\"Not completed: First forum. Select to mark as complete.\"]" "css"
|
|
||||||
And I should find "50%" in the app
|
|
||||||
And I click on "ion-button[title=\"Not completed: Second forum. Select to mark as complete.\"]" "css"
|
|
||||||
And I should find "100%" in the app
|
|
||||||
# Set activities as not completed.
|
|
||||||
And I click on "ion-button[title=\"Completed: First forum. Select to mark as not complete.\"]" "css"
|
|
||||||
And I should find "50%" in the app
|
|
||||||
And I click on "ion-button[title=\"Completed: Second forum. Select to mark as not complete.\"]" "css"
|
|
||||||
And I should find "0%" in the app
|
|
|
@ -15,7 +15,6 @@ Feature: Check course completion feature.
|
||||||
| user | course | role |
|
| user | course | role |
|
||||||
| student1 | C1 | student |
|
| student1 | C1 | student |
|
||||||
|
|
||||||
@lms_from3.11
|
|
||||||
Scenario: Activity completion, marking the checkbox manually
|
Scenario: Activity completion, marking the checkbox manually
|
||||||
Given the following "activities" exist:
|
Given the following "activities" exist:
|
||||||
| activity | name | course | idnumber | completion | completionview |
|
| activity | name | course | idnumber | completion | completionview |
|
||||||
|
|
|
@ -1,118 +0,0 @@
|
||||||
@core_course @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test course list shown on app start tab
|
|
||||||
In order to select a course
|
|
||||||
As a student
|
|
||||||
I need to see the correct list of courses
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
| Course 2 | C2 |
|
|
||||||
And the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student1 |
|
|
||||||
| student2 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student2 | C1 | student |
|
|
||||||
| student2 | C2 | student |
|
|
||||||
|
|
||||||
Scenario: View courses (shortnames not displayed)
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
When I should find "Course 1" in the app
|
|
||||||
But I should not find "Course 2" in the app
|
|
||||||
But I should not find "C1" in the app
|
|
||||||
But I should not find "C2" in the app
|
|
||||||
|
|
||||||
Given I entered the app as "student2"
|
|
||||||
When I should find "Course 1" in the app
|
|
||||||
And I should find "Course 2" in the app
|
|
||||||
But I should not find "C1" in the app
|
|
||||||
But I should not find "C2" in the app
|
|
||||||
|
|
||||||
Scenario: Filter courses
|
|
||||||
Given the following config values are set as admin:
|
|
||||||
| courselistshortnames | 1 |
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Frog 3 | C3 |
|
|
||||||
| Frog 4 | C4 |
|
|
||||||
| Course 5 | C5 |
|
|
||||||
| Toad 6 | C6 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student2 | C3 | student |
|
|
||||||
| student2 | C4 | student |
|
|
||||||
| student2 | C5 | student |
|
|
||||||
| student2 | C6 | student |
|
|
||||||
# Create bogus courses so that the main ones aren't shown in the 'recently accessed' part.
|
|
||||||
# Because these come later in alphabetical order, they may not be displayed in the lower part
|
|
||||||
# which is OK.
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Zogus 1 | Z1 |
|
|
||||||
| Zogus 2 | Z2 |
|
|
||||||
| Zogus 3 | Z3 |
|
|
||||||
| Zogus 4 | Z4 |
|
|
||||||
| Zogus 5 | Z5 |
|
|
||||||
| Zogus 6 | Z6 |
|
|
||||||
| Zogus 7 | Z7 |
|
|
||||||
| Zogus 8 | Z8 |
|
|
||||||
| Zogus 9 | Z9 |
|
|
||||||
| Zogus 10 | Z10 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student2 | Z1 | student |
|
|
||||||
| student2 | Z2 | student |
|
|
||||||
| student2 | Z3 | student |
|
|
||||||
| student2 | Z4 | student |
|
|
||||||
| student2 | Z5 | student |
|
|
||||||
| student2 | Z6 | student |
|
|
||||||
| student2 | Z7 | student |
|
|
||||||
| student2 | Z8 | student |
|
|
||||||
| student2 | Z9 | student |
|
|
||||||
| student2 | Z10 | student |
|
|
||||||
Given I entered the app as "student2"
|
|
||||||
When I should find "C1" in the app
|
|
||||||
And I should find "C2" in the app
|
|
||||||
And I should find "C3" in the app
|
|
||||||
And I should find "C4" in the app
|
|
||||||
And I should find "C5" in the app
|
|
||||||
And I should find "C6" in the app
|
|
||||||
And I should find "Course 1" in the app
|
|
||||||
And I should find "Course 2" in the app
|
|
||||||
And I should find "Frog 3" in the app
|
|
||||||
And I should find "Frog 4" in the app
|
|
||||||
And I should find "Course 5" in the app
|
|
||||||
And I should find "Toad 6" in the app
|
|
||||||
|
|
||||||
And I set the field "search text" to "fr" in the app
|
|
||||||
|
|
||||||
Then I should find "C3" in the app
|
|
||||||
And I should find "C4" in the app
|
|
||||||
And I should find "Frog 3" in the app
|
|
||||||
And I should find "Frog 4" in the app
|
|
||||||
But I should not find "C1" in the app
|
|
||||||
And I should not find "C2" in the app
|
|
||||||
And I should not find "C5" in the app
|
|
||||||
And I should not find "C6" in the app
|
|
||||||
And I should not find "Course 1" in the app
|
|
||||||
And I should not find "Course 2" in the app
|
|
||||||
And I should not find "Course 5" in the app
|
|
||||||
And I should not find "Toad 6" in the app
|
|
||||||
|
|
||||||
When I set the field "search text" to "" in the app
|
|
||||||
Then I should find "C1" in the app
|
|
||||||
And I should find "C2" in the app
|
|
||||||
And I should find "C3" in the app
|
|
||||||
And I should find "C4" in the app
|
|
||||||
And I should find "C5" in the app
|
|
||||||
And I should find "C6" in the app
|
|
||||||
And I should find "Course 1" in the app
|
|
||||||
And I should find "Course 2" in the app
|
|
||||||
And I should find "Frog 3" in the app
|
|
||||||
And I should find "Frog 4" in the app
|
|
||||||
And I should find "Course 5" in the app
|
|
||||||
And I should find "Toad 6" in the app
|
|
|
@ -19,7 +19,6 @@ Feature: Test course list shown on app start tab
|
||||||
| student2 | C1 | student |
|
| student2 | C1 | student |
|
||||||
| student2 | C2 | student |
|
| student2 | C2 | student |
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: View courses (shortnames not displayed)
|
Scenario: View courses (shortnames not displayed)
|
||||||
Given I entered the app as "student1"
|
Given I entered the app as "student1"
|
||||||
When I press "My courses" in the app
|
When I press "My courses" in the app
|
||||||
|
@ -35,7 +34,6 @@ Feature: Test course list shown on app start tab
|
||||||
But I should not find "C1" in the app
|
But I should not find "C1" in the app
|
||||||
But I should not find "C2" in the app
|
But I should not find "C2" in the app
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Filter courses
|
Scenario: Filter courses
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| courselistshortnames | 1 |
|
| courselistshortnames | 1 |
|
||||||
|
|
|
@ -20,7 +20,6 @@ Feature: Test basic usage of guest access course in app
|
||||||
| activity | name | intro | course | idnumber | groupmode |
|
| activity | name | intro | course | idnumber | groupmode |
|
||||||
| wiki | Test wiki name | Test wiki | C1 | wiki | 0 |
|
| wiki | Test wiki name | Test wiki | C1 | wiki | 0 |
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Guest access without password (student)
|
Scenario: Guest access without password (student)
|
||||||
Given I am on the "Course 1" "enrolment methods" page logged in as "teacher1"
|
Given I am on the "Course 1" "enrolment methods" page logged in as "teacher1"
|
||||||
And I click on "Edit" "link" in the "Guest access" "table_row"
|
And I click on "Edit" "link" in the "Guest access" "table_row"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_course @app @javascript @lms_from4.0 @lms_upto4.3
|
@core_course @app @javascript @lms_upto4.3
|
||||||
Feature: Check relative dates feature.
|
Feature: Check relative dates feature.
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -38,7 +38,6 @@ Feature: Test basic usage of courses in app
|
||||||
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | gradingduedate |
|
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | gradingduedate |
|
||||||
| assign | C1 | assign1 | assignment | Test assignment description | 1 | ##tomorrow## | ##tomorrow## |
|
| assign | C1 | assign1 | assignment | Test assignment description | 1 | ##tomorrow## | ##tomorrow## |
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: See my courses
|
Scenario: See my courses
|
||||||
Given I entered the app as "student1"
|
Given I entered the app as "student1"
|
||||||
When the header should be "Acceptance test site" in the app
|
When the header should be "Acceptance test site" in the app
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
@core_courses @app @javascript @lms_upto3.10
|
|
||||||
Feature: Test basic usage of courses in app
|
|
||||||
In order to participate in the courses while using the mobile app
|
|
||||||
As a student
|
|
||||||
I need basic courses 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 |
|
|
||||||
| Course 2 | C2 | 0 |
|
|
||||||
| Course 3 | C3 | 0 |
|
|
||||||
| Course 4 | C4 | 0 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| teacher1 | C1 | editingteacher |
|
|
||||||
| teacher1 | C2 | editingteacher |
|
|
||||||
| teacher1 | C3 | editingteacher |
|
|
||||||
| teacher1 | C4 | editingteacher |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student1 | C2 | student |
|
|
||||||
| student1 | C3 | student |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber | option |
|
|
||||||
| choice | Choice course 1 | Test choice description | C1 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
| choice | Choice course 2 | Test choice description | C2 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
| choice | Choice course 3 | Test choice description | C3 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
| choice | Choice course 4 | Test choice description | C4 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | gradingduedate |
|
|
||||||
| assign | C1 | assign1 | assignment | Test assignment description | 1 | ##tomorrow## | ##tomorrow## |
|
|
||||||
|
|
||||||
Scenario: Links to actions in Timeline work for teachers/students
|
|
||||||
# Submit assignment as student
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
And I press "Add submission" in the app
|
|
||||||
Then the header should be "assignment" in the app
|
|
||||||
And I should find "Test assignment description" in the app
|
|
||||||
And I should find "No attempt" in the app
|
|
||||||
And I should find "Due date" in the app
|
|
||||||
|
|
||||||
When I press "Add submission" in the app
|
|
||||||
And I set the field "Online text submissions" to "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 the header should be "assignment" in the app
|
|
||||||
And I should find "Test assignment description" in the app
|
|
||||||
And I should find "Submitted for grading" in the app
|
|
||||||
And I should find "Due date" in the app
|
|
||||||
|
|
||||||
# Grade assignment as teacher
|
|
||||||
Given I entered the app as "teacher1"
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
And I press "Grade" in the app
|
|
||||||
Then the header should be "assignment" in the app
|
|
||||||
|
|
||||||
When I pull to refresh in the app
|
|
||||||
Then I should find "Test assignment description" in the app
|
|
||||||
And I should find "Time remaining" in the app
|
|
||||||
|
|
||||||
When I press "Needs grading" in the app
|
|
||||||
Then I should find "Student student" in the app
|
|
||||||
And I should find "Not graded" in the app
|
|
|
@ -1,113 +0,0 @@
|
||||||
@core_courses @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test basic usage of courses in app
|
|
||||||
In order to participate in the courses while using the mobile app
|
|
||||||
As a student
|
|
||||||
I need basic courses 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 |
|
|
||||||
| Course 2 | C2 | 0 |
|
|
||||||
| Course 3 | C3 | 0 |
|
|
||||||
| Course 4 | C4 | 0 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| teacher1 | C1 | editingteacher |
|
|
||||||
| teacher1 | C2 | editingteacher |
|
|
||||||
| teacher1 | C3 | editingteacher |
|
|
||||||
| teacher1 | C4 | editingteacher |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
| student1 | C2 | student |
|
|
||||||
| student1 | C3 | student |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | course | idnumber | option |
|
|
||||||
| choice | Choice course 1 | Test choice description | C1 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
| choice | Choice course 2 | Test choice description | C2 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
| choice | Choice course 3 | Test choice description | C3 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
| choice | Choice course 4 | Test choice description | C4 | choice1 | Option 1, Option 2, Option 3 |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | gradingduedate |
|
|
||||||
| assign | C1 | assign1 | assignment | Test assignment description | 1 | ##tomorrow## | ##tomorrow## |
|
|
||||||
|
|
||||||
Scenario: "Dashboard" tab displayed
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
When I should see "Dashboard"
|
|
||||||
And the header should be "Acceptance test site" in the app
|
|
||||||
And I should find "Course 1" in the app
|
|
||||||
And I should find "Course 2" in the app
|
|
||||||
And I should find "Course 3" in the app
|
|
||||||
|
|
||||||
When I press "Site home" in the app
|
|
||||||
Then I should find "Dashboard" in the app
|
|
||||||
And the header should be "Acceptance test site" in the app
|
|
||||||
|
|
||||||
When I press "Dashboard" in the app
|
|
||||||
Then I should find "Course 1" in the app
|
|
||||||
And I should find "Course 2" in the app
|
|
||||||
And I should find "Course 3" in the app
|
|
||||||
|
|
||||||
Scenario: See my courses
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
When the header should be "Acceptance test site" in the app
|
|
||||||
And I should find "Course 1" in the app
|
|
||||||
And I should find "Course 2" in the app
|
|
||||||
And I should find "Course 3" in the app
|
|
||||||
|
|
||||||
When I press "Course 1" in the app
|
|
||||||
Then I should find "Choice course 1" in the app
|
|
||||||
And the header should be "Course 1" in the app
|
|
||||||
|
|
||||||
When I press "Choice course 1" in the app
|
|
||||||
Then I should find "Test choice description" in the app
|
|
||||||
And the header should be "Choice course 1" in the app
|
|
||||||
|
|
||||||
When I press the back button in the app
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "Course 2" in the app
|
|
||||||
Then I should find "Choice course 2" in the app
|
|
||||||
And the header should be "Course 2" in the app
|
|
||||||
|
|
||||||
When I press the back button in the app
|
|
||||||
And I press "Course 3" in the app
|
|
||||||
Then I should find "Choice course 3" in the app
|
|
||||||
And the header should be "Course 3" in the app
|
|
||||||
|
|
||||||
@lms_from3.11
|
|
||||||
Scenario: Links to actions in Timeline work for teachers/students
|
|
||||||
# Submit assignment as student
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
And I press "Add submission" in the app
|
|
||||||
Then the header should be "assignment" in the app
|
|
||||||
And I should find "Test assignment description" in the app
|
|
||||||
And I should find "No attempt" in the app
|
|
||||||
And I should find "Due:" in the app
|
|
||||||
|
|
||||||
When I press "Add submission" in the app
|
|
||||||
And I set the field "Online text submissions" to "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 the header should be "assignment" in the app
|
|
||||||
And I should find "Test assignment description" in the app
|
|
||||||
And I should find "Submitted for grading" in the app
|
|
||||||
And I should find "Due:" in the app
|
|
||||||
|
|
||||||
# Grade assignment as teacher
|
|
||||||
Given I entered the app as "teacher1"
|
|
||||||
When I press "Open block drawer" in the app
|
|
||||||
And I press "Grade" in the app
|
|
||||||
Then the header should be "assignment" in the app
|
|
||||||
|
|
||||||
When I pull to refresh in the app
|
|
||||||
Then I should find "Test assignment description" in the app
|
|
||||||
And I should find "Time remaining" in the app
|
|
||||||
|
|
||||||
When I press "Needs grading" in the app
|
|
||||||
Then I should find "Student student" in the app
|
|
||||||
And I should find "Not graded" in the app
|
|
|
@ -37,7 +37,6 @@ Feature: Test basic usage of courses in app
|
||||||
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | gradingduedate |
|
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | duedate | gradingduedate |
|
||||||
| assign | C1 | assign1 | assignment | Test assignment description | 1 | ##tomorrow## | ##tomorrow## |
|
| assign | C1 | assign1 | assignment | Test assignment description | 1 | ##tomorrow## | ##tomorrow## |
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: "Dashboard" tab displayed
|
Scenario: "Dashboard" tab displayed
|
||||||
Given I entered the app as "student1"
|
Given I entered the app as "student1"
|
||||||
When I should see "Dashboard"
|
When I should see "Dashboard"
|
||||||
|
@ -52,7 +51,6 @@ Feature: Test basic usage of courses in app
|
||||||
And I should find "Course 2" in the app
|
And I should find "Course 2" in the app
|
||||||
And I should find "Course 3" in the app
|
And I should find "Course 3" in the app
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Hidden course is only accessible for teachers
|
Scenario: Hidden course is only accessible for teachers
|
||||||
Given I entered the app as "teacher1"
|
Given I entered the app as "teacher1"
|
||||||
And I press "My courses" in the app
|
And I press "My courses" in the app
|
||||||
|
@ -118,7 +116,6 @@ Feature: Test basic usage of courses in app
|
||||||
And I should find "Course 3" in the app
|
And I should find "Course 3" in the app
|
||||||
And I should find "Course 4" in the app
|
And I should find "Course 4" in the app
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Links to actions in Timeline work for teachers/students
|
Scenario: Links to actions in Timeline work for teachers/students
|
||||||
# Submit assignment as student
|
# Submit assignment as student
|
||||||
Given I entered the app as "student1"
|
Given I entered the app as "student1"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_grades @app @javascript @lms_from3.11 @lms_upto4.1
|
@core_grades @app @javascript @lms_upto4.1
|
||||||
Feature: Grades navigation
|
Feature: Grades navigation
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_grades @app @javascript @lms_from3.11
|
@core_grades @app @javascript
|
||||||
Feature: Grades navigation
|
Feature: Grades navigation
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_grades @app @javascript @lms_from4.0
|
@core_grades @app @javascript
|
||||||
Feature: View grades
|
Feature: View grades
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
@core_login @app @javascript @lms_from4.0 @lms_upto4.0
|
|
||||||
Feature: Test basic usage of login in app
|
|
||||||
I need basic login functionality to work
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "users" exist:
|
|
||||||
| username | firstname | lastname |
|
|
||||||
| student1 | david | student |
|
|
||||||
|
|
||||||
Scenario: Forgot password
|
|
||||||
When I enter the app
|
|
||||||
And I press "Lost password?" in the app
|
|
||||||
And I set the field "Enter either username or email address" to "student1"
|
|
||||||
And I press "Search" in the app
|
|
||||||
Then I should find "Success" in the app
|
|
||||||
|
|
||||||
When I press "OK" in the app
|
|
||||||
And I press "Lost password?" in the app
|
|
||||||
Then I should find "Contact support" in the app
|
|
|
@ -1,19 +0,0 @@
|
||||||
@core_login @app @javascript @lms_upto3.11
|
|
||||||
Feature: Test basic usage of login in app
|
|
||||||
I need basic login functionality to work
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "users" exist:
|
|
||||||
| username | firstname | lastname |
|
|
||||||
| student1 | david | student |
|
|
||||||
|
|
||||||
Scenario: Forgot password
|
|
||||||
When I enter the app
|
|
||||||
And I press "Lost password?" in the app
|
|
||||||
And I set the field "Enter either username or email address" to "student1"
|
|
||||||
And I press "Search" in the app
|
|
||||||
Then I should find "Success" in the app
|
|
||||||
|
|
||||||
When I press "OK" in the app
|
|
||||||
And I press "Lost password?" in the app
|
|
||||||
Then I should not find "Contact support" in the app
|
|
|
@ -146,7 +146,6 @@ Feature: Test basic usage of login in app
|
||||||
When I press "Reconnect" in the app
|
When I press "Reconnect" in the app
|
||||||
Then I should find "Acceptance test site" in the app
|
Then I should find "Acceptance test site" in the app
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Forgot password
|
Scenario: Forgot password
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| supportavailability | 2 |
|
| supportavailability | 2 |
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
@core_login @app @javascript @lms_upto3.9
|
|
||||||
Feature: Test signup in app
|
|
||||||
I need basic signup functionality to work
|
|
||||||
|
|
||||||
# These scenarios are duplicated from main because the error message about
|
|
||||||
# non alpha-numeric characters has changed.
|
|
||||||
Background:
|
|
||||||
Given the following config values are set as admin:
|
|
||||||
| registerauth | email |
|
|
||||||
| auth_instructions | These are the authentication instructions. |
|
|
||||||
| passwordpolicy | 0 |
|
|
||||||
|
|
||||||
Scenario: Check password policy in signup
|
|
||||||
Given the following config values are set as admin:
|
|
||||||
| passwordpolicy | 1 |
|
|
||||||
| minpasswordlength | 8 |
|
|
||||||
| minpassworddigits | 1 |
|
|
||||||
| minpasswordlower | 1 |
|
|
||||||
| minpasswordupper | 1 |
|
|
||||||
| minpasswordnonalphanum | 1 |
|
|
||||||
When I launch the app
|
|
||||||
And I set the field "Your site" to "$WWWROOT" in the app
|
|
||||||
And I press "Connect to your site" in the app
|
|
||||||
And I press "Create new account" in the app
|
|
||||||
Then I should find "The password must have at least 8 characters" in the app
|
|
||||||
And I set the following fields to these values in the app:
|
|
||||||
| Username | u1 |
|
|
||||||
| Password | pu1 |
|
|
||||||
| Email address | u1@u1.com |
|
|
||||||
| Email (again) | u1@u1.com |
|
|
||||||
| First name | User |
|
|
||||||
| Last name | Test |
|
|
||||||
| City/town | Barcelona |
|
|
||||||
| Country | Spain |
|
|
||||||
And I press "Create my new account" in the app
|
|
||||||
Then I should find "Error" in the app
|
|
||||||
And I should find "Passwords must be at least 8 characters long" in the app
|
|
||||||
And I should find "Passwords must have at least 1 upper case letter(s)" in the app
|
|
||||||
And I should find "Passwords must have at least 1 non-alphanumeric character(s)" in the app
|
|
||||||
But I should not find "An email should have been sent to your address" in the app
|
|
||||||
|
|
||||||
When I press "OK" in the app
|
|
||||||
And I set the field "Password" to "Password1$" in the app
|
|
||||||
And I press "Create my new account" in the app
|
|
||||||
Then I should find "An email should have been sent to your address" in the app
|
|
|
@ -80,7 +80,6 @@ Feature: Test signup in app
|
||||||
Then I should find "Spain" in the app
|
Then I should find "Spain" in the app
|
||||||
And I should find "u1@u1.com" in the app
|
And I should find "u1@u1.com" in the app
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Check password policy in signup
|
Scenario: Check password policy in signup
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| passwordpolicy | 1 |
|
| passwordpolicy | 1 |
|
||||||
|
@ -115,7 +114,6 @@ Feature: Test signup in app
|
||||||
And I press "Create my new account" in the app
|
And I press "Create my new account" in the app
|
||||||
Then I should find "An email should have been sent to your address" in the app
|
Then I should find "An email should have been sent to your address" in the app
|
||||||
|
|
||||||
@lms_from3.11
|
|
||||||
Scenario: Signup with custom profile fields
|
Scenario: Signup with custom profile fields
|
||||||
# Use default options Yes/No for menu field because it's not possible to add new lines. See MDL-75788.
|
# Use default options Yes/No for menu field because it's not possible to add new lines. See MDL-75788.
|
||||||
Given the following "custom profile fields" exist:
|
Given the following "custom profile fields" exist:
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
@core_mainmenu @app @javascript @lms_upto3.11
|
|
||||||
Feature: Main Menu opens the right page
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student |
|
|
||||||
|
|
||||||
Scenario: Opens Site Home when defaulthomepage is set to Site
|
|
||||||
Given the following config values are set as admin:
|
|
||||||
| defaulthomepage | 0 |
|
|
||||||
Given I entered the app as "student"
|
|
||||||
When "Site home" should be selected in the app
|
|
||||||
And I should find "Available courses" in the app
|
|
||||||
And "Site home" "text" should appear before "Dashboard" "text" in the ".core-tabs-bar" "css_element"
|
|
||||||
|
|
||||||
Scenario: Opens Dashboard when defaulthomepage is set to Dashboard
|
|
||||||
Given the following config values are set as admin:
|
|
||||||
| defaulthomepage | 1 |
|
|
||||||
Given I entered the app as "student"
|
|
||||||
When "Dashboard" should be selected in the app
|
|
||||||
And I should find "Course overview" in the app
|
|
||||||
And "Dashboard" "text" should appear before "Site home" "text" in the ".core-tabs-bar" "css_element"
|
|
|
@ -12,7 +12,6 @@ Feature: Main Menu opens the right page
|
||||||
| user | course | role |
|
| user | course | role |
|
||||||
| student | C1 | student |
|
| student | C1 | student |
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Opens Site Home when defaulthomepage is set to Site
|
Scenario: Opens Site Home when defaulthomepage is set to Site
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| defaulthomepage | 0 |
|
| defaulthomepage | 0 |
|
||||||
|
@ -22,7 +21,6 @@ Feature: Main Menu opens the right page
|
||||||
And "Site home" "text" should appear before "Dashboard" "text" in the ".core-tabs-bar" "css_element"
|
And "Site home" "text" should appear before "Dashboard" "text" in the ".core-tabs-bar" "css_element"
|
||||||
And "Home" "text" should appear before "My courses" "text" in the ".mainmenu-tabs" "css_element"
|
And "Home" "text" should appear before "My courses" "text" in the ".mainmenu-tabs" "css_element"
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Opens Dashboard when defaulthomepage is set to Dashboard
|
Scenario: Opens Dashboard when defaulthomepage is set to Dashboard
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| defaulthomepage | 1 |
|
| defaulthomepage | 1 |
|
||||||
|
@ -32,7 +30,6 @@ Feature: Main Menu opens the right page
|
||||||
And "Dashboard" "text" should appear before "Site home" "text" in the ".core-tabs-bar" "css_element"
|
And "Dashboard" "text" should appear before "Site home" "text" in the ".core-tabs-bar" "css_element"
|
||||||
And "Home" "text" should appear before "My courses" "text" in the ".mainmenu-tabs" "css_element"
|
And "Home" "text" should appear before "My courses" "text" in the ".mainmenu-tabs" "css_element"
|
||||||
|
|
||||||
@lms_from4.0
|
|
||||||
Scenario: Opens My Courses when defaulthomepage is set to My Courses
|
Scenario: Opens My Courses when defaulthomepage is set to My Courses
|
||||||
Given the following config values are set as admin:
|
Given the following config values are set as admin:
|
||||||
| defaulthomepage | 3 |
|
| defaulthomepage | 3 |
|
||||||
|
@ -42,7 +39,6 @@ Feature: Main Menu opens the right page
|
||||||
And "My courses" "text" should appear before "Home" "text" in the ".mainmenu-tabs" "css_element"
|
And "My courses" "text" should appear before "Home" "text" in the ".mainmenu-tabs" "css_element"
|
||||||
|
|
||||||
# @todo MOBILE-4119: This test is too flaky to run in CI until the race condition is fixed.
|
# @todo MOBILE-4119: This test is too flaky to run in CI until the race condition is fixed.
|
||||||
# @lms_from4.0
|
|
||||||
# Scenario: Opens first tab after Site Home, Dashboard, and My Courses are disabled
|
# Scenario: Opens first tab after Site Home, Dashboard, and My Courses are disabled
|
||||||
# Given I entered the app as "student"
|
# Given I entered the app as "student"
|
||||||
# Then "Dashboard" should be selected in the app
|
# Then "Dashboard" should be selected in the app
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_reminders @app @javascript @lms_from4.0
|
@core_reminders @app @javascript
|
||||||
Feature: Set a new reminder on activity
|
Feature: Set a new reminder on activity
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_reportbuilder @app @javascript @lms_from4.1
|
@core_reportbuilder @app @javascript
|
||||||
Feature: Report builder
|
Feature: Report builder
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -7,7 +7,6 @@ Feature: Test basic usage of user features
|
||||||
| username | firstname | lastname | timezone |
|
| username | firstname | lastname | timezone |
|
||||||
| student1 | Student | Student | 99 |
|
| student1 | Student | Student | 99 |
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: Complete missing fields
|
Scenario: Complete missing fields
|
||||||
Given the following "custom profile fields" exist:
|
Given the following "custom profile fields" exist:
|
||||||
| datatype | shortname | name | required | param1 |
|
| datatype | shortname | name | required | param1 |
|
||||||
|
@ -56,7 +55,6 @@ Feature: Test basic usage of user features
|
||||||
When I press "Reconnect" in the app
|
When I press "Reconnect" in the app
|
||||||
Then I should find "Acceptance test site" in the app
|
Then I should find "Acceptance test site" in the app
|
||||||
|
|
||||||
@lms_from4.1
|
|
||||||
Scenario: View profile
|
Scenario: View profile
|
||||||
Given the following "custom profile fields" exist:
|
Given the following "custom profile fields" exist:
|
||||||
| datatype | shortname | name | required | param1 |
|
| datatype | shortname | name | required | param1 |
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
@core_user @app @javascript @lms_upto3.11
|
|
||||||
Feature: Site support
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the following "users" exist:
|
|
||||||
| username | firstname | lastname |
|
|
||||||
| student1 | Student | Student |
|
|
||||||
|
|
||||||
Scenario: Cannot contact support
|
|
||||||
Given I entered the app as "student1"
|
|
||||||
When I press the user menu button in the app
|
|
||||||
Then I should find "Blog entries" in the app
|
|
||||||
But I should not find "Support" in the app
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core_user @app @javascript @lms_from4.0
|
@core_user @app @javascript
|
||||||
Feature: Site support
|
Feature: Site support
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@core @app @javascript @lms_from4.0
|
@core @app @javascript
|
||||||
Feature: Custom lang strings
|
Feature: Custom lang strings
|
||||||
|
|
||||||
Background:
|
Background:
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
@core @app @javascript @lms_upto3.9
|
|
||||||
Feature: It opens files properly.
|
|
||||||
|
|
||||||
Background:
|
|
||||||
Given the Moodle site is compatible with this feature
|
|
||||||
And the following "users" exist:
|
|
||||||
| username |
|
|
||||||
| student1 |
|
|
||||||
And the following "courses" exist:
|
|
||||||
| fullname | shortname |
|
|
||||||
| Course 1 | C1 |
|
|
||||||
And the following "course enrolments" exist:
|
|
||||||
| user | course | role |
|
|
||||||
| student1 | C1 | student |
|
|
||||||
And the following "activities" exist:
|
|
||||||
| activity | name | intro | display | course | defaultfilename |
|
|
||||||
| resource | Test TXT | Test TXT description | 5 | C1 | A txt.txt |
|
|
||||||
| resource | Test RTF | Test RTF description | 5 | C1 | A rtf.rtf |
|
|
||||||
| resource | Test DOC | Test DOC description | 5 | C1 | A doc.doc |
|
|
||||||
|
|
||||||
Scenario: Open a file
|
|
||||||
Given I entered the resource activity "Test TXT" on course "Course 1" as "student1" in the app
|
|
||||||
When I press "Open" in the app
|
|
||||||
Then the app should have opened a browser tab with url "^blob:"
|
|
||||||
|
|
||||||
When I switch to the browser tab opened by the app
|
|
||||||
Then I should see "Test resource A txt.txt file"
|
|
||||||
|
|
||||||
When I close the browser tab opened by the app
|
|
||||||
And I press the back button in the app
|
|
||||||
And I press "Test RTF" in the app
|
|
||||||
And I press "Open" in the app
|
|
||||||
Then the app should have opened url "^blob:" with contents "Test resource A rtf.rtf file" once
|
|
||||||
|
|
||||||
When I press "Open" in the app
|
|
||||||
Then the app should have opened url "^blob:" with contents "Test resource A rtf.rtf file" 2 times
|
|
||||||
|
|
||||||
When I press the back button in the app
|
|
||||||
And I press "Test DOC" in the app
|
|
||||||
And I press "Open" in the app
|
|
||||||
Then the app should have opened url "^blob:" with contents "Test resource A doc.doc file" once
|
|
|
@ -13,7 +13,6 @@ Feature: It opens files properly.
|
||||||
| user | course | role |
|
| user | course | role |
|
||||||
| student1 | C1 | student |
|
| student1 | C1 | student |
|
||||||
|
|
||||||
@lms_from3.11
|
|
||||||
Scenario: Open a file
|
Scenario: Open a file
|
||||||
Given the following "activities" exist:
|
Given the following "activities" exist:
|
||||||
| activity | name | intro | display | course | defaultfilename |
|
| activity | name | intro | display | course | defaultfilename |
|
||||||
|
|
Loading…
Reference in New Issue