diff --git a/calendar/tests/behat/behat_calendar.php b/calendar/tests/behat/behat_calendar.php index 44b11d31e276a..fc53c18233caa 100644 --- a/calendar/tests/behat/behat_calendar.php +++ b/calendar/tests/behat/behat_calendar.php @@ -176,7 +176,23 @@ private function view_the_calendar(string $type, int $day, int $month, int $year * @return void */ public function i_am_viewing_site_calendar() { - $url = new moodle_url('/calendar/view.php', ['view' => 'month']); + $this->i_am_viewing_calendar_in_view('month'); + } + + /** + * Navigate to a specific view in the calendar. + * + * @Given /^I am viewing calendar in "([^"]+)" view$/ + * @param string $view The calendar view ('month', 'day' and 'upcoming') to navigate to. + * @return void + */ + public function i_am_viewing_calendar_in_view(string $view): void { + + if (!in_array($view, ['month', 'day', 'upcoming'])) { + throw new Exception("Invalid calendar view. Allowed values are: 'month', 'day' and 'upcoming'"); + } + + $url = new moodle_url('/calendar/view.php', ['view' => $view]); $this->execute('behat_general::i_visit', [$url]); } } diff --git a/mod/chat/tests/behat/chat_calendar_events.feature b/mod/chat/tests/behat/chat_calendar_events.feature index 164a576709f87..bc5f245b39cb9 100644 --- a/mod/chat/tests/behat/chat_calendar_events.feature +++ b/mod/chat/tests/behat/chat_calendar_events.feature @@ -17,18 +17,19 @@ Feature: Chat calendar entries | teacher1 | C1 | editingteacher | | student1 | C1 | student | - Scenario: Create a chat activity and do not publish the start date to the calendar + Scenario Outline: Create a chat activity with repeated chat times set + # Create an activity with repeated chat times Given the following "activities" exist: - | activity | name | intro | course | idnumber | schedule | - | chat | Test chat name | Test chat description | C1 | chat1 | 0 | + | activity | course | name | schedule | + | chat | C1 | Chat 1 | | And I log in as "teacher1" - When I follow "Calendar" in the user menu - Then I should not see "Test chat name" + # Confirm Chat activity visibility based on schedule + When I am viewing calendar in "upcoming" view + Then I see "Chat 1" - Scenario: Create a chat activity and publish the start date to the calendar - Given the following "activities" exist: - | activity | name | intro | course | idnumber | schedule | - | chat | Test chat name | Test chat description | C1 | chat1 | 1 | - And I log in as "teacher1" - When I follow "Calendar" in the user menu - Then I should see "Test chat name" + Examples: + | scheduleset | chatvisibility | + | 0 | should not | + | 1 | should | + | 2 | should | + | 3 | should | diff --git a/mod/chat/tests/behat/chat_view_past_session.feature b/mod/chat/tests/behat/chat_view_past_session.feature new file mode 100644 index 0000000000000..2b09be78b0e33 --- /dev/null +++ b/mod/chat/tests/behat/chat_view_past_session.feature @@ -0,0 +1,47 @@ +@mod @mod_chat @javascript +Feature: View past chat sessions + In order for students to view past chat sessions + As a teacher + I need to be able to change the mod/chat:readlog permission for students + + Background: + Given the following "users" exist: + | username | firstname | lastname | email | + | teacher1 | Teacher | One | teacher1@example.com | + | student1 | Student | One | student1@example.com | + And the following "course" exist: + | fullname | shortname | + | Course 1 | C1 | + And the following "course enrolments" exist: + | user | course | role | + | teacher1 | C1 | editingteacher | + | student1 | C1 | student | + + Scenario Outline: View past chat sessions + # Display or hide past chat session based on example data + Given the following "activities" exist: + | activity | course | name | studentlogs | + | chat | C1 | Chat 1 | | + And I am on the "Chat 1" "chat activity" page logged in as teacher1 + # Display or hide past chat session by default based on mod/chat:readlog setting + And the following "role capability" exists: + | role | student | + | mod/chat:readlog | | + # Enter chat activity to create a session + And I click on "Enter the chat" "link" + # Close chat window + When I close all opened windows + And I reload the page + # Confirm that past chat sessions is always visible for teacher + Then I should see "Past sessions" + # Confirm past chat sessions visibility for student based on settings + And I am on the "Chat 1" "chat activity" page logged in as student1 + And I see "Past sessions" + + # Regardless of studentlogvalue value if readpermission is allowed, then Past sessions will be visible for students + Examples: + | studentlogvalue | readpermission | sessionvisibility | + | 0 | allow | should | + | 1 | allow | should | + | 0 | prohibit | should not | + | 1 | prohibit | should |