From 2b93e0e5f9535652e51e8323c566dc1b2b4fefff Mon Sep 17 00:00:00 2001 From: Noel De Martin Date: Thu, 25 Nov 2021 13:05:02 +0100 Subject: [PATCH] MOBILE-3926 glossary: Test navigation --- .../tests/behat/app_navigation.feature | 289 ++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 mod/glossary/tests/behat/app_navigation.feature diff --git a/mod/glossary/tests/behat/app_navigation.feature b/mod/glossary/tests/behat/app_navigation.feature new file mode 100644 index 000000000..c3fac4b74 --- /dev/null +++ b/mod/glossary/tests/behat/app_navigation.feature @@ -0,0 +1,289 @@ +@mod @mod_glossary @app @javascript +Feature: Test glossary navigation + + Background: + Given the following "users" exist: + | username | firstname | lastname | + | student1 | First | Student | + | student2 | Second | Student | + 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 | course | idnumber | displayformat | + | glossary | Fruits glossary | C1 | glossary | entrylist | + And the following "mod_glossary > entries" exist: + | glossary | concept | definition | user | + | glossary | Acerola | Acerola is a fruit | student1 | + | glossary | Apple | Apple is a fruit | student2 | + | glossary | Apricots | Apricots are a fruit | student1 | + | glossary | Avocado | Avocado is a fruit | student2 | + | glossary | Banana | Banana is a fruit | student1 | + | glossary | Blackberries | Blackberries is a fruit | student2 | + | glossary | Blackcurrant | Blackcurrant is a fruit | student1 | + | glossary | Blueberries | Blueberries is a fruit | student2 | + | glossary | Breadfruit | Breadfruit is a fruit | student1 | + | glossary | Cantaloupe | Cantaloupe is a fruit | student2 | + | glossary | Carambola | Carambola is a fruit | student1 | + | glossary | Cherimoya | Cherimoya is a fruit | student2 | + | glossary | Cherries | Cherries is a fruit | student1 | + | glossary | Clementine | Clementine is a fruit | student2 | + | glossary | Coconut | Coconut is a fruit | student1 | + | glossary | Cranberries | Cranberries is a fruit | student2 | + | glossary | Date Fruit | Date Fruit is a fruit | student1 | + | glossary | Durian | Durian is a fruit | student2 | + | glossary | Elderberries | Elderberries is a fruit | student1 | + | glossary | Feijoa | Feijoa is a fruit | student2 | + | glossary | Figs | Figs is a fruit | student1 | + | glossary | Gooseberries | Gooseberries are a fruit | student2 | + | glossary | Grapefruit | Grapefruit is a fruit | student1 | + | glossary | Grapes | Grapes are a fruit | student2 | + | glossary | Guava | Guava is a fruit | student1 | + | glossary | Honeydew Melon | Honeydew Melon is a fruit | student2 | + | glossary | Jackfruit | Jackfruit is a fruit | student1 | + | glossary | Java-Plum | Java-Plum is a fruit | student2 | + | glossary | Jujube Fruit | Jujube Fruit is a fruit | student1 | + | glossary | Kiwifruit | Kiwifruit is a fruit | student2 | + | glossary | Kumquat | Kumquat is a fruit | student1 | + | glossary | Lemon | Lemon is a fruit | student2 | + | glossary | lime | lime is a fruit | student1 | + | glossary | Lime | Lime is a fruit | student2 | + | glossary | Longan | Longan is a fruit | student1 | + | glossary | Loquat | Loquat is a fruit | student2 | + | glossary | Lychee | Lychee is a fruit | student1 | + | glossary | Mandarin | Mandarin is a fruit | student2 | + | glossary | Mango | Mango is a fruit | student1 | + | glossary | Mangosteen | Mangosteen is a fruit | student2 | + | glossary | Mulberries | Mulberries are a fruit | student1 | + | glossary | Nectarine | Nectarine is a fruit | student2 | + | glossary | Olives | Olives are a fruit | student1 | + | glossary | Orange | Orange is a fruit | student2 | + | glossary | Papaya | Papaya is a fruit | student1 | + | glossary | Passion Fruit | Passion Fruit is a fruit | student2 | + | glossary | Peaches | Peaches is a fruit | student1 | + | glossary | Pear | Pear is a fruit | student2 | + | glossary | Persimmon | Persimmon is a fruit | student1 | + | glossary | Pitaya | Pitaya is a fruit | student2 | + | glossary | Pineapple | Pineapple is a fruit | student1 | + | glossary | Pitanga | Pitanga is a fruit | student2 | + | glossary | Plantain | Plantain is a fruit | student1 | + | glossary | Plums | Plums are a fruit | student2 | + | glossary | Pomegranate | Pomegranate is a fruit | student1 | + | glossary | Prickly Pear | Prickly Pear is a fruit | student2 | + | glossary | Prunes | Prunes is a fruit | student1 | + | glossary | Pummelo | Pummelo is a fruit | student2 | + | glossary | Quince | Quince is a fruit | student1 | + | glossary | Raspberries | Raspberries are a fruit | student2 | + | glossary | Rhubarb | Rhubarb is a fruit | student1 | + | glossary | Rose-Apple | Rose-Apple is a fruit | student2 | + | glossary | Sapodilla | Sapodilla is a fruit | student1 | + | glossary | Sapote, Mamey | Sapote, Mamey is a fruit | student2 | + | glossary | Soursop | Soursop is a fruit | student1 | + | glossary | Strawberries | Strawberries is a fruit | student2 | + | glossary | Tamarind | Tamarind is a fruit | student2 | + | glossary | Tangerine | Tangerine is a fruit | student1 | + | glossary | Watermelon | Watermelon is a fruit | student2 | + + Scenario: Mobile navigation + Given I enter the course "Course 1" as "student1" in the app + + # Alphabetically + When I press "Fruits glossary" in the app + Then I should find "Acerola" in the app + And I should find "Apple" in the app + But I should not find "Honeydew Melon" in the app + + # Alphabetically — Infinite loading + When I load more items in the app + Then I should find "Honeydew Melon" in the app + + # Alphabetically — Swipe + When I press "Acerola" in the app + Then I should find "Acerola is a fruit" in the app + + When I swipe to the right in the app + Then I should find "Acerola is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Apple is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Apricots are a fruit" in the app + + # By author + When I press the back button in the app + And I scroll to "Acerola" in the app + And I press "Browse entries" in the app + And I press "Group by author" in the app + Then I should find "First Student" in the app + And I should find "Acerola" in the app + And I should find "Apricots" in the app + But I should not find "Second Student" in the app + And I should not find "Apple" in the app + + # By author — Infinite loading + When I load more items in the app + Then I should find "Second Student" in the app + And I should find "Apple" in the app + + # By author — Swipe + When I press "Acerola" in the app + Then I should find "Acerola is a fruit" in the app + + When I swipe to the right in the app + Then I should find "Acerola is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Apricots are a fruit" in the app + + When I swipe to the left in the app + Then I should find "Banana is a fruit" in the app + + # Search + When I press the back button in the app + And I scroll to "Acerola" in the app + And I press "Search" in the app + And I set the field "Search" to "melon" in the app + And I press "Search" "button" near "Clear search" in the app + Then I should find "Honeydew Melon" in the app + And I should find "Watermelon" in the app + But I should not find "Acerola" in the app + + # Search — Swipe + When I press "Honeydew Melon" in the app + Then I should find "Honeydew Melon is a fruit" in the app + + When I swipe to the right in the app + Then I should find "Honeydew Melon is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Watermelon is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Watermelon is a fruit" in the app + + # Offline + When I press the back button in the app + And I press "Clear search" in the app + And I press "Add a new entry" in the app + And I switch offline mode to "true" + And I set the field "Concept" to "Tomato" in the app + And I set the field "Definition" to "Tomato is a fruit" in the app + And I press "Save" in the app + And I press "Add a new entry" in the app + And I set the field "Concept" to "Cashew" in the app + And I set the field "Definition" to "Cashew is a fruit" in the app + And I press "Save" in the app + Then I should find "Entries to be synced" in the app + And I should find "Tomato" in the app + And I should find "Cashew" in the app + + # Offline — Swipe + When I press "Cashew" in the app + Then I should find "Cashew is a fruit" in the app + + When I swipe to the right in the app + Then I should find "Cashew is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Tomato is a fruit" in the app + + When I swipe to the left in the app + Then I should find "Acerola is a fruit" in the app + + Scenario: Tablet navigation + Given I enter the course "Course 1" as "student1" in the app + And I change viewport size to "1200x640" + + # Alphabetically + When I press "Fruits glossary" in the app + Then I should find "Acerola" in the app + And I should find "Apple" in the app + And "Acerola" near "Apple" should be selected in the app + And I should find "Acerola is a fruit" inside the split-view content in the app + But I should not find "Honeydew Melon" in the app + + # Alphabetically — Infinite loading + When I load more items in the app + Then I should find "Honeydew Melon" in the app + + # Alphabetically — Split view + When I press "Apple" in the app + Then "Apple" near "Acerola" should be selected in the app + And I should find "Apple is a fruit" inside the split-view content in the app + + When I press "Honeydew Melon" in the app + Then "Honeydew Melon" near "Guava" should be selected in the app + And I should find "Honeydew Melon is a fruit" inside the split-view content in the app + + # By author + When I press "Apple" in the app + When I scroll to "Apple" in the app + And I press "Browse entries" in the app + And I press "Group by author" in the app + Then I should find "First Student" in the app + And I should find "Acerola" in the app + And I should find "Apricots" in the app + And "Acerola" near "Apricots" should be selected in the app + And I should find "Acerola is a fruit" inside the split-view content in the app + But I should not find "Second Student" in the app + And I should not find "Apple" in the app + + # By author — Infinite loading + When I load more items in the app + Then I should find "Second Student" in the app + And I should find "Apple" in the app + + # By author — Split view + When I press "Apricots" in the app + And "Apricots" near "Acerola" should be selected in the app + And I should find "Apricots are a fruit" inside the split-view content in the app + + When I press "Apple" in the app + And "Apple" near "Persimmon" should be selected in the app + And I should find "Apple is a fruit" inside the split-view content in the app + + # Search + When I press "Search" in the app + And I set the field "Search" to "melon" in the app + And I press "Search" "button" near "Clear search" in the app + Then I should find "Honeydew Melon" in the app + And I should find "Watermelon" in the app + And "Honeydew Melon" near "Watermelon" should be selected in the app + And I should find "Honeydew Melon is a fruit" inside the split-view content in the app + But I should not find "Acerola" in the app + + # Search — Split view + When I press "Watermelon" in the app + Then "Watermelon" near "Honeydew Melon" should be selected in the app + And I should find "Watermelon is a fruit" inside the split-view content in the app + + # Offline + When I press "Clear search" in the app + And I press "Add a new entry" in the app + And I switch offline mode to "true" + And I set the field "Concept" to "Tomato" in the app + And I set the field "Definition" to "Tomato is a fruit" in the app + And I press "Save" in the app + And I set the field "Concept" to "Cashew" in the app + And I set the field "Definition" to "Cashew is a fruit" in the app + And I press "Save" in the app + Then I should find "Entries to be synced" in the app + And I should find "Tomato" in the app + And I should find "Cashew" in the app + + # Offline — Split view + When I press "Cashew" in the app + Then "Cashew" near "Tomato" should be selected in the app + And I should find "Cashew is a fruit" inside the split-view content in the app + + When I press "Tomato" in the app + Then "Tomato" near "Cashew" should be selected in the app + And I should find "Tomato is a fruit" inside the split-view content in the app + + When I press "Acerola" in the app + Then "Acerola" near "Tomato" should be selected in the app + And I should find "Acerola is a fruit" inside the split-view content in the app