[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     And the following "users" exist:
12       | username | firstname | lastname | email |
13       | teacher1 | Teacher | 1 | teacher1@asd.com |
14     And the following "course enrolments" exist:
15       | user | course | role |
16       | teacher1 | C1 | editingteacher |
17     And I log in as "admin"
18     And I follow "Course 1"
19     And I navigate to "Event monitoring rules" node in "Course administration > Reports"
20     And I press "Add a new rule"
21     And I set the following fields to these values:
22       | name                 | New rule course level                             |
23       | plugin               | Core                                              |
24       | eventname            | Course viewed                                     |
25       | id_description       | I want a rule to monitor when a course is viewed. |
26       | frequency            | 1                                                 |
27       | minutes              | 1                                                 |
28       | Notification message | The course was viewed. {modulelink}               |
29     And I press "Save changes"
30     And I navigate to "Event monitoring rules" node in "Site administration > Reports"
31     And I press "Add a new rule"
32     And I set the following fields to these values:
33       | name                 | New rule site level                               |
34       | plugin               | Core                                              |
35       | eventname            | Course viewed                                     |
36       | id_description       | I want a rule to monitor when a course is viewed. |
37       | frequency            | 1                                                 |
38       | minutes              | 1                                                 |
39       | Notification message | The course was viewed. {modulelink}               |
40     And I press "Save changes"
41     And I log out
43   Scenario: Subscribe to a rule on course level
44     Given I log in as "teacher1"
45     And I follow "Course 1"
46     And I navigate to "Event monitoring" node in "My profile settings"
47     And I set the field "Select a course" to "Course 1"
48     When I set the field "Subscribe to rule \"New rule course level\"" to "All events"
49     Then I should see "Subscription successfully created"
50     And "#toolmonitorsubs_r0" "css_element" should exist
52   Scenario: Delete a subscription on course level
53     Given I log in as "teacher1"
54     And I follow "Course 1"
55     And I navigate to "Event monitoring" node in "My profile settings"
56     And I set the field "Select a course" to "Course 1"
57     And I set the field "Subscribe to rule \"New rule course level\"" to "All events"
58     And I should see "Subscription successfully created"
59     When I click on "Delete subscription" "link" in the "New rule course level" "table_row"
60     And I should see "Are you sure you want to delete this subscription for the rule \"New rule course level\"?"
61     And I press "Continue"
62     Then I should see "Subscription successfully removed"
63     And "#toolmonitorsubs_r0" "css_element" should not exist
65   Scenario: Subscribe to a rule on site level
66     Given I log in as "admin"
67     And I navigate to "Event monitoring" node in "My profile settings"
68     And I set the field "Select a course" to "Site"
69     When I set the field "Subscribe to rule \"New rule site level\"" to "All events"
70     Then I should see "Subscription successfully created"
71     And "#toolmonitorsubs_r0" "css_element" should exist
73   Scenario: Delete a subscription on site level
74     Given I log in as "admin"
75     And I navigate to "Event monitoring" node in "My profile settings"
76     And I set the field "Select a course" to "Site"
77     And I set the field "Subscribe to rule \"New rule site level\"" to "All events"
78     And I should see "Subscription successfully created"
79     And "#toolmonitorsubs_r0" "css_element" should exist
80     When I click on "Delete subscription" "link" in the "New rule site level" "table_row"
81     And I should see "Are you sure you want to delete this subscription for the rule \"New rule site level\"?"
82     And I press "Continue"
83     Then I should see "Subscription successfully removed"
84     And "#toolmonitorsubs_r0" "css_element" should not exist
86   Scenario: Receiving notification on site level
87     Given I log in as "admin"
88     And I navigate to "Messaging" node in "My profile settings"
89     And I click on "input[name^=tool_monitor_notification_loggedin]" "css_element"
90     And I press "Update profile"
91     And I am on homepage
92     And I follow "Course 1"
93     And I navigate to "Event monitoring" node in "My profile settings"
94     And I set the field "Select a course" to "Site"
95     And I set the field "Subscribe to rule \"New rule site level\"" to "All events"
96     And I should see "Subscription successfully created"
97     And "#toolmonitorsubs_r0" "css_element" should exist
98     And I am on homepage
99     And I trigger cron
100     And I am on homepage
101     When I navigate to "Messages" node in "My profile"
102     And I follow "Do not reply to this email (1)"
103     Then I should see "The course was viewed."
105   Scenario: Receiving notification on course level
106     Given I log in as "teacher1"
107     And I navigate to "Messaging" node in "My profile settings"
108     And I click on "input[name^=tool_monitor_notification_loggedin]" "css_element"
109     And I press "Update profile"
110     And I am on homepage
111     And I follow "Course 1"
112     And I navigate to "Event monitoring" node in "My profile settings"
113     And I set the field "Select a course" to "Course 1"
114     And I set the field "Subscribe to rule \"New rule course level\"" to "All events"
115     And I should see "Subscription successfully created"
116     And "#toolmonitorsubs_r0" "css_element" should exist
117     And I am on homepage
118     And I follow "Course 1"
119     And I trigger cron
120     And I am on homepage
121     When I navigate to "Messages" node in "My profile"
122     And I follow "Do not reply to this email (1)"
123     Then I should see "The course was viewed."
125   Scenario: Navigating via quick link to rules
126     Given I log in as "admin"
127     When I navigate to "Event monitoring" node in "My profile settings"
128     Then I should see "You can manage rules from the Event monitoring rules page."
129     And I follow "Event monitoring rules"
130     And I should see "Event monitor"
131     And I should see "You can subscribe to rules from the Event monitoring page."
132     And I log out
133     And I log in as "teacher1"
134     And I follow "Course 1"
135     And I navigate to "Event monitoring" node in "My profile settings"
136     And I should see "You can manage rules from the Event monitoring rules page."