moodle/calendar/tests/behat/calendar.feature

161 lines
5.9 KiB
Gherkin

@core @core_calendar @javascript
Feature: Perform basic calendar functionality
In order to ensure the calendar works as expected
As an admin
I need to create calendar data
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| student1 | Student | 1 | student1@example.com |
| student2 | Student | 2 | student2@example.com |
| student3 | Student | 3 | student3@example.com |
| teacher1 | Teacher | 1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "course enrolments" exist:
| user | course | role |
| student1 | C1 | student |
| student3 | C1 | student |
| teacher1 | C1 | teacher |
And the following "groups" exist:
| name | course | idnumber |
| Group 1 | C1 | G1 |
And the following "group members" exist:
| user | group |
| student1 | G1 |
| teacher1 | G1 |
Scenario: Create a site event
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add the "Calendar" block
And I create a calendar event with form data:
| Type of event | site |
| Event title | Really awesome event! |
| Description | Come join this awesome event, sucka! |
And I log out
And I log in as "student1"
And I am on "Course 1" course homepage
And I follow "This month"
And I should see "Really awesome event!"
And I log out
And I log in as "student2"
And I follow "This month"
And I should see "Really awesome event!"
And I log out
Scenario: Create a course event
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add the "Calendar" block
And I log out
And I log in as "teacher1"
And I create a calendar event with form data:
| Type of event | course |
| Event title | Really awesome event! |
| Description | Come join this awesome event, sucka! |
And I log out
And I log in as "student1"
And I am on "Course 1" course homepage
And I follow "This month"
And I should see "Really awesome event!"
And I log out
And I log in as "student2"
And I follow "This month"
And I should not see "Really awesome event!"
And I log out
Scenario: Create a group event
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add the "Calendar" block
And I log out
And I log in as "teacher1"
And I create a calendar event with form data:
| Type of event | group |
| Event title | Really awesome event! |
| Description | Come join this awesome event |
And I log out
And I log in as "student1"
And I am on "Course 1" course homepage
And I follow "This month"
And I follow "Really awesome event!"
Scenario: Create a user event
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add the "Calendar" block
And I create a calendar event with form data:
| Type of event | user |
| Event title | Really awesome event! |
| Description | Come join this awesome event, sucka! |
And I log out
And I log in as "student1"
And I am on "Course 1" course homepage
And I follow "This month"
And I should not see "Really awesome event!"
Scenario: Delete an event
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add the "Calendar" block
And I log out
And I log in as "teacher1"
And I create a calendar event with form data:
| Type of event | user |
| Event title | Really awesome event! |
| Description | Come join this awesome event, sucka! |
And I am on "Course 1" course homepage
And I follow "This month"
And I click on "Really awesome event!" "link"
And I click on "Delete" "button"
And I click on "Yes" "button"
And I wait to be redirected
And I should not see "Really awesome event!"
Scenario: Edit an event
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And I add the "Calendar" block
And I create a calendar event with form data:
| Type of event | user |
| Event title | Really awesome event! |
| Description | Come join this awesome event, sucka! |
And I am on "Course 1" course homepage
And I follow "This month"
And I click on "Really awesome event!" "link"
And I click on "Edit" "button"
And I set the following fields to these values:
| Event title | Mediocre event :( |
| Description | Wait, this event isn't that great. |
And I press "Save"
And I should see "Mediocre event"
Scenario: Module events editing
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
And the following "activities" exist:
| activity | course | idnumber | name | intro | timeopen | timeclose |
| choice | C1 | choice1 | Test choice 1 | Test choice description | ##yesterday## | ##tomorrow## |
And I add the "Calendar" block
When I follow "This month"
Then I should see "Choice Test choice 1 open"
And I should see "Choice Test choice 1 close"
When I click on "Choice Test choice 1 open" "link"
Then "Delete" "button" should not exist
And I should see "Open event"
And "Edit" "button" should exist
When I click on "Edit" "button"
And I wait to be redirected
Then I should see "Updating: Choice"
And I am on "Course 1" course homepage
And I follow "This month"
When I click on "Choice Test choice 1 close" "link"
Then "Delete" "button" should not exist
And I should see "Close event"
And "Edit" "button" should exist
When I click on "Edit" "button"
And I wait to be redirected
Then I should see "Updating: Choice"