e0e7850dc1e9bb73fa3ffc44398f80b76d85578b
[moodle.git] / calendar / tests / behat / calendar.feature
1 @core @core_calendar
2 Feature: Perform basic calendar functionality
3   In order to ensure the calendar works as expected
4   As an admin
5   I need to create calendar data
7   Background:
8     Given the following "users" exist:
9       | username | firstname | lastname | email |
10       | student1 | Student | 1 | student1@example.com |
11       | student2 | Student | 2 | student2@example.com |
12       | student3 | Student | 3 | student3@example.com |
13       | teacher1 | Teacher | 1 | teacher1@example.com |
14     And the following "courses" exist:
15       | fullname | shortname | format |
16       | Course 1 | C1 | topics |
17     And the following "course enrolments" exist:
18       | user | course | role |
19       | student1 | C1 | student |
20       | student3 | C1 | student |
21       | teacher1 | C1 | teacher |
22     And the following "groups" exist:
23       | name | course | idnumber |
24       | Group 1 | C1 | G1 |
25     And the following "group members" exist:
26       | user | group |
27       | student1 | G1 |
28       | teacher1 | G1 |
29     And I log in as "admin"
30     And I am on "Course 1" course homepage with editing mode on
31     And I add the "Calendar" block
32     And I log out
34   @javascript
35   Scenario: Create a site event
36     Given I log in as "admin"
37     And I create a calendar event with form data:
38       | Type of event | site |
39       | Event title | Really awesome event! |
40       | Description | Come join this awesome event, sucka! |
41     And I log out
42     And I log in as "student1"
43     And I am on "Course 1" course homepage
44     And I follow "This month"
45     And I should see "Really awesome event!"
46     And I log out
47     And I log in as "student2"
48     And I follow "This month"
49     And I should see "Really awesome event!"
51   @javascript
52   Scenario: Create a course event
53     Given I log in as "teacher1"
54     And I create a calendar event with form data:
55       | Type of event | course |
56       | Course        | Course 1 |
57       | Event title | Really awesome event! |
58       | Description | Come join this awesome event, sucka! |
59     And I log out
60     And I log in as "student1"
61     When I am on "Course 1" course homepage
62     And I follow "This month"
63     And I click on "Really awesome event!" "link"
64     And "Course 1" "link" should exist in the "Really awesome event!" "dialogue"
65     And I click on "Close" "button"
66     And I log out
67     And I log in as "student2"
68     And I follow "This month"
69     Then I should not see "Really awesome event!"
71   @javascript
72   Scenario: Create a group event
73     Given I log in as "teacher1"
74     And I am on "Course 1" course homepage
75     And I create a calendar event with form data:
76       | Type of event | group |
77       | Group         | Group 1 |
78       | Event title | Really awesome event! |
79       | Description | Come join this awesome event |
80     And I log out
81     And I log in as "student1"
82     When I am on "Course 1" course homepage
83     And I follow "This month"
84     Then I follow "Really awesome event!"
86   @javascript
87   Scenario: Create a user event
88     Given I log in as "teacher1"
89     And I create a calendar event with form data:
90       | Type of event | user |
91       | Event title | Really awesome event! |
92       | Description | Come join this awesome event, sucka! |
93     And I log out
94     And I log in as "student1"
95     When I am on "Course 1" course homepage
96     And I follow "This month"
97     Then I should not see "Really awesome event!"
99   @javascript
100   Scenario: Delete an event
101     Given I log in as "teacher1"
102     And I create a calendar event with form data:
103       | Type of event | user |
104       | Event title | Really awesome event! |
105       | Description | Come join this awesome event, sucka! |
106     And I am on "Course 1" course homepage
107     When I follow "This month"
108     And I click on "Really awesome event!" "link"
109     And I click on "Delete" "button"
110     And I click on "Delete event" "button"
111     And I wait to be redirected
112     Then I should not see "Really awesome event!"
114   @javascript
115   Scenario: Edit an event
116     Given I log in as "teacher1"
117     And I create a calendar event with form data:
118       | Type of event | user |
119       | Event title | Really awesome event! |
120       | Description | Come join this awesome event, sucka! |
121     And I am on "Course 1" course homepage
122     When I follow "This month"
123     And I click on "Really awesome event!" "link"
124     And I click on "Edit" "button"
125     And I set the following fields to these values:
126       | Event title | Mediocre event :( |
127       | Description | Wait, this event isn't that great. |
128     And I press "Save"
129     Then I should see "Mediocre event"
131   @javascript
132   Scenario: Module events editing
133     Given I log in as "admin"
134     And I am on "Course 1" course homepage with editing mode on
135     And the following "activities" exist:
136       | activity | course | idnumber | name        | intro                   | timeopen      | timeclose     |
137       | choice   | C1     | choice1  | Test choice | Test choice description | ##today## | ##today##  |
138     When I follow "This month"
139     Then I should see "Test choice opens"
140     And I should see "Test choice closes"
141     When I click on "Test choice opens" "link"
142     Then "Delete" "button" should not exist
143     And "Edit" "button" should not exist
144     And I should see "Course event"
145     When I click on "Go to activity" "link"
146     And I wait to be redirected
147     Then I should see "Test choice"
148     And I am on "Course 1" course homepage
149     And I follow "This month"
150     When I click on "Test choice closes" "link"
151     Then "Delete" "button" should not exist
152     And "Edit" "button" should not exist
153     And I should see "Course event"
154     When I click on "Go to activity" "link"
155     And I wait to be redirected
156     Then I should see "Test choice"