From 018aecdeb51913d7b975e7d46573bbeced45de35 Mon Sep 17 00:00:00 2001 From: Amaia Anabitarte Date: Tue, 5 Mar 2019 21:43:08 +0100 Subject: [PATCH 1/3] MDL-64669 core_message: Behat tests for send messages --- .../tests/behat/message_send_messages.feature | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 message/tests/behat/message_send_messages.feature diff --git a/message/tests/behat/message_send_messages.feature b/message/tests/behat/message_send_messages.feature new file mode 100644 index 00000000000..4a566b38981 --- /dev/null +++ b/message/tests/behat/message_send_messages.feature @@ -0,0 +1,84 @@ +@core @core_message @javascript +Feature: Message send messages + In order to communicate with fellow users + As a user + I need to be able to send a message + + 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 | + | student1 | G1 | + | student2 | G1 | + And the following config values are set as admin: + | messaging | 1 | + + Scenario: Send a message to a group conversation + Given I log in as "student1" + And I open messaging + And "Group 1" "group_message" should exist + And I select "Group 1" conversation in messaging + When I send "Hi!" message in the message area + Then I should see "Hi!" in the "Group 1" "group_message_conversation" + And I should see "##today##j F##" in the "Group 1" "group_message_conversation" + And I log out + And I log in as "student2" + And I open messaging + And "Group 1" "group_message" should exist + And I select "Group 1" conversation in messaging + And I should see "Hi!" in the "Group 1" "group_message_conversation" + + Scenario: Send a message to a starred conversation + Given I log in as "student1" + When I open messaging + Then "Group 1" "group_message" should exist + And I select "Group 1" conversation in the "group-messages" conversations list + And I open contact menu + And I click on "Star" "link" in the "//div[@data-region='header-container']" "xpath_element" + And I go back in "view-conversation" message drawer + And I open the "Starred" conversations list + And I should see "Group 1" + And I select "Group 1" conversation in the "favourites" conversations list + And I send "Hi!" message in the message area + And I should see "Hi!" in the "Group 1" "group_message_conversation" + And I should see "##today##j F##" in the "Group 1" "group_message_conversation" + And I go back in "view-conversation" message drawer + And I open the "Group" conversations list + And I should not see "Group 1" in the "Group" "group_message_tab" + + Scenario: Send a message to a private conversation via contact tab + Given the following "message contacts" exist: + | user | contact | + | student1 | student2 | + And I log in as "student1" + And I open messaging + And I click on "Contacts" "link" + And I click on "Student 2" "link" in the "//*[@data-section='contacts']" "xpath_element" + When I send "Hi!" message in the message area + Then I should see "Hi!" in the "Student 2" "group_message_conversation" + And I should see "##today##j F##" in the "Student 2" "group_message_conversation" + + Scenario: Try to send a message to a private conversation is not contact but you are allowed to send a message + Given I log in as "student1" + And I open messaging + When I send "Hi!" message to "Student 2" user + Then I should see "Hi!" in the "Student 2" "group_message_conversation" + And I should see "##today##j F##" in the "Student 2" "group_message_conversation" + And I log out + And I log in as "student2" + And I open messaging + And I select "Student 1" conversation in messaging + And I should see "Hi!" in the "Student 1" "group_message_conversation" \ No newline at end of file From 1118af2a3b599bde4ab12bf8d7a22020f66f7e0e Mon Sep 17 00:00:00 2001 From: Amaia Anabitarte Date: Tue, 5 Mar 2019 21:42:32 +0100 Subject: [PATCH 2/3] MDL-64669 core_message: New steps and selectors for messaging --- lib/behat/classes/partial_named_selector.php | 6 +++- message/tests/behat/behat_message.php | 30 +++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/lib/behat/classes/partial_named_selector.php b/lib/behat/classes/partial_named_selector.php index 91757840ec5..26fa673fe89 100644 --- a/lib/behat/classes/partial_named_selector.php +++ b/lib/behat/classes/partial_named_selector.php @@ -89,6 +89,7 @@ class behat_partial_named_selector extends \Behat\Mink\Selector\PartialNamedSele 'file' => 'file', 'filemanager' => 'filemanager', 'group_message' => 'group_message', + 'group_message_conversation' => 'group_message_conversation', 'group_message_header' => 'group_message_header', 'group_message_member' => 'group_message_member', 'group_message_tab' => 'group_message_tab', @@ -154,7 +155,10 @@ XPATH , 'group_message' => << << << << <<execute("behat_general::i_click_on", [get_string('togglemessagemenu', 'core_message'), 'link']); } + /** + * Open the messaging conversation list. + * + * @Given /^I open the "(?P(?:[^"]|\\")*)" conversations list/ + * @param string $tab + */ + public function i_open_the_conversations_list(string $tab) { + $this->execute('behat_general::i_click_on', [ + $this->escape($tab), + 'group_message_tab' + ]); + } + /** * Open the messaging UI. * @@ -153,7 +166,7 @@ class behat_message extends behat_base { array("//textarea[@data-region='send-message-txt']", $this->escape($messagecontent)) ); - $this->execute("behat_forms::press_button", get_string('send', 'message')); + $this->execute("behat_forms::press_button", get_string('sendmessage', 'message')); } /** @@ -204,4 +217,19 @@ class behat_message extends behat_base { ) ); } + + /** + * Select a user in a specific messaging UI conversations list. + * + * @Given /^I select "(?P(?:[^"]|\\")*)" conversation in the "(?P(?:[^"]|\\")*)" conversations list$/ + * @param string $convname + * @param string $listname + */ + public function i_select_conversation_in_the_conversations_list(string $convname, string $listname) { + $xpath = '//*[@data-region="message-drawer"]//div[@data-region="view-overview-'. + $this->escape($listname). + '"]//*[@data-conversation-id]//img[contains(@alt,"'. + $this->escape($convname).'")]'; + $this->execute('behat_general::i_click_on', array($xpath, 'xpath_element')); + } } From a64fdeacd8af39ba84969f67ec6a55910956e2e4 Mon Sep 17 00:00:00 2001 From: Amaia Anabitarte Date: Fri, 5 Apr 2019 23:39:05 +0200 Subject: [PATCH 3/3] MDL-64669 core_message: Waiting for buttons to hide before login out --- message/tests/behat/message_drawer_manage_contacts.feature | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/message/tests/behat/message_drawer_manage_contacts.feature b/message/tests/behat/message_drawer_manage_contacts.feature index 07190be7228..b129e24dbf3 100644 --- a/message/tests/behat/message_drawer_manage_contacts.feature +++ b/message/tests/behat/message_drawer_manage_contacts.feature @@ -31,6 +31,7 @@ Feature: Manage contacts And I open contact menu And I click on "Add to contacts" "link" And I click on "Add" "button" + And I should see "Contact request sent" And I log out And I log in as "student4" Then I should see "2" in the "//*[@data-region='count-container']" "xpath_element" @@ -41,6 +42,7 @@ Feature: Manage contacts And I click on "Student 1 Would like to contact you" "link" Then I should see "Accept and add to contacts" And I click on "Accept and add to contacts" "link_or_button" + And I should not see "Accept and add to contacts" And I log out And I log in as "student1" And I open messaging @@ -54,6 +56,7 @@ Feature: Manage contacts And I open contact menu And I click on "Add to contacts" "link" And I click on "Add" "button" + And I should see "Contact request sent" And I log out And I log in as "student3" Then I should see "1" in the "//*[@data-region='count-container']" "xpath_element" @@ -64,6 +67,7 @@ Feature: Manage contacts And I click on "Student 1 Would like to contact you" "link" Then I should see "Accept and add to contacts" And I click on "Decline" "link_or_button" + And I should not see "Accept and add to contacts" And I open contact menu Then I should see "Add to contacts" in the "//div[@data-region='header-container']" "xpath_element"