mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
Merge branch 'MDL-65336-master' of git://github.com/aanabit/moodle
This commit is contained in:
commit
68c723efdf
@ -73,6 +73,7 @@ class behat_partial_named_selector extends \Behat\Mink\Selector\PartialNamedSele
|
||||
'xpath_element' => 'xpath_element',
|
||||
'form_row' => 'form_row',
|
||||
'group_message_header' => 'group_message_header',
|
||||
'group_message' => 'group_message',
|
||||
);
|
||||
|
||||
/**
|
||||
@ -96,6 +97,7 @@ class behat_partial_named_selector extends \Behat\Mink\Selector\PartialNamedSele
|
||||
'group_message_tab' => 'group_message_tab',
|
||||
'group_message_list_area' => 'group_message_list_area',
|
||||
'group_message_message_content' => 'group_message_message_content',
|
||||
'icon_container' => 'icon_container',
|
||||
'icon' => 'icon',
|
||||
'link' => 'link',
|
||||
'link_or_button' => 'link_or_button',
|
||||
@ -162,7 +164,7 @@ XPATH
|
||||
.//*[@data-region='message-drawer' and contains(., %locator%)]//div[@data-region='content-message-container']
|
||||
XPATH
|
||||
, 'group_message_header' => <<<XPATH
|
||||
.//*[@data-region='message-drawer']//div[@data-region='header-container' and contains(., %locator%)]
|
||||
.//*[@data-region='message-drawer']//div[@data-region='header-content' and contains(., %locator%)]
|
||||
XPATH
|
||||
, 'group_message_member' => <<<XPATH
|
||||
.//*[@data-region='message-drawer']//div[@data-region='group-info-content-container']
|
||||
@ -178,6 +180,9 @@ XPATH
|
||||
XPATH
|
||||
, 'group_message_message_content' => <<<XPATH
|
||||
.//*[@data-region='message-drawer']//*[@data-region='message' and @data-message-id and contains(., %locator%)]
|
||||
XPATH
|
||||
, 'icon_container' => <<<XPATH
|
||||
.//span[contains(@data-region, concat(%locator%,'-icon-container'))]
|
||||
XPATH
|
||||
, 'icon' => <<<XPATH
|
||||
.//*[contains(concat(' ', normalize-space(@class), ' '), ' icon ') and ( contains(normalize-space(@title), %locator%))]
|
||||
|
@ -213,6 +213,16 @@ class behat_data_generators extends behat_base {
|
||||
'required' => array('user', 'group', 'message'),
|
||||
'switchids' => array('user' => 'userid', 'group' => 'groupid')
|
||||
),
|
||||
'muted group conversations' => array(
|
||||
'datagenerator' => 'mute_group_conversations',
|
||||
'required' => array('user', 'group', 'course'),
|
||||
'switchids' => array('user' => 'userid', 'group' => 'groupid', 'course' => 'courseid')
|
||||
),
|
||||
'muted private conversations' => array(
|
||||
'datagenerator' => 'mute_private_conversations',
|
||||
'required' => array('user', 'contact'),
|
||||
'switchids' => array('user' => 'userid', 'contact' => 'contactid')
|
||||
),
|
||||
'language customisations' => array(
|
||||
'datagenerator' => 'customlang',
|
||||
'required' => array('component', 'stringid', 'value'),
|
||||
@ -1032,4 +1042,42 @@ class behat_data_generators extends behat_base {
|
||||
}
|
||||
\core_message\api::set_favourite_conversation($conversationid, $data['userid']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mute an existing group conversation for user
|
||||
*
|
||||
* @param array $data
|
||||
* @return void
|
||||
*/
|
||||
protected function process_mute_group_conversations(array $data) {
|
||||
if (groups_is_member($data['groupid'], $data['userid'])) {
|
||||
$context = context_course::instance($data['courseid']);
|
||||
$conversation = \core_message\api::get_conversation_by_area(
|
||||
'core_group',
|
||||
'groups',
|
||||
$data['groupid'],
|
||||
$context->id
|
||||
);
|
||||
if ($conversation) {
|
||||
\core_message\api::mute_conversation($data['userid'], $conversation->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mute a private conversation for user
|
||||
*
|
||||
* @param array $data
|
||||
* @return void
|
||||
*/
|
||||
protected function process_mute_private_conversations(array $data) {
|
||||
if (!$conversationid = \core_message\api::get_conversation_between_users([$data['userid'], $data['contactid']])) {
|
||||
$conversation = \core_message\api::create_conversation(
|
||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL,
|
||||
[$data['userid'], $data['contactid']]
|
||||
);
|
||||
$conversationid = $conversation->id;
|
||||
}
|
||||
\core_message\api::mute_conversation($data['userid'], $conversationid);
|
||||
}
|
||||
}
|
||||
|
94
message/tests/behat/mute_conversations.feature
Normal file
94
message/tests/behat/mute_conversations.feature
Normal file
@ -0,0 +1,94 @@
|
||||
@core @core_message @javascript
|
||||
Feature: Mute and unmute conversations
|
||||
In order to manage my conversations
|
||||
As a user
|
||||
I need to be able to mute and unmute conversations
|
||||
|
||||
Background:
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | category | groupmode |
|
||||
| Course 1 | C1 | 0 | 1 |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| student1 | Student | 1 | student1@example.com |
|
||||
| student2 | Student | 2 | student2@example.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| student1 | C1 | student |
|
||||
| student2 | C1 | student |
|
||||
And the following "groups" exist:
|
||||
| name | course | idnumber | enablemessaging |
|
||||
| Group 1 | C1 | G1 | 1 |
|
||||
And the following "group members" exist:
|
||||
| user | group | course |
|
||||
| student1 | G1 | C1 |
|
||||
| student2 | G1 | C1 |
|
||||
And the following config values are set as admin:
|
||||
| messaging | 1 |
|
||||
And the following "private messages" exist:
|
||||
| user | contact | message |
|
||||
| student1 | student2 | Hi! |
|
||||
|
||||
Scenario: Mute a group conversation
|
||||
Given I log in as "student1"
|
||||
When I open messaging
|
||||
And I open the "Group" conversations list
|
||||
Then "Group 1" "group_message" should exist
|
||||
And "muted" "icon_container" in the "Group 1" "group_message" should not be visible
|
||||
And I select "Group 1" conversation in messaging
|
||||
And "muted" "icon_container" in the "Group 1" "group_message_header" should not be visible
|
||||
And I open contact menu
|
||||
And I click on "Mute" "link" in the "[data-region='header-container']" "css_element"
|
||||
And "muted" "icon_container" in the "Group 1" "group_message_header" should be visible
|
||||
And I go back in "view-conversation" message drawer
|
||||
And "muted" "icon_container" in the "Group 1" "group_message" should be visible
|
||||
|
||||
Scenario: Mute a private conversation
|
||||
When I log in as "student1"
|
||||
And I open messaging
|
||||
Then I should see "Private"
|
||||
And I open the "Private" conversations list
|
||||
And I should see "Student 2"
|
||||
And "muted" "icon_container" in the "Student 2" "group_message" should not be visible
|
||||
And I select "Student 2" conversation in messaging
|
||||
And "muted" "icon_container" in the "[data-action='view-contact']" "css_element" should not be visible
|
||||
And I open contact menu
|
||||
And I click on "Mute" "link" in the "[data-region='header-container']" "css_element"
|
||||
And "muted" "icon_container" in the "[data-action='view-contact']" "css_element" should be visible
|
||||
And I go back in "view-conversation" message drawer
|
||||
And "muted" "icon_container" in the "Student 2" "group_message" should be visible
|
||||
|
||||
Scenario: Unmute a group conversation
|
||||
Given the following "muted group conversations" exist:
|
||||
| user | group | course |
|
||||
| student1 | G1 | C1 |
|
||||
When I log in as "student1"
|
||||
And I open messaging
|
||||
And I open the "Group" conversations list
|
||||
Then "Group 1" "group_message" should exist
|
||||
And "muted" "icon_container" in the "Group 1" "group_message" should be visible
|
||||
And I select "Group 1" conversation in messaging
|
||||
And "muted" "icon_container" in the "Group 1" "group_message_header" should be visible
|
||||
And I open contact menu
|
||||
And I click on "Unmute" "link" in the "[data-region='header-container']" "css_element"
|
||||
And "muted" "icon_container" in the "Group 1" "group_message_header" should not be visible
|
||||
And I go back in "view-conversation" message drawer
|
||||
And "muted" "icon_container" in the "Group 1" "group_message" should not be visible
|
||||
|
||||
Scenario: Unmute a private conversation
|
||||
Given the following "muted private conversations" exist:
|
||||
| user | contact |
|
||||
| student1 | student2 |
|
||||
When I log in as "student1"
|
||||
And I open messaging
|
||||
Then I should see "Private"
|
||||
And I open the "Private" conversations list
|
||||
And I should see "Student 2"
|
||||
And "muted" "icon_container" in the "Student 2" "group_message" should be visible
|
||||
And I select "Student 2" conversation in messaging
|
||||
And "muted" "icon_container" in the "[data-action='view-contact']" "css_element" should be visible
|
||||
And I open contact menu
|
||||
And I click on "Unmute" "link" in the "[data-region='header-container']" "css_element"
|
||||
And "muted" "icon_container" in the "[data-action='view-contact']" "css_element" should not be visible
|
||||
And I go back in "view-conversation" message drawer
|
||||
And "muted" "icon_container" in the "Student 2" "group_message" should not be visible
|
Loading…
x
Reference in New Issue
Block a user