diff --git a/src/addons/competency/tests/behat/navigation.feature b/src/addons/competency/tests/behat/navigation.feature new file mode 100644 index 000000000..f0f5932d1 --- /dev/null +++ b/src/addons/competency/tests/behat/navigation.feature @@ -0,0 +1,467 @@ +@mod @competency @app @javascript +Feature: Test competency navigation + + Background: + Given the following "users" exist: + | username | firstname | lastname | + | student1 | Student | first | + | student2 | Student | second | + | teacher1 | Teacher | first | + And the following "system role assigns" exist: + | user | role | contextlevel | + | teacher1 | editingteacher | System | + And the following "permission overrides" exist: + | capability | permission | role | contextlevel | reference | + | moodle/competency:planview | Allow | editingteacher | System | | + And the following "courses" exist: + | fullname | shortname | + | Course 1 | C1 | + And the following "course enrolments" exist: + | user | course | role | + | student1 | C1 | student | + | student2 | C1 | student | + | teacher1 | C1 | editingteacher | + | admin | C1 | editingteacher | + And the following "scales" exist: + | name | scale | + | Test Scale | Bad, Good, Great | + And the following "core_competency > frameworks" exist: + | shortname | idnumber | scale | + | Cookery | cookery | Test Scale | + | Literacy | literacy | Test Scale | + And the following "core_competency > competencies" exist: + | shortname | idnumber | description | competencyframework | + | Salads | salads | Salads are important | cookery | + | Desserts | desserts | Desserts are important | cookery | + | Cakes | cakes | Cakes are important | cookery | + | Reading | reading | Reading is important | literacy | + | Writing | writing | Writing is important | literacy | + And the following "core_competency > related_competencies" exist: + | competency | relatedcompetency | + | desserts | cakes | + And the following "core_competency > plans" exist: + | name | description | competencies | user | + | Cookery | Cookery is important | salads, desserts, cakes | student1 | + | Literacy | Literacy is important | reading, writing | student1 | + And the following "core_competency > course_competencies" exist: + | course | competency | + | C1 | salads | + | C1 | desserts | + | C1 | cakes | + | C1 | reading | + | C1 | writing | + And the following "core_competency > user_competency" exist: + | competency | user | grade | + | salads | student1 | Good | + | desserts | student1 | Great | + | cakes | student1 | Great | + | reading | student2 | Great | + | writing | student2 | Bad | + And the following "core_competency > user_competency_courses" exist: + | course | competency | user | grade | + | C1 | salads | student1 | Good | + | C1 | desserts | student1 | Great | + | C1 | cakes | student1 | Great | + | C1 | reading | student2 | Great | + | C1 | writing | student2 | Bad | + + Scenario: Mobile navigation (student) + Given I entered the course "Course 1" as "student1" in the app + + # Course competencies + When I press "Competencies" in the app + Then I should find "60%" near "You are proficient in 3 out of 5 competencies in this course" in the app + And I should find "Good" within "salads" "ion-item" in the app + And I should find "Salads are important" in the app + And I should find "Great" within "desserts" "ion-item" in the app + And I should find "Desserts are important" in the app + And I should find "Great" within "cakes" "ion-item" in the app + And I should find "Cakes are important" in the app + And I should find "Reading is important" in the app + And I should find "Writing is important" in the app + But I should not find "Bad" within "reading" "ion-item" in the app + And I should not find "Good" within "reading" "ion-item" in the app + And I should not find "Great" within "reading" "ion-item" in the app + And I should not find "Bad" within "writing" "ion-item" in the app + And I should not find "Good" within "writing" "ion-item" in the app + And I should not find "Great" within "writing" "ion-item" in the app + + # Course competencies details + When I press "Salads" in the app + Then I should find "Salads are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + + # Course competencies details — Swipe + When I swipe to the right in the app + Then I should find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Desserts are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Desserts are important" in the app + + # Course competencies summary + When I press "Desserts" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + # Learning plans + When I press the back button in the app + And I press the back button in the app + And I press the back button in the app + And I press the user menu button in the app + And I press "Learning plans" in the app + Then I should find "Cookery" in the app + And I should find "Literacy" in the app + + # Learning plans details + When I press "Cookery" in the app + Then I should find "Cookery is important" in the app + And I should find "100.0" near "3 out of 3 competencies are proficient" in the app + And I should find "Good" within "Salads" "ion-item" in the app + And I should find "Great" within "Desserts" "ion-item" in the app + And I should find "Great" within "Cakes" "ion-item" in the app + But I should not find "Literacy" in the app + And I should not find "Reading" in the app + And I should not find "Writing" in the app + + # Learning plans details — Swipe + When I swipe to the right in the app + Then I should find "Cookery is important" in the app + + When I swipe to the left in the app + Then I should find "Literacy is important" in the app + And I should find "0.0" near "0 out of 2 competencies are proficient" in the app + And I should find "Reading" in the app + And I should find "Writing" in the app + But I should not find "Bad" in the app + And I should not find "Good" in the app + And I should not find "Great" in the app + And I should not find "Cookery" in the app + + # Learning plans competency details + When I swipe to the right in the app + And I press "Salads" in the app + Then I should find "Salads are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + + # Learning plans competency details — Swipe + When I swipe to the right in the app + Then I should find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Desserts are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Desserts are important" in the app + + # Learning plans competency summary + When I press "Desserts" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + Scenario: Mobile navigation (teacher) + Given I entered the course "Course 1" as "teacher1" in the app + + # Participant competencies + When I press "Participants" in the app + And I press "Student first" in the app + And I press "Competencies" in the app + Then I should find "Student first" in the app + And I should find "Good" within "salads" "ion-item" in the app + And I should find "Salads are important" in the app + And I should find "Great" within "desserts" "ion-item" in the app + And I should find "Desserts are important" in the app + And I should find "Great" within "cakes" "ion-item" in the app + And I should find "Cakes are important" in the app + And I should find "Reading is important" in the app + And I should find "Writing is important" in the app + But I should not find "Bad" within "reading" "ion-item" in the app + And I should not find "Good" within "reading" "ion-item" in the app + And I should not find "Great" within "reading" "ion-item" in the app + And I should not find "Bad" within "writing" "ion-item" in the app + And I should not find "Good" within "writing" "ion-item" in the app + And I should not find "Great" within "writing" "ion-item" in the app + + # Participant competencies detail + When I press "Salads" in the app + Then I should find "Salads are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + + # Participant competencies detail — Swipe + When I swipe to the right in the app + Then I should find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Desserts are important" in the app + And I should find "Student first" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Cakes are important" in the app + And I should find "Student first" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Desserts are important" in the app + + # Participant competencies summary + When I press "Desserts" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + # User learning plans + When I press the back button in the app + And I press the back button in the app + And I press the back button in the app + And I press "Messages" in the app + And I press "Search people and messages" in the app + And I set the field "Search" to "student" in the app + And I press "Search" "button" in the app + And I press "Student first" in the app + And I press "Display options" in the app + And I press "User info" in the app + And I press "Learning plans" in the app + Then I should find "Cookery" in the app + And I should find "Literacy" in the app + + # User learning plans details + When I press "Cookery" in the app + Then I should find "Cookery is important" in the app + And I should find "100.0" near "3 out of 3 competencies are proficient" in the app + And I should find "Student first" in the app + And I should find "Good" within "Salads" "ion-item" in the app + And I should find "Great" within "Desserts" "ion-item" in the app + And I should find "Great" within "Cakes" "ion-item" in the app + But I should not find "Literacy" in the app + And I should not find "Reading" in the app + And I should not find "Writing" in the app + + # User learning plans details — Swipe + When I swipe to the right in the app + Then I should find "Cookery is important" in the app + + When I swipe to the left in the app + Then I should find "Literacy is important" in the app + And I should find "0.0" near "0 out of 2 competencies are proficient" in the app + And I should find "Student first" in the app + And I should find "Reading" in the app + And I should find "Writing" in the app + But I should not find "Bad" in the app + And I should not find "Good" in the app + And I should not find "Great" in the app + And I should not find "Cookery" in the app + + # User learning plans competency details + When I swipe to the right in the app + And I press "Salads" in the app + Then I should find "Salads are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + + # User learning plans competency details — Swipe + When I swipe to the right in the app + Then I should find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Desserts are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Salads are important" in the app + + When I swipe to the left in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Desserts are important" in the app + + # User learning plans competency summary + When I press "Desserts" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + Scenario: Tablet navigation (student) + Given I entered the course "Course 1" as "student1" in the app + And I change viewport size to "1200x640" + + # Course competencies + When I press "Competencies" in the app + Then I should find "60%" near "You are proficient in 3 out of 5 competencies in this course" in the app + And I should find "Good" within "salads" "ion-item" in the app + And I should find "Salads are important" in the app + And I should find "Great" within "desserts" "ion-item" in the app + And I should find "Desserts are important" in the app + And I should find "Great" within "cakes" "ion-item" in the app + And I should find "Cakes are important" in the app + And I should find "Reading is important" in the app + And I should find "Writing is important" in the app + But I should not find "Bad" within "reading" "ion-item" in the app + And I should not find "Good" within "reading" "ion-item" in the app + And I should not find "Great" within "reading" "ion-item" in the app + And I should not find "Bad" within "writing" "ion-item" in the app + And I should not find "Good" within "writing" "ion-item" in the app + And I should not find "Great" within "writing" "ion-item" in the app + + # Course competencies details + When I press "Salads" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + And "Salads" near "Desserts" should be selected in the app + But I should not find "Desserts are important" in the app + + # Course competencies details — Split view + When I press "Cakes" in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + But I should not find "Salads are important" in the app + + # Course competencies summary + When I press "Desserts" near "Cross-referenced competencies" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + # Learning plans + When I press the user menu button in the app + And I press "Learning plans" in the app + Then I should find "Cookery" in the app + And I should find "Literacy" in the app + And I should find "Cookery is important" in the app + And I should find "100.0" near "3 out of 3 competencies are proficient" in the app + And I should find "Good" within "Salads" "ion-item" in the app + And I should find "Great" within "Desserts" "ion-item" in the app + And I should find "Great" within "Cakes" "ion-item" in the app + And "Cookery" near "Literacy" should be selected in the app + But I should not find "Literacy" inside the split-view content in the app + And I should not find "Reading" inside the split-view content in the app + And I should not find "Writing" inside the split-view content in the app + + # Learning plans — Split view + When I press "Literacy" in the app + Then I should find "0.0" near "0 out of 2 competencies are proficient" in the app + And "Literacy" near "Cookery" should be selected in the app + But I should not find "Bad" in the app + And I should not find "Good" in the app + And I should not find "Great" in the app + + # Learning plans competency details + When I press "Cookery" in the app + And I press "Salads" in the app + Then I should find "Salads are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + And "Salads" near "Desserts" should be selected in the app + + # Learning plans competency details — Split view + When I press "Cakes" in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + And "Cakes" near "Salads" should be selected in the app + But I should not find "Cookery is important" in the app + + # Learning plans competency summary + When I press "Desserts" near "Cross-referenced competencies" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + Scenario: Tablet navigation (teacher) + Given I entered the course "Course 1" as "teacher1" in the app + And I change viewport size to "1200x640" + + # Participant competencies + When I press "Participants" in the app + And I press "Student first" in the app + And I press "Competencies" in the app + Then I should find "Student first" in the app + And I should find "Salads are important" in the app + And I should find "Good" within "salads" "ion-item" in the app + And I should find "Great" within "desserts" "ion-item" in the app + And I should find "Great" within "cakes" "ion-item" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + And "Salads" near "Desserts" should be selected in the app + But I should not find "Desserts are important" in the app + And I should not find "Bad" within "reading" "ion-item" in the app + And I should not find "Good" within "reading" "ion-item" in the app + And I should not find "Great" within "reading" "ion-item" in the app + And I should not find "Bad" within "writing" "ion-item" in the app + And I should not find "Good" within "writing" "ion-item" in the app + And I should not find "Great" within "writing" "ion-item" in the app + + # Participant competencies — Swipe + When I press "Cakes" in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + And "Cakes" near "Reading" should be selected in the app + But I should not find "Salads are important" in the app + + # Participant competencies summary + When I press "Desserts" near "Cross-referenced competencies" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app + + # User learning plans + When I press "Messages" in the app + And I press "Search people and messages" in the app + And I set the field "Search" to "student" in the app + And I press "Search" "button" in the app + And I press "Display options" in the app + And I press "User info" in the app + And I press "Learning plans" in the app + Then I should find "Cookery is important" in the app + And I should find "Literacy" in the app + And I should find "100.0" near "3 out of 3 competencies are proficient" in the app + And I should find "Good" within "Salads" "ion-item" in the app + And I should find "Great" within "Desserts" "ion-item" in the app + And I should find "Great" within "Cakes" "ion-item" in the app + And "Cookery" near "Literacy" should be selected in the app + But I should not find "Reading" in the app + And I should not find "Writing" in the app + + # User learning plans — Split view + When I press "Literacy" in the app + Then I should find "0.0" near "0 out of 2 competencies are proficient" in the app + And "Literacy" near "Cookery" should be selected in the app + But I should not find "Bad" in the app + And I should not find "Good" in the app + And I should not find "Great" in the app + + # User learning plans competency details + When I press "Cookery" in the app + And I press "Salads" in the app + Then I should find "Salads are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Good" within "Rating" "ion-item" in the app + And "Salads" near "Desserts" should be selected in the app + + # User learning plans competency details — Split view + When I press "Cakes" in the app + Then I should find "Cakes are important" in the app + And I should find "Yes" within "Proficient" "ion-item" in the app + And I should find "Great" within "Rating" "ion-item" in the app + And "Cakes" near "Salads" should be selected in the app + But I should not find "Cookery is important" in the app + + # User learning plans competency summary + When I press "Desserts" near "Cross-referenced competencies" in the app + Then I should find "Desserts are important" in the app + But I should not find "Cakes" in the app