MDL-6074 blocks: Hide user in online users block
[moodle.git] / blocks / online_users / tests / behat / block_online_users_course.feature
1 @block @block_online_users
2 Feature: The online users block allow you to see who is currently online
3   In order to enable the online users block on an course page
4   As a teacher
5   I can add the online users block to a course page
7   Background:
8     Given the following "courses" exist:
9       | fullname | shortname | category |
10       | Course 1 | C1        | 0        |
11     And the following "users" exist:
12       | username | firstname | lastname | email                |
13       | teacher1 | Teacher   | 1        | teacher1@example.com |
14       | student1 | Student   | 1        | student1@example.com |
15       | student2 | Student   | 2        | student2@example.com |
17     And the following "course enrolments" exist:
18       | user | course | role           |
19       | teacher1 | C1 | editingteacher |
20       | student1 | C1 | student        |
22   Scenario: Add the online users on course page and see myself
23     Given I log in as "teacher1"
24     And I am on "Course 1" course homepage with editing mode on
25     When I add the "Online users" block
26     Then I should see "Teacher 1" in the "Online users" "block"
27     And I should see "1 online user" in the "Online users" "block"
29   Scenario: Add the online users on course page and see other logged in users
30     Given I log in as "teacher1"
31     And I am on "Course 1" course homepage with editing mode on
32     And I add the "Online users" block
33     And I log out
34     And I log in as "student2"
35     And I log out
36     When I log in as "student1"
37     And I am on "Course 1" course homepage
38     Then I should see "Teacher 1" in the "Online users" "block"
39     And I should see "Student 1" in the "Online users" "block"
40     And I should not see "Student 2" in the "Online users" "block"
41     And I should see "2 online users" in the "Online users" "block"
43   @javascript
44   Scenario: Hide/show user's online status from/to other users in the online users block on course page
45     Given I log in as "teacher1"
46     And I am on "Course 1" course homepage with editing mode on
47     And I add the "Online users" block
48     And I log out
49     When I log in as "student1"
50     And I am on "Course 1" course homepage
51     Then "Hide" "icon" should exist in the "#change-user-visibility" "css_element"
52     When I click on "#change-user-visibility" "css_element"
53     And I wait "1" seconds
54     Then "Show" "icon" should exist in the "#change-user-visibility" "css_element"
55     And I log out
56     When I log in as "teacher1"
57     And I am on "Course 1" course homepage
58     Then I should see "1 online user" in the "Online users" "block"
59     And I should see "Teacher 1" in the "Online users" "block"
60     And I should not see "Student 1" in the "Online users" "block"
61     And I log out
62     When I log in as "student1"
63     And I am on "Course 1" course homepage
64     Then "Show" "icon" should exist in the "#change-user-visibility" "css_element"
65     When I click on "#change-user-visibility" "css_element"
66     And I wait "1" seconds
67     Then "Hide" "icon" should exist in the "#change-user-visibility" "css_element"
68     And I log out
69     When I log in as "teacher1"
70     And I am on "Course 1" course homepage
71     Then I should see "2 online users" in the "Online users" "block"
72     And I should see "Teacher 1" in the "Online users" "block"
73     And I should see "Student 1" in the "Online users" "block"