mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 20:42:22 +02:00
MDL-56337 message_popup: add behat tests for notification popover
This commit is contained in:
parent
6a69cda97d
commit
658dbdf7dd
53
message/output/popup/tests/behat/behat_message_popup.php
Normal file
53
message/output/popup/tests/behat/behat_message_popup.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Behat message popup related steps definitions.
|
||||
*
|
||||
* @package message_popup
|
||||
* @category test
|
||||
* @copyright 2016 Ryan Wyllie <ryan@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
|
||||
|
||||
require_once(__DIR__ . '/../../../../../lib/behat/behat_base.php');
|
||||
|
||||
/**
|
||||
* Message popup steps definitions.
|
||||
*
|
||||
* @package message_popup
|
||||
* @category test
|
||||
* @copyright 2016 Ryan Wyllie <ryan@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class behat_message_popup extends behat_base {
|
||||
|
||||
/**
|
||||
* Open the notification popover in the nav bar.
|
||||
*
|
||||
* @Given /^I open the notification popover$/
|
||||
*/
|
||||
public function i_open_the_notification_popover() {
|
||||
$this->execute('behat_general::i_click_on',
|
||||
array("#nav-notification-popover-container [data-region='popover-region-toggle']", 'css_element'));
|
||||
|
||||
$node = $this->get_selected_node('css_element',
|
||||
'#nav-notification-popover-container [data-region="popover-region-content"]');
|
||||
$this->ensure_node_is_visible($node);
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
@message @message_popup
|
||||
Feature: Notification popover preferences
|
||||
In order to modify my notification preferences
|
||||
As a user
|
||||
I can navigate to the preferences page from the popover
|
||||
|
||||
Background:
|
||||
Given the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| user1 | User | 1 | user1@example.com |
|
||||
|
||||
@javascript
|
||||
Scenario: User navigates to preferences page
|
||||
Given I log in as "user1"
|
||||
And I open the notification popover
|
||||
When I follow "Notification preferences"
|
||||
Then I should see "Notification preferences"
|
@ -0,0 +1,73 @@
|
||||
@message @message_popup @javascript
|
||||
Feature: Notification popover unread notifications
|
||||
In order to be kept informed
|
||||
As a user
|
||||
I am notified about relevant events in Moodle
|
||||
|
||||
Background:
|
||||
# This will make sure popup notifications are enabled and create
|
||||
# two assignment notifications. One for the student submitting their
|
||||
# assignment and another for the teacher grading it.
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | category | groupmode |
|
||||
| Course 1 | C1 | 0 | 1 |
|
||||
# Make sure the popup notifications are enabled for assignments.
|
||||
And the following config values are set as admin:
|
||||
| popup_provider_mod_assign_assign_notification_permitted | permitted | message |
|
||||
| message_provider_mod_assign_assign_notification_loggedin | popup | message |
|
||||
| message_provider_mod_assign_assign_notification_loggedoff | popup | message |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@example.com |
|
||||
| student1 | Student | 1 | student1@example.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add a "Assignment" to section "1" and I fill the form with:
|
||||
| Assignment name | Test assignment name |
|
||||
| Description | Submit your online text |
|
||||
| assignsubmission_onlinetext_enabled | 1 |
|
||||
| assignsubmission_file_enabled | 0 |
|
||||
And I log out
|
||||
And I log in as "student1"
|
||||
And I follow "Course 1"
|
||||
And I follow "Test assignment name"
|
||||
And I press "Add submission"
|
||||
# This should generate a notification.
|
||||
And I set the following fields to these values:
|
||||
| Online text | I'm the student first submission |
|
||||
And I press "Save changes"
|
||||
And I log out
|
||||
|
||||
Scenario: Notification popover shows correct unread count
|
||||
When I log in as "student1"
|
||||
# Confirm the popover is saying 1 unread notifications.
|
||||
Then I should see "1" in the "#nav-notification-popover-container [data-region='count-container']" "css_element"
|
||||
# Open the popover.
|
||||
And I open the notification popover
|
||||
# Confirm the submission notification is visible.
|
||||
And I should see "You have submitted your assignment submission for Test assignment name" in the "#nav-notification-popover-container" "css_element"
|
||||
|
||||
Scenario: Clicking a notification marks it as read
|
||||
When I log in as "student1"
|
||||
# Open the popover.
|
||||
And I open the notification popover
|
||||
# Click on the submission notification.
|
||||
And I click on "[aria-label='Unread notification: You have submitted your assignment submission for Test assignment name']" "css_element" in the "#nav-notification-popover-container" "css_element"
|
||||
# Confirm the count element is hidden (i.e. there are no unread notifications).
|
||||
Then "[data-region='count-container']" "css_element" in the "#nav-notification-popover-container" "css_element" should not be visible
|
||||
|
||||
Scenario: Mark all notifications as read
|
||||
When I log in as "student1"
|
||||
# Open the popover.
|
||||
And I open the notification popover
|
||||
# Click the mark all as read button.
|
||||
And I click on "[data-action='mark-all-read']" "css_element" in the "#nav-notification-popover-container" "css_element"
|
||||
# Refresh the page to make sure we send a new request for the unread count.
|
||||
And I reload the page
|
||||
# Confirm the count element is hidden (i.e. there are no unread notifications).
|
||||
Then "[data-region='count-container']" "css_element" in the "#nav-notification-popover-container" "css_element" should not be visible
|
Loading…
x
Reference in New Issue
Block a user