Merge branch 'MDL-59382-master-4' of git://github.com/ryanwyllie/moodle
[moodle.git] / blocks / calendar_month / tests / behat / block_calendar_month.feature
1 @block @block_calendar_month
2 Feature: Enable the calendar block in a course and test it's functionality
3   In order to enable the calendar block in a course
4   As a teacher
5   I can add the calendar block to a course
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email | idnumber |
10       | teacher1 | Teacher | 1 | teacher1@example.com | T1 |
11       | student1 | Student | 1 | student1@example.com | S1 |
12       | student2 | Student | 2 | student2@example.com | S2 |
13     And the following "courses" exist:
14       | fullname | shortname | category |
15       | Course 1 | C1 | 0 |
16     And the following "course enrolments" exist:
17       | user | course | role |
18       | teacher1 | C1 | editingteacher |
19       | student1 | C1 | student |
20       | student2 | C1 | student |
22   Scenario: Add the block to a the course
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 "Calendar" block
26     Then I should see "Events key" in the "Calendar" "block"
28   @javascript
29   Scenario: View a global event in the calendar block
30     Given I log in as "admin"
31     And I create a calendar event with form data:
32       | id_eventtype | Site |
33       | id_name | Site Event |
34     And I log out
35     When I log in as "teacher1"
36     And I am on "Course 1" course homepage with editing mode on
37     And I add the "Calendar" block
38     And I hover over today in the calendar
39     Then I should see "Site Event"
41   @javascript
42   Scenario: Filter site events in the calendar block
43     Given I log in as "admin"
44     And I create a calendar event with form data:
45       | id_eventtype | Site |
46       | id_name | Site Event |
47     And I log out
48     When I log in as "teacher1"
49     And I am on "Course 1" course homepage with editing mode on
50     And I add the "Calendar" block
51     And I create a calendar event with form data:
52       | id_eventtype | Course |
53       | id_name | Course Event |
54     And I am on "Course 1" course homepage
55     And I follow "Hide global events"
56     And I hover over today in the calendar
57     Then I should not see "Site Event"
58     And I should see "Course Event"
60   @javascript
61   Scenario: View a course event in the calendar block
62     Given I log in as "teacher1"
63     And I am on "Course 1" course homepage with editing mode on
64     And I add the "Calendar" block
65     And I create a calendar event with form data:
66       | id_eventtype | Course |
67       | id_name | Course Event |
68     When I am on "Course 1" course homepage
69     And I hover over today in the calendar
70     Then I should see "Course Event"
72   @javascript
73   Scenario: Filter course events in the calendar block
74     Given I log in as "teacher1"
75     And I am on "Course 1" course homepage with editing mode on
76     And I add the "Calendar" block
77     And I create a calendar event with form data:
78       | id_eventtype | Course |
79       | id_name | Course Event |
80     And I am on "Course 1" course homepage
81     And I create a calendar event with form data:
82       | id_eventtype | User |
83       | id_name | User Event |
84     And I am on "Course 1" course homepage
85     And I follow "Hide course events"
86     And I hover over today in the calendar
87     Then I should not see "Course Event"
88     And I should see "User Event"
90   @javascript
91   Scenario: View a user event in the calendar block
92     Given I log in as "teacher1"
93     And I am on "Course 1" course homepage with editing mode on
94     And I add the "Calendar" block
95     And I create a calendar event with form data:
96       | id_eventtype | User |
97       | id_name | User Event |
98     When I am on "Course 1" course homepage
99     And I hover over today in the calendar
100     Then I should see "User Event"
102   @javascript
103   Scenario: Filter user events in the calendar block
104     Given I log in as "teacher1"
105     And I am on "Course 1" course homepage with editing mode on
106     And I add the "Calendar" block
107     And I create a calendar event with form data:
108       | id_eventtype | Course |
109       | id_name | Course Event |
110     And I am on "Course 1" course homepage
111     And I create a calendar event with form data:
112       | id_eventtype | User |
113       | id_name | User Event |
114     When I am on "Course 1" course homepage
115     And I follow "Hide user events"
116     And I hover over today in the calendar
117     Then I should not see "User Event"
118     And I should see "Course Event"
120   @javascript
121   Scenario: View a group event in the calendar block
122     Given the following "groups" exist:
123       | name    | course | idnumber |
124       | Group 1 | C1     | G1       |
125       | Group 2 | C1     | G2       |
126     And the following "group members" exist:
127       | user     | group   |
128       | student1 | G1 |
129       | student2 | G2 |
130     When I log in as "teacher1"
131     And I am on "Course 1" course homepage
132     And I navigate to "Edit settings" node in "Course administration"
133     And I set the following fields to these values:
134       | id_groupmode | Separate groups |
135       | id_groupmodeforce | Yes |
136     And I press "Save and display"
137     And I turn editing mode on
138     And I add the "Calendar" block
139     And I create a calendar event with form data:
140       | id_eventtype | Group |
141       | id_name | Group Event |
142     And I log out
143     Then I log in as "student1"
144     And I am on "Course 1" course homepage
145     And I hover over today in the calendar
146     And I should see "Group Event"
147     And I log out
148     And I log in as "student2"
149     And I am on "Course 1" course homepage
150     And I hover over today in the calendar
151     And I should not see "Group Event"
153   @javascript
154   Scenario: Filter group events in the calendar block
155     Given the following "groups" exist:
156       | name    | course | idnumber |
157       | Group 1 | C1     | G1       |
158       | Group 2 | C1     | G2       |
159     And the following "group members" exist:
160       | user     | group   |
161       | student1 | G1 |
162       | student2 | G2 |
163     When I log in as "teacher1"
164     And I am on "Course 1" course homepage
165     And I navigate to "Edit settings" node in "Course administration"
166     And I set the following fields to these values:
167       | id_groupmode | Separate groups |
168       | id_groupmodeforce | Yes |
169     And I press "Save and display"
170     And I turn editing mode on
171     And I add the "Calendar" block
172     And I create a calendar event with form data:
173       | id_eventtype | Course |
174       | id_name | Course Event 1 |
175     And I am on "Course 1" course homepage
176     And I create a calendar event with form data:
177       | id_eventtype | Group |
178       | id_name | Group Event 1 |
179     And I log out
180     Then I log in as "student1"
181     And I am on "Course 1" course homepage
182     And I follow "Hide group events"
183     And I hover over today in the calendar
184     And I should not see "Group Event 1"
185     And I should see "Course Event 1"