3381138d5b344c1da2b87ca66d78cc9dcc0c28ff
[moodle.git] / mod / forum / tests / behat / forum_subscriptions_default.feature
1 @mod @mod_forum
2 Feature: A user can control their default discussion subscription settings
3   In order to automatically subscribe to discussions
4   As a user
5   I can choose my default subscription preference
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email                   | autosubscribe |
10       | student1 | Student   | One      | student.one@example.com | 1             |
11       | student2 | Student   | Two      | student.one@example.com | 0             |
12     And the following "courses" exist:
13       | fullname | shortname | category |
14       | Course 1 | C1 | 0 |
15     And the following "course enrolments" exist:
16       | user | course | role |
17       | student1 | C1 | student |
18       | student2 | C1 | student |
19     And I log in as "admin"
20     And I am on "Course 1" course homepage with editing mode on
22   Scenario: Creating a new discussion in an optional forum follows user preferences
23     Given I add a "Forum" to section "1" and I fill the form with:
24       | Forum name        | Test forum name |
25       | Forum type        | Standard forum for general use |
26       | Description       | Test forum description |
27       | Subscription mode | Optional subscription |
28     And I log out
29     And I log in as "student1"
30     And I am on "Course 1" course homepage
31     And I follow "Test forum name"
32     When I click on "Add a new discussion topic" "link"
33     Then "input[name=discussionsubscribe][checked=checked]" "css_element" should exist
34     And I log out
35     And I log in as "student2"
36     And I am on "Course 1" course homepage
37     And I follow "Test forum name"
38     And I click on "Add a new discussion topic" "link"
39     And "input[name=discussionsubscribe]:not([checked=checked])" "css_element" should exist
41   Scenario: Replying to an existing discussion in an optional forum follows user preferences
42     Given I add a "Forum" to section "1" and I fill the form with:
43       | Forum name        | Test forum name |
44       | Forum type        | Standard forum for general use |
45       | Description       | Test forum description |
46       | Subscription mode | Optional subscription |
47     And I add a new discussion to "Test forum name" forum with:
48       | Subject | Test post subject |
49       | Message | Test post message |
50     And I log out
51     And I log in as "student1"
52     And I am on "Course 1" course homepage
53     And I follow "Test forum name"
54     And I follow "Test post subject"
55     When I follow "Reply"
56     Then "input[name=discussionsubscribe][checked=checked]" "css_element" should exist
57     And I log out
58     And I log in as "student2"
59     And I am on "Course 1" course homepage
60     And I follow "Test forum name"
61     And I follow "Test post subject"
62     And I follow "Reply"
63     And "input[name=discussionsubscribe]:not([checked=checked])" "css_element" should exist
65   Scenario: Creating a new discussion in an automatic forum follows forum subscription
66     Given I add a "Forum" to section "1" and I fill the form with:
67       | Forum name        | Test forum name |
68       | Forum type        | Standard forum for general use |
69       | Description       | Test forum description |
70       | Subscription mode | Auto subscription |
71     And I log out
72     And I log in as "student1"
73     And I am on "Course 1" course homepage
74     And I follow "Test forum name"
75     When I click on "Add a new discussion topic" "link"
76     Then "input[name=discussionsubscribe][checked=checked]" "css_element" should exist
77     And I log out
78     And I log in as "student2"
79     And I am on "Course 1" course homepage
80     And I follow "Test forum name"
81     And I click on "Add a new discussion topic" "link"
82     And "input[name=discussionsubscribe][checked=checked]" "css_element" should exist
84   Scenario: Replying to an existing discussion in an automatic forum follows forum subscription
85     Given I add a "Forum" to section "1" and I fill the form with:
86       | Forum name        | Test forum name |
87       | Forum type        | Standard forum for general use |
88       | Description       | Test forum description |
89       | Subscription mode | Optional subscription |
90     And I add a new discussion to "Test forum name" forum with:
91       | Subject | Test post subject |
92       | Message | Test post message |
93     And I log out
94     And I log in as "student1"
95     And I am on "Course 1" course homepage
96     And I follow "Test forum name"
97     And I follow "Test post subject"
98     When I follow "Reply"
99     Then "input[name=discussionsubscribe][checked=checked]" "css_element" should exist
100     And I log out
101     And I log in as "student2"
102     And I am on "Course 1" course homepage
103     And I follow "Test forum name"
104     And I follow "Test post subject"
105     And I follow "Reply"
106     And "input[name=discussionsubscribe]:not([checked=checked])" "css_element" should exist
108   Scenario: Replying to an existing discussion in an automatic forum which has been unsubscribed from follows user preferences
109     Given I add a "Forum" to section "1" and I fill the form with:
110       | Forum name        | Test forum name |
111       | Forum type        | Standard forum for general use |
112       | Description       | Test forum description |
113       | Subscription mode | Auto subscription |
114     And I add a new discussion to "Test forum name" forum with:
115       | Subject | Test post subject |
116       | Message | Test post message |
117     And I log out
118     And I log in as "student1"
119     And I am on "Course 1" course homepage
120     And I follow "Test forum name"
121     And I click on "You are subscribed to this discussion. Click to unsubscribe." "link" in the "Test post subject" "table_row"
122     And I should see "Student One will NOT be notified of new posts in 'Test post subject' of 'Test forum name'"
123     And I follow "Test post subject"
124     When I follow "Reply"
125     And "input[name=discussionsubscribe][checked=checked]" "css_element" should exist
126     And I log out
127     And I log in as "student2"
128     And I am on "Course 1" course homepage
129     And I follow "Test forum name"
130     And I click on "You are subscribed to this discussion. Click to unsubscribe." "link" in the "Test post subject" "table_row"
131     And I should see "Student Two will NOT be notified of new posts in 'Test post subject' of 'Test forum name'"
132     And I follow "Test post subject"
133     And I follow "Reply"
134     And "input[name=discussionsubscribe]:not([checked=checked])" "css_element" should exist