MOBILE-4470 behat: Fix tests for 4.1 and older

main
Noel De Martin 2024-05-13 13:18:29 +02:00
parent f6b5cd9d79
commit 4cd4fa6fd6
35 changed files with 603 additions and 290 deletions

View File

@ -3,7 +3,8 @@ Feature: Edit blog entries
In order to add or edit blog entries as User
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname | email |
| testuser | Test | User | moodle@example.com |
| testuser2 | Test | User2 | moodle@example.com |

View File

@ -4,7 +4,8 @@ Feature: Blog entries
As a user
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname | email |
| testuser | Test | User | moodle@example.com |
And the following "core_blog > entries" exist:

View File

@ -1,8 +1,9 @@
@addon_competency @app @javascript
@addon_competency @app @javascript @lms_from3.11
Feature: Test competency navigation
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname |
| student1 | Student | first |
| student2 | Student | second |
@ -475,8 +476,7 @@ Feature: Test competency navigation
@lms_from4.4
Scenario: Disable features
Given the Moodle site is compatible with this feature
And the following config values are set as admin:
Given the following config values are set as admin:
| enabled | 0 | core_competency |
When I entered the course "Course 1" as "student1" in the app

View File

@ -0,0 +1,78 @@
@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

View File

@ -1,8 +1,9 @@
@addon_coursecompletion @app @javascript
@addon_coursecompletion @app @javascript @lms_from4.0
Feature: Course completion navigation
Background:
Given the following "users" exist:
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 |

View File

@ -0,0 +1,94 @@
@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

View File

@ -1,10 +1,11 @@
@addon_mod_chat @app @javascript
@addon_mod_chat @app @javascript @lms_from4.0
Feature: Test basic usage of chat in app
As a student
I need basic chat functionality to work
Background:
Given the following "courses" exist:
Given the Moodle site is compatible with this feature
And the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "users" exist:

View File

@ -0,0 +1,47 @@
@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

View File

@ -1,8 +1,9 @@
@addon_mod_chat @app @javascript
@addon_mod_chat @app @javascript @lms_from4.0
Feature: Test chat navigation
Background:
Given the following "courses" exist:
Given the Moodle site is compatible with this feature
And the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "users" exist:

View File

@ -1,30 +1,31 @@
@addon_mod_data @app @javascript
@addon_mod_data @app @javascript @lms_from3.11
Feature: Users can manage entries in database activities
In order to populate databases
As a user
I need to add and manage entries to databases
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
And the following "activities" exist:
| activity | name | intro | course | idnumber | comments |
| data | Web links | Useful links | C1 | data1 | 0 |
| activity | name | intro | course | idnumber | comments |
| data | Web links | Useful links | C1 | data1 | 0 |
And the following "mod_data > fields" exist:
| database | type | name | description |
| data1 | text | URL | URL link |
| data1 | text | Description | Link description |
| database | type | name | description |
| data1 | text | URL | URL link |
| data1 | text | Description | Link description |
Scenario: Create entry
Given I entered the data activity "Web links" on course "Course 1" as "student1" in the app

View File

@ -1,30 +1,31 @@
@addon_mod_data @app @javascript
@addon_mod_data @app @javascript @lms_from3.11
Feature: Users can store entries in database activities when offline and sync when online
In order to populate databases while offline
As a user
I need to add and manage entries to databases and sync then when online
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
And the following "activities" exist:
| activity | name | intro | course | idnumber |
| data | Web links | Useful links | C1 | data1 |
| activity | name | intro | course | idnumber |
| data | Web links | Useful links | C1 | data1 |
And the following "mod_data > fields" exist:
| database | type | name | description |
| data1 | text | URL | URL link |
| data1 | text | Description | Link description |
| database | type | name | description |
| data1 | text | URL | URL link |
| data1 | text | Description | Link description |
Scenario: Create entry (offline)
Given I entered the data activity "Web links" on course "Course 1" as "student1" in the app

View File

@ -1,8 +1,9 @@
@addon_mod_feedback @app @javascript
@addon_mod_feedback @app @javascript @lms_from3.11
Feature: Test feedback navigation
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname |
| teacher1 | Teacher | teacher |
| student01 | Student | 01 |

View File

@ -2,7 +2,8 @@
Feature: Test usage of forum activity with groups in app
Background:
Given the following "courses" exist:
Given the Moodle site is compatible with this feature
And the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "users" exist:
@ -33,6 +34,7 @@ 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 ALL | Disc vis ALL | Disc vis ALL content | All participants |
@lms_from4.1
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
Then I should find "Disc sep G1" in the app
@ -63,6 +65,7 @@ Feature: Test usage of forum activity with groups in app
And I should find "Disc vis ALL" in the app
But I should not find "Disc vis G2" in the app
@lms_from4.1
Scenario: Teacher can see all groups
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

View File

@ -2,7 +2,8 @@
Feature: Test Forum Search
Background:
Given solr is installed
Given the Moodle site is compatible with this feature
And solr is installed
And the following config values are set as admin:
| enableglobalsearch | 1 |
| searchengine | solr |

View File

@ -1,4 +1,4 @@
@addon_mod_quiz @app @javascript
@addon_mod_quiz @app @javascript @lms_from3.11
Feature: View list of attempts in the app
Background:

View File

@ -1,4 +1,4 @@
@addon_mod_quiz @app @javascript @lms_from3.10 @lms_upto3.11
@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

View File

@ -89,12 +89,9 @@ Feature: Attempt a quiz in app
And I press "Next" in the app
And I press "True" in the app
And I press "Next" in the app
And I press "Choose... , frog" in the app
And I press "amphibian" in the app
And I press "Choose... , newt" in the app
And I press "insect" in the app
And I press "Choose... , cat" in the app
And I press "mammal" 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

View File

@ -0,0 +1,277 @@
@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."

View File

@ -1,11 +1,12 @@
@addon_mod_survey @app @javascript
@addon_mod_survey @app @javascript @lms_from4.0
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 following "courses" exist:
Given the Moodle site is compatible with this feature
And the following "courses" exist:
| fullname | shortname |
| Course 1 | C1 |
And the following "users" exist:

View File

@ -19,6 +19,7 @@ Feature: Test basic usage of workshop activity in app
| activity | name | intro | course | idnumber |
| workshop | Test workshop | Workshop description | C1 | workshop |
@lms_from3.11
Scenario: Take a workshop
# Setup phase

View File

@ -1,8 +1,9 @@
@addon_notifications @app @javascript
@addon_notifications @app @javascript @lms_from3.11
Feature: Notifications
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname |
| student1 | First | Student |
| student2 | Second | Student |

View File

@ -1,11 +1,12 @@
@core_comments @app @javascript
@core_comments @app @javascript @lms_from3.11
Feature: Test basic usage of comments in app
In order to participate in the comments while using the mobile app
As a student
I need basic comments functionality to work
Background:
Given the following "users" exist:
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 |

View File

@ -1,128 +0,0 @@
@core_course @app @javascript @lms_upto3.11
Feature: Test basic usage of one course in app
In order to participate in one course while using the mobile app
As a student
I need basic course functionality to work
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 |
| student2 | Student2 | student2 | student2@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 | option | section |
| choice | Choice course 1 | Test choice description | C1 | choice1 | Option 1, Option 2, Option 3 | 1 |
And the following "activities" exist:
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled | section |
| assign | C1 | assign1 | assignment | Test assignment description | 1 | 1 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | assessed | scale[modgrade_type] |
| forum | Test forum name | Test forum | C1 | forum | 0 | 5 | Point |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | section |
| chat | Test chat name | Test chat | C1 | chat | 0 | 2 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | section |
| data | Web links | Useful links | C1 | data1 | 4 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | section |
| lti | Test external name | Test external | C1 | external | 0 | 1 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | section |
| feedback | Test feedback name | Test feedback | C1 | feedback | 0 | 3 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | section |
| glossary | Test glossary | glossary description | C1 | gloss1 | 5 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | section |
| quiz | Quiz 1 | Quiz 1 description | C1 | quiz1 | 2 |
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 | groupmode | section |
| survey | Test survey name | Test survey | C1 | survey | 0 | 1 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode |
| wiki | Test wiki name | Test wiki | C1 | wiki | 0 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | section |
| lesson | Test lesson name | Test lesson | C1 | lesson | 0 | 3 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | section |
| scorm | Test scorm name | Test scorm | C1 | scorm | 0 | 2 |
And the following "activities" exist:
| activity | name | intro | course | idnumber | groupmode | section |
| workshop | Test workshop name | Test workshop | C1 | workshop | 0 | 3 |
Scenario: Self enrol
Given I log in as "teacher1"
And I am on "Course 1" course homepage
And I add "Self enrolment" enrolment method with:
| Custom instance name | Student self enrolment |
And I entered the app as "student2"
When I press "Site home" in the app
And I press "Available courses" in the app
And I press "Course 1" in the app
And I press "Enrol me" in the app
And I press "OK" in the app
And I wait loading to finish in the app
Then the header should be "Course 1" in the app
And I should find "Test forum name" in the app
And I should find "Test wiki name" in the app
And I should find "Choice course 1" in the app
And I should find "assignment" in the app
And I should find "Test external name" in the app
And I should find "Test survey name" in the app
And I should find "Test chat name" in the app
And I should find "Quiz 1" in the app
And I should find "Test scorm name" in the app
And I should find "Test feedback name" in the app
And I should find "Test lesson name" in the app
And I should find "Test workshop name" in the app
And I should not find "Web links" in the app
And I should not find "Test glossary" in the app
Scenario: Guest access
Given I am on the "Course 1" "enrolment methods" page logged in as "teacher1"
And I click on "Enable" "icon" in the "Guest access" "table_row"
And I entered the app as "student2"
When I press "Site home" in the app
And I press "Available courses" in the app
And I press "Course 1" in the app
Then I should find "Course summary" in the app
And I should find "Course" in the app
When I press "View course" "ion-button" in the app
Then the header should be "Course 1" in the app
And I should find "Test forum name" in the app
And I should find "Test wiki name" in the app
And I should find "Choice course 1" in the app
And I should find "assignment" in the app
And I should find "Test survey name" in the app
And I should find "Test chat name" in the app
And I should find "Quiz 1" in the app
And I should find "Test scorm name" in the app
And I should find "Test feedback name" in the app
And I should find "Test lesson name" in the app
And I should find "Test workshop name" in the app
And I should not find "Web links" in the app
And I should not find "Test glossary" in the app

View File

@ -1,4 +1,4 @@
@core_course @app @javascript
@core_course @app @javascript @lms_from4.1
Feature: Test basic usage of one course in app
In order to participate in one course while using the mobile app
As a student
@ -459,7 +459,6 @@ Feature: Test basic usage of one course in app
| \core\event\course_viewed | Course 1 | {"coursesectionnumber":4} |
| \core\event\course_viewed | Course 1 | {"coursesectionnumber":5} |
@lms_from4.0
Scenario: Self enrol
Given I log in as "teacher1"
And I add "Self enrolment" enrolment method in "Course 1" with:

View File

@ -20,7 +20,6 @@ Feature: Test basic usage of guest access course in app
| activity | name | intro | course | idnumber | groupmode |
| wiki | Test wiki name | Test wiki | C1 | wiki | 0 |
@lms_from4.0
Scenario: Guest access without password (student)
Given I am on the "Course 1" "enrolment methods" page logged in as "teacher1"

View File

@ -1,8 +1,9 @@
@core_grades @app @javascript @lms_upto4.1
@core_grades @app @javascript @lms_from3.11 @lms_upto4.1
Feature: Grades navigation
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname |
| student1 | Student | first |
| student2 | Student | second |

View File

@ -1,8 +1,9 @@
@core_grades @app @javascript
@core_grades @app @javascript @lms_from3.11
Feature: Grades navigation
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname |
| student1 | Student | first |
| student2 | Student | second |

View File

@ -1,73 +0,0 @@
@core_grades @app @javascript @lms_upto3.11
Feature: View grades
Background:
Given the following "users" exist:
| username | firstname | lastname |
| student1 | Student | first |
And the following "scales" exist:
| name | scale |
| Scale | Good, Bad |
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 "grade categories" exist:
| fullname | course |
| Category 1 | C1 |
| Category 2 | C1 |
And the following "grade outcomes" exist:
| fullname | shortname | course | scale |
| Outcome | outcome | C1 | Scale |
And the following "grade items" exist:
| gradecategory | itemname | course | grademin | grademax |
| Category 1 | Item 1.1 | C1 | 60 | 80 |
| Category 1 | Item 1.2 | C1 | 10 | 90 |
| Category 2 | Item 2.1 | C1 | 0 | 100 |
And the following "activities" exist:
| gradecategory | name | course | activity | idnumber | grade | gradepass |
| Category 1 | Assignment 1 | C1 | assign | assign1 | 100 | 50 |
| Category 1 | Assignment 2 | C1 | assign | assign2 | 100 | 50 |
And the following "grade items" exist:
| gradecategory | itemname | course | outcome |
| Category 1 | Outcome | C1 | outcome |
And the following "grade grades" exist:
| gradeitem | user | grade |
| Item 1.1 | student1 | 70 |
| Item 1.2 | student1 | 20 |
| Item 2.1 | student1 | 40 |
| Assignment 1 | student1 | 80 |
| Assignment 2 | student1 | 35 |
| Outcome | student1 | 1 |
And the following config values are set as admin:
| enableoutcomes | 1 |
Scenario: View individual grades and the grade report
Given I entered the course "Course 1" as "student1" in the app
When I press "Assignment 1" in the app
And I press "Information" in the app
Then I should find "80" within "Gradebook" "ion-list" in the app
When I press "Close" in the app
And I press the back button in the app
And I press "Assignment 2" in the app
And I press "Information" in the app
Then I should find "35" within "Gradebook" "ion-list" in the app
When I press "Close" in the app
And I press the back button in the app
And I press "Grades" in the app
Then I should find "Category 1" in the app
And I should find "70" within "Item 1.1" "tr" in the app
And I should find "20" within "Item 1.2" "tr" in the app
And I should find "80" within "Assignment 1" "tr" in the app
And I should find "35" within "Assignment 2" "tr" in the app
And I should find "Good" within "Outcome" "tr" in the app
And I should find "205" within "Category 1 total" "tr" in the app
And I should find "Category 2" in the app
And I should find "40" within "Item 2.1" "tr" in the app
And I should find "40" within "Category 2 total" "tr" in the app
And I should find "245" within "Course total" "tr" in the app

View File

@ -2,7 +2,8 @@
Feature: View grades
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname |
| student1 | Student | first |
And the following "scales" exist:

View File

@ -3,7 +3,8 @@ Feature: Test signup in app
I need basic signup functionality to work
Background:
Given the following config values are set as admin:
Given the Moodle site is compatible with this feature
And the following config values are set as admin:
| registerauth | email |
| auth_instructions | These are the authentication instructions. |
| passwordpolicy | 0 |
@ -79,7 +80,7 @@ Feature: Test signup in app
Then I should find "Spain" in the app
And I should find "u1@u1.com" in the app
@lms_from3.10
@lms_from4.1
Scenario: Check password policy in signup
Given the following config values are set as admin:
| passwordpolicy | 1 |
@ -114,6 +115,7 @@ Feature: Test signup in 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
@lms_from3.11
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.
Given the following "custom profile fields" exist:

View File

@ -40,8 +40,9 @@ Feature: It synchronise sites properly
# Check synced
When I press "Synchronise now" "button" in the app
And I wait loading to finish in the app
And I switch network connection to offline
Then I should find "Site synchronisation completed" in the app
When I switch network connection to offline
And I press the back button in the app
And I entered the course "Course 1" in the app
And I press "Sync choice" in the app

View File

@ -2,10 +2,12 @@
Feature: Test basic usage of user features
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username | firstname | lastname | timezone |
| student1 | Student | Student | 99 |
@lms_from4.1
Scenario: Complete missing fields
Given the following "custom profile fields" exist:
| datatype | shortname | name | required | param1 |
@ -54,6 +56,7 @@ Feature: Test basic usage of user features
When I press "Reconnect" in the app
Then I should find "Acceptance test site" in the app
@lms_from4.1
Scenario: View profile
Given the following "custom profile fields" exist:
| datatype | shortname | name | required | param1 |

View File

@ -2,7 +2,8 @@
Feature: It opens files properly.
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username |
| student1 |
And the following "courses" exist:
@ -29,16 +30,12 @@ Feature: It opens files properly.
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 a browser tab with url "^blob:"
Then the app should have opened url "^blob:" with contents "Test resource A rtf.rtf file" once
When I switch to the browser tab opened by the app
Then I should see "Test resource A rtf.rtf file"
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 close the browser tab opened by the app
And I press the back button in the app
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 a browser tab with url "^blob:"
When I switch to the browser tab opened by the app
Then I should see "Test resource A doc.doc file"
Then the app should have opened url "^blob:" with contents "Test resource A doc.doc file" once

View File

@ -2,7 +2,8 @@
Feature: It opens files properly.
Background:
Given the following "users" exist:
Given the Moodle site is compatible with this feature
And the following "users" exist:
| username |
| student1 |
And the following "courses" exist:
@ -12,7 +13,7 @@ Feature: It opens files properly.
| user | course | role |
| student1 | C1 | student |
@lms_from3.10
@lms_from3.11
Scenario: Open a file
Given the following "activities" exist:
| activity | name | intro | display | course | defaultfilename |