MDL-56299 behat: Popover doesn't work with phantomjs
[moodle.git] / admin / tool / monitor / tests / behat / subscription.feature
1 @javascript @tool @tool_monitor @tool_monitor_subscriptions
2 Feature: tool_monitor_subscriptions
3   In order to monitor events and receive notifications
4   As an user
5   I need to create a new rule, subscribe to it, receive notification and delete subscription
7   Background:
8     Given the following "courses" exist:
9       | fullname | shortname |
10       | Course 1 | C1        |
11       | Course 2 | C2        |
12     And the following "users" exist:
13       | username | firstname | lastname | email |
14       | teacher1 | Teacher | 1 | teacher1@example.com |
15       | teacher2 | Teacher | 2 | teacher2@example.com |
16     And the following "course enrolments" exist:
17       | user | course | role |
18       | teacher1 | C1 | editingteacher |
19       | teacher1 | C2 | teacher |
20       | teacher2 | C1 | teacher |
21       | teacher2 | C2 | editingteacher |
22     And I log in as "admin"
23     And I navigate to "Event monitoring rules" node in "Site administration > Reports"
24     And I click on "Enable" "link"
25     And I am on site homepage
26     And I follow "Course 1"
27     And I navigate to "Event monitoring rules" node in "Course administration > Reports"
28     And I press "Add a new rule"
29     And I set the following fields to these values:
30       | name                 | New rule course level                             |
31       | plugin               | Core                                              |
32       | eventname            | Course viewed                                     |
33       | id_description       | I want a rule to monitor when a course is viewed. |
34       | frequency            | 1                                                 |
35       | minutes              | 1                                                 |
36       | Notification message | The course was viewed. {modulelink}               |
37     And I press "Save changes"
38     And I navigate to "Event monitoring rules" node in "Site administration > Reports"
39     And I press "Add a new rule"
40     And I set the following fields to these values:
41       | name                 | New rule site level                               |
42       | plugin               | Core                                              |
43       | eventname            | Course viewed                                     |
44       | id_description       | I want a rule to monitor when a course is viewed. |
45       | frequency            | 1                                                 |
46       | minutes              | 1                                                 |
47       | Notification message | The course was viewed. {modulelink}               |
48     And I press "Save changes"
49     And I navigate to "Define roles" node in "Site administration > Users > Permissions"
50     And I follow "Non-editing teacher"
51     And I press "Edit"
52     And I click on "tool/monitor:managerules" "checkbox"
53     And I press "Save changes"
54     And I log out
56   Scenario: Subscribe to a rule on course level
57     Given I log in as "teacher1"
58     And I follow "Preferences" in the user menu
59     And I follow "Event monitoring"
60     And I set the field "Select a course" to "Course 1"
61     When I follow "Subscribe to rule \"New rule course level\""
62     Then I should see "Subscription successfully created"
63     And "#toolmonitorsubs_r0" "css_element" should exist
65   Scenario: Delete a subscription on course level
66     Given I log in as "teacher1"
67     And I follow "Preferences" in the user menu
68     And I follow "Event monitoring"
69     And I set the field "Select a course" to "Course 1"
70     And I follow "Subscribe to rule \"New rule course level\""
71     And I should see "Subscription successfully created"
72     When I click on "Delete subscription" "link" in the "New rule course level" "table_row"
73     And I should see "Are you sure you want to delete the subscription to the rule \"New rule course level\"?"
74     And I press "Continue"
75     Then I should see "Subscription successfully removed"
76     And "#toolmonitorsubs_r0" "css_element" should not exist
78   Scenario: Subscribe to a rule on site level
79     Given I log in as "admin"
80     And I follow "Preferences" in the user menu
81     And I follow "Event monitoring"
82     And I set the field "Select a course" to "Acceptance test site"
83     When I follow "Subscribe to rule \"New rule site level\""
84     Then I should see "Subscription successfully created"
85     And "#toolmonitorsubs_r0" "css_element" should exist
87   Scenario: Delete a subscription on site level
88     Given I log in as "admin"
89     And I follow "Preferences" in the user menu
90     And I follow "Event monitoring"
91     And I set the field "Select a course" to "Acceptance test site"
92     And I follow "Subscribe to rule \"New rule site level\""
93     And I should see "Subscription successfully created"
94     And "#toolmonitorsubs_r0" "css_element" should exist
95     When I click on "Delete subscription" "link" in the "New rule site level" "table_row"
96     And I should see "Are you sure you want to delete the subscription to the rule \"New rule site level\"?"
97     And I press "Continue"
98     Then I should see "Subscription successfully removed"
99     And "#toolmonitorsubs_r0" "css_element" should not exist
101   @_bug_phantomjs
102   Scenario: Receiving notification on site level
103     Given I log in as "admin"
104     And I follow "Preferences" in the user menu
105     And I click on "Notification preferences" "link" in the "#page-content" "css_element"
106     And I click on ".preference-state" "css_element" in the "Notifications of rule subscriptions" "table_row"
107     And I wait until the page is ready
108     And I follow "Preferences" in the user menu
109     And I follow "Event monitoring"
110     And I set the field "Select a course" to "Acceptance test site"
111     And I follow "Subscribe to rule \"New rule site level\""
112     And I should see "Subscription successfully created"
113     And "#toolmonitorsubs_r0" "css_element" should exist
114     And I am on site homepage
115     And I trigger cron
116     And I am on site homepage
117     When I click on ".popover-region-notifications" "css_element"
118     And I click on "View more" "link" in the ".popover-region-notifications" "css_element"
119     Then I should see "New rule site level"
120     And I should see "The course was viewed"
122   @_bug_phantomjs
123   Scenario: Receiving notification on course level
124     Given I log in as "teacher1"
125     And I follow "Preferences" in the user menu
126     And I click on "Notification preferences" "link" in the "#page-content" "css_element"
127     And I click on ".preference-state" "css_element" in the "Notifications of rule subscriptions" "table_row"
128     And I wait until the page is ready
129     And I follow "Preferences" in the user menu
130     And I follow "Event monitoring"
131     And I set the field "Select a course" to "Course 1"
132     And I follow "Subscribe to rule \"New rule course level\""
133     And I should see "Subscription successfully created"
134     And "#toolmonitorsubs_r0" "css_element" should exist
135     And I am on site homepage
136     And I follow "Course 1"
137     And I trigger cron
138     And I am on site homepage
139     When I click on ".popover-region-notifications" "css_element"
140     And I click on "View more" "link" in the ".popover-region-notifications" "css_element"
141     Then I should see "New rule course level"
142     And I should see "The course was viewed"
144   Scenario: Navigating via quick link to rules
145     Given I log in as "admin"
146     And I follow "Preferences" in the user menu
147     When I follow "Event monitoring"
148     And I set the field "Select a course" to "Course 1"
149     Then I should see "You can manage rules from the Event monitoring rules page."
150     And I follow "Event monitoring rules"
151     And I should see "You can subscribe to rules from the Event monitoring page."
152     And I log out
153     And I log in as "teacher1"
154     And I follow "Preferences" in the user menu
155     And I follow "Event monitoring"
156     And I set the field "Select a course" to "Course 1"
157     And I should see "You can manage rules from the Event monitoring rules page."
158     And I follow "Event monitoring rules"
159     And I should see "You can subscribe to rules from the Event monitoring page."
160     And I click on "//a[text()='Event monitoring']" "xpath_element"
161     And the field "courseid" matches value "Course 1"
162     And I follow "Preferences" in the user menu
163     And I follow "Event monitoring"
164     And I should not see "You can manage rules from the Event monitoring rules page."
165     And I log out
166     And I log in as "teacher2"
167     And I follow "Preferences" in the user menu
168     And I follow "Event monitoring"
169     And I set the field "Select a course" to "Course 1"
170     And I should not see "You can manage rules the from the Event monitoring rules page."
172   Scenario: No manage rules link when user does not have permission
173     Given I log in as "admin"
174     And I set the following system permissions of "Non-editing teacher" role:
175       | tool/monitor:managerules | Prohibit |
176     And I log out
177     And I log in as "teacher1"
178     And I follow "Preferences" in the user menu
179     And I follow "Event monitoring"
180     When I set the field "Select a course" to "Course 1"
181     Then I should see "You can manage rules from the Event monitoring rules page."
182     And I set the field "Select a course" to "Course 2"
183     And I should not see "You can manage rules from the Event monitoring rules page."
184     And I log out
185     And I log in as "teacher2"
186     And I follow "Preferences" in the user menu
187     And I follow "Event monitoring"
188     And I set the field "Select a course" to "Course 1"
189     And I should not see "You can manage rules from the Event monitoring rules page."
190     And I set the field "Select a course" to "Course 2"
191     And I should see "You can manage rules from the Event monitoring rules page."