234 lines
10 KiB
Gherkin
234 lines
10 KiB
Gherkin
@mod @mod_glossary @app @javascript
|
|
Feature: Test basic usage of glossary in app
|
|
In order to participate in the glossaries while using the mobile app
|
|
As a student
|
|
I need basic glossary functionality to work
|
|
|
|
Background:
|
|
Given the following "users" exist:
|
|
| username | firstname | lastname | email |
|
|
| teacher1 | Teacher | teacher | teacher1@example.com |
|
|
| teacher2 | Teacher2 | teacher2 | teacher2@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 |
|
|
| teacher2 | C1 | editingteacher |
|
|
| student1 | C1 | student |
|
|
And the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | mainglossary | allowcomments | assessed | scale |
|
|
| glossary | Test glossary | glossary description | C1 | gloss1 | 1 | 1 | 1 | 1 |
|
|
And the following "activities" exist:
|
|
| activity | name | intro | course | idnumber | groupmode |
|
|
| forum | Test forum name | Test forum | C1 | forum | 0 |
|
|
And the following "mod_glossary > categories" exist:
|
|
| glossary | name |
|
|
| gloss1 | The ones I like |
|
|
| gloss1 | All for you |
|
|
And the following "mod_glossary > entries" exist:
|
|
| glossary | concept | definition | user | categories | usedynalink |
|
|
| gloss1 | Eggplant | Sour eggplants | teacher1 | All for you | 0 |
|
|
| gloss1 | Cucumber | Sweet cucumber | student1 | The ones I like | 0 |
|
|
| gloss1 | Potato | To make chips | student1 | The ones I like | 1 |
|
|
| gloss1 | Raddish | Raphanus sativus | student1 | All for you | 1 |
|
|
|
|
Scenario: View a glossary and its terms
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
And I should find "Eggplant" in the app
|
|
And I should find "Cucumber" in the app
|
|
And I should find "Potato" in the app
|
|
|
|
When I press "Potato" in the app
|
|
Then I should find "Potato" in the app
|
|
And I should find "To make chips" in the app
|
|
|
|
Scenario: Navigate to glossary terms by link (auto-linking)
|
|
Given the "glossary" filter is "on"
|
|
And I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
And I should find "Eggplant" in the app
|
|
And I should find "Cucumber" in the app
|
|
And I should find "Potato" in the app
|
|
And I should find "Raddish" in the app
|
|
|
|
When I press the back button in the app
|
|
And I press "Test forum name" in the app
|
|
And I press "Add discussion topic" in the app
|
|
And I set the field "Subject" to "Testing auto-link glossary"
|
|
And I set the field "Message" to "Glossary terms auto-linked: Raddish Potato" in the app
|
|
And I press "Post to forum" in the app
|
|
And I press "Testing auto-link glossary" in the app
|
|
Then I should find "Raddish" in the app
|
|
|
|
When I press "Raddish" in the app
|
|
Then the header should be "Raddish" in the app
|
|
And I should find "Raphanus sativus" in the app
|
|
|
|
When I press the back button in the app
|
|
And I press "Potato" in the app
|
|
Then the header should be "Potato" in the app
|
|
And I should find "To make chips" in the app
|
|
|
|
Scenario: See comments
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
|
|
When I press "Eggplant" in the app
|
|
Then I should find "Comments (0)" in the app
|
|
|
|
# Write comments as a teacher
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "teacher1" in the app
|
|
And I press "Eggplant" in the app
|
|
Then I should find "Comments (0)" in the app
|
|
|
|
When I press "Comments" in the app
|
|
Then I should find "No comments" in the app
|
|
|
|
And I set the field "Add a comment..." to "teacher first comment" in the app
|
|
And I press "Send" in the app
|
|
Then I should find "teacher first comment" in the app
|
|
|
|
And I set the field "Add a comment..." to "teacher second comment" in the app
|
|
And I press "Send" in the app
|
|
Then I should find "teacher first comment" in the app
|
|
And I should find "teacher second comment" in the app
|
|
|
|
# View comments as a student
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
And I press "Eggplant" in the app
|
|
Then I should find "Comments (2)" in the app
|
|
|
|
When I press "Comments" in the app
|
|
And I should find "teacher first comment" in the app
|
|
And I should find "teacher second comment" in the app
|
|
|
|
Scenario: Prefetch
|
|
Given I entered the course "Course 1" as "student1" in the app
|
|
When I press "Course downloads" in the app
|
|
When I press "Download" within "Test glossary" "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 glossary" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
And I should find "Cucumber" in the app
|
|
And I should find "Eggplant" in the app
|
|
And I should find "Potato" in the app
|
|
|
|
When I press "Eggplant" in the app
|
|
Then I should find "Eggplant" in the app
|
|
And I should find "Sour eggplants" in the app
|
|
And I should not see "Comments cannot be retrieved"
|
|
And I should find "Comments (0)" in the app
|
|
|
|
Scenario: Add entries (basic info)
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
And I press "Add a new entry" in the app
|
|
And I set the following fields to these values in the app:
|
|
| Concept | Broccoli |
|
|
| Definition | Brassica oleracea var. italica |
|
|
And I press "Save" in the app
|
|
And I press "Add a new entry" in the app
|
|
And I set the following fields to these values in the app:
|
|
| Concept | Cabbage |
|
|
| Definition | Brassica oleracea var. capitata |
|
|
And I press "Save" in the app
|
|
And I press "Add a new entry" in the app
|
|
And I set the following fields to these values in the app:
|
|
| Concept | Garlic |
|
|
| Definition | Allium sativum |
|
|
And I press "Save" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
And I should find "Cucumber" in the app
|
|
And I should find "Eggplant" in the app
|
|
And I should find "Potato" in the app
|
|
And I should find "Broccoli" in the app
|
|
And I should find "Cabbage" in the app
|
|
And I should find "Garlic" in the app
|
|
|
|
When I press "Garlic" in the app
|
|
Then I should find "Garlic" in the app
|
|
And I should find "Allium sativum" in the app
|
|
|
|
Scenario: Sync
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
And I press "Add a new entry" in the app
|
|
And I switch network connection to offline
|
|
And I set the following fields to these values in the app:
|
|
| Concept | Broccoli |
|
|
| Definition | Brassica oleracea var. italica |
|
|
And I press "Save" in the app
|
|
And I press "Add a new entry" in the app
|
|
And I set the following fields to these values in the app:
|
|
| Concept | Cabbage |
|
|
| Definition | Brassica oleracea var. capitata |
|
|
And I press "Save" in the app
|
|
And I press "Add a new entry" in the app
|
|
And I set the following fields to these values in the app:
|
|
| Concept | Garlic |
|
|
| Definition | Allium sativum |
|
|
And I press "Save" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
And I should find "Cucumber" in the app
|
|
And I should find "Eggplant" in the app
|
|
And I should find "Potato" in the app
|
|
And I should find "Broccoli" in the app
|
|
And I should find "Cabbage" in the app
|
|
And I should find "Garlic" in the app
|
|
And I should find "Entries to be synced" in the app
|
|
And I should find "This Glossary has offline data to be synchronised." in the app
|
|
|
|
When I switch network connection to wifi
|
|
And I press "Information" in the app
|
|
And I press "Synchronise now" in the app
|
|
Then the header should be "Test glossary" in the app
|
|
And I should find "Cucumber" in the app
|
|
And I should find "Eggplant" in the app
|
|
And I should find "Potato" in the app
|
|
And I should find "Broccoli" in the app
|
|
And I should find "Cabbage" in the app
|
|
And I should find "Garlic" in the app
|
|
But I should not see "Entries to be synced"
|
|
And I should not see "This Glossary has offline data to be synchronised."
|
|
|
|
When I press "Garlic" in the app
|
|
Then I should find "Garlic" in the app
|
|
And I should find "Allium sativum" in the app
|
|
|
|
Scenario: Add/view ratings
|
|
# Rate entries as teacher1
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "teacher1" in the app
|
|
And I press "Cucumber" in the app
|
|
Then I should find "Average of ratings: -" in the app
|
|
|
|
When I press "None" in the app
|
|
And I press "1" in the app
|
|
Then I should find "Average of ratings: 1" in the app
|
|
|
|
# Rate entries as teacher2
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "teacher2" in the app
|
|
And I press "Cucumber" in the app
|
|
And I switch network connection to offline
|
|
And I press "None" in the app
|
|
And I press "0" in the app
|
|
Then I should find "Data stored in the device because it couldn't be sent. It will be sent automatically later." in the app
|
|
And I should find "Average of ratings: 1" in the app
|
|
|
|
When I switch network connection to wifi
|
|
And I press the back button in the app
|
|
Then I should find "This Glossary has offline data to be synchronised." in the app
|
|
|
|
When I press "Information" in the app
|
|
And I press "Synchronise now" in the app
|
|
And I press "Cucumber" in the app
|
|
Then I should find "Average of ratings: 0.5" in the app
|
|
|
|
# View ratings as a student
|
|
Given I entered the glossary activity "Test glossary" on course "Course 1" as "student1" in the app
|
|
And I press "Cucumber" in the app
|
|
Then the header should be "Cucumber" in the app
|
|
But I should not see "Average of ratings: 0.5"
|