MDL-54133 Behat: tests for the course overview block
authorStephen Bourget <steve.bourget@sau19.org>
Sat, 14 May 2016 01:40:34 +0000 (21:40 -0400)
committerStephen Bourget <steve.bourget@sau19.org>
Sat, 14 May 2016 01:40:34 +0000 (21:40 -0400)
blocks/course_overview/tests/behat/block_course_overview.feature [new file with mode: 0644]

diff --git a/blocks/course_overview/tests/behat/block_course_overview.feature b/blocks/course_overview/tests/behat/block_course_overview.feature
new file mode 100644 (file)
index 0000000..2758c82
--- /dev/null
@@ -0,0 +1,162 @@
+@block @block_course_overview
+Feature: View the course overview block on the dashboard and test it's functionality
+  In order to view the course overview block on the dashboard
+  As an admin
+  I can configure the course overview block
+
+  Background:
+    Given the following "users" exist:
+      | username | firstname | lastname | email | idnumber |
+      | student1 | Student | 1 | student1@example.com | S1 |
+      | teacher1 | Teacher | 1 | teacher1@example.com | T1 |
+    And the following "categories" exist:
+      | name        | category | idnumber |
+      | Category 1  | 0        | CAT1     |
+      | Category 2  | CAT1     | CAT2     |
+    And the following "courses" exist:
+      | fullname | shortname | category |
+      | Course 1 | C1        | 0        |
+      | Course 2 | C2        | CAT1     |
+      | Course 3 | C3        | CAT2     |
+
+  Scenario: View the block by a user without any enrolments
+    Given I log in as "student1"
+    Then I should see "No course information to show" in the "Course overview" "block"
+
+  Scenario: View the block by a user with several enrolments
+    Given the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student1 | C2 | student |
+    When I log in as "student1"
+    Then I should see "Course 1" in the "Course overview" "block"
+    And I should see "Course 2" in the "Course overview" "block"
+
+  Scenario: View the block by a user with several enrolments and limit the number of courses.
+    Given the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student1 | C2 | student |
+      | student1 | C3 | student |
+    When I log in as "student1"
+    And I press "Customise this page"
+    And I select "1" from the "Number of courses to display:" singleselect
+    Then I should see "Course 1" in the "Course overview" "block"
+    And I should see "You have 2 hidden courses"
+    And I should not see "Course 2" in the "Course overview" "block"
+    And I should not see "Course 3" in the "Course overview" "block"
+    And I follow "Show all courses"
+    And I should see "Course 1" in the "Course overview" "block"
+    And I should see "Course 2" in the "Course overview" "block"
+    And I should see "Course 3" in the "Course overview" "block"
+
+  Scenario: View the block by a user with several enrolments and an admin set default max courses.
+    Given the following config values are set as admin:
+      | defaultmaxcourses | 2 | block_course_overview |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student1 | C2 | student |
+      | student1 | C3 | student |
+    When I log in as "student1"
+    Then I should see "Course 1" in the "Course overview" "block"
+    And I should see "Course 2" in the "Course overview" "block"
+    And I should see "You have 1 hidden course"
+    And I press "Customise this page"
+    And I select "Always show all" from the "Number of courses to display:" singleselect
+    And I should see "Course 3" in the "Course overview" "block"
+    And I should not see "You have 1 hidden course"
+
+  Scenario: View the block by a user with several enrolments and an admin enforced maximum displayed courses.
+    Given the following config values are set as admin:
+      | defaultmaxcourses      | 2 | block_course_overview |
+      | forcedefaultmaxcourses | 1 | block_course_overview |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student1 | C2 | student |
+      | student1 | C3 | student |
+    When I log in as "student1"
+    Then I should see "Course 1" in the "Course overview" "block"
+    And I should see "Course 2" in the "Course overview" "block"
+    And I should see "You have 1 hidden course"
+    And I press "Customise this page"
+    And I should not see "Always show all"
+
+  Scenario: View the block by a user with the welcome area enabled and messaging disabled.
+    Given the following config values are set as admin:
+      | showwelcomearea | 1 | block_course_overview |
+      | messaging       | 0 |                       |
+    When I log in as "student1"
+    Then I should see "Welcome Student" in the "Course overview" "block"
+    And I should not see "messages" in the "Course overview" "block"
+
+  Scenario: View the block by a user with both the welcome area and messaging enabled.
+    Given the following config values are set as admin:
+      | showwelcomearea | 1 | block_course_overview |
+    When I log in as "student1"
+    Then I should see "Welcome Student" in the "Course overview" "block"
+    And I should see "You have no unread messages" in the "Course overview" "block"
+    And I follow "messages"
+    And I should see "Contact list empty"
+
+  Scenario: View the block by a user with the welcome area and the user having messages.
+    Given the following config values are set as admin:
+      | showwelcomearea | 1 | block_course_overview |
+    And I log in as "student1"
+    And I should see "Welcome Student" in the "Course overview" "block"
+    And I should see "You have no unread messages" in the "Course overview" "block"
+    And I follow "messages"
+    And I send "This is message 1" message to "Teacher 1" user
+    And I send "This is message 2" message to "Teacher 1" user
+    When I log out
+    And I log in as "teacher1"
+    Then I should see "Welcome Teacher" in the "Course overview" "block"
+    And I should see "You have 2 unread messages" in the "Course overview" "block"
+
+  Scenario: View the block by a user with the parent categories displayed.
+    Given the following config values are set as admin:
+      | showcategories | Parent category only | block_course_overview |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student1 | C2 | student |
+      | student1 | C3 | student |
+    When I log in as "student1"
+    Then I should see "Miscellaneous" in the "Course overview" "block"
+    And I should see "Category 1" in the "Course overview" "block"
+    And I should see "Category 2" in the "Course overview" "block"
+    And I should not see "Category 1 / Category 1" in the "Course overview" "block"
+
+  Scenario: View the block by a user with the full categories displayed.
+    Given the following config values are set as admin:
+      | showcategories | 2 | block_course_overview |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+      | student1 | C2 | student |
+      | student1 | C3 | student |
+    When I log in as "student1"
+    Then I should see "Miscellaneous" in the "Course overview" "block"
+    And I should see "Category 1 / Category 2" in the "Course overview" "block"
+
+  @javascript
+  Scenario: View the block by a user with the show children option enabled.
+    Given the following config values are set as admin:
+      | showchildren | 1 | block_course_overview |
+    And the following "course enrolments" exist:
+      | user | course | role |
+      | student1 | C1 | student |
+    And I log in as "admin"
+    And I navigate to "Manage enrol plugins" node in "Site administration > Plugins > Enrolments"
+    And I click on "Enable" "link" in the "Course meta link" "table_row"
+    And I am on site homepage
+    And I follow "Course 2"
+    And I navigate to "Enrolment methods" node in "Users"
+    And I add "Course meta link" enrolment method with:
+      | Link course | C1 |
+    And I log out
+    When I log in as "student1"
+    Then I should see "Course 1" in the "Course overview" "block"
+    And I should see "Course 2" in the "Course overview" "block"
+    And I should see "Includes C1" in the "Course overview" "block"