Skip to content

Commit

Permalink
MDL-29801 core_message: added behat test for deleting messages
Browse files Browse the repository at this point in the history
  • Loading branch information
mdjnelson committed Sep 2, 2015
1 parent 36d29c0 commit 9cf81a1
Showing 1 changed file with 124 additions and 0 deletions.
124 changes: 124 additions & 0 deletions message/tests/behat/delete_messages.feature
@@ -0,0 +1,124 @@
@core @core_message
Feature: Check that messages can be deleted
In order to check a user can delete a message
As a user
I can delete a message

Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| user1 | User | 1 | user1@asd.com |
| user2 | User | 2 | user2@asd.com |
And I log in as "admin"
And I set the following administration settings values:
| forceloginforprofiles | 0 |
And I log out

@javascript
Scenario: Test basic functionality of deleting a message
# Send two messages from User 1 to User 2.
And I log in as "user1"
And I send "Hey bud, what's happening?" message to "User 2" user
And I set the field with xpath "//textarea[@id='id_message']" to "Whoops, forgot to mention that I drank all your beers. Lol."
And I press "Send message"
# Confirm that there is a delete link next to each message.
And "Delete" "link" should exist in the "#message_1" "css_element"
And "Delete" "link" should exist in the "#message_2" "css_element"
# Confirm that there is a confirmation box before deleting, and that when we cancel the messages remain.
And I click on "#message_2" "css_element"
And I click on "Delete" "link" in the "#message_2" "css_element"
And I press "Cancel"
And I should see "Hey bud, what's happening?"
And I should see "Whoops, forgot to mention that I drank all your beers. Lol."
# Confirm we can delete a message and then can no longer see it.
And I click on "#message_2" "css_element"
And I click on "Delete" "link" in the "#message_2" "css_element"
And I press "Delete"
And I should see "Hey bud, what's happening?"
And I should not see "Whoops, forgot to mention that I drank all your beers. Lol."
# Check that when we do a search for the keywords in the message we deleted nothing is returned.
And I follow "Messages" in the user menu
And I set the field "Search people and messages" to "beers"
And I press "Search people and messages"
And I should see "Messages found: 0"
# Check that we can still search the message that we did not delete.
And I follow "Messages" in the user menu
And I set the field "Search people and messages" to "bud"
And I press "Search people and messages"
And I should see "Messages found: 1"
# Check that the message we deleted does not show up on the recent conversation.
And I set the field "Message navigation:" to "Recent conversations"
And I should see "Hey bud, what's happening?"
And I log out
# Log in as User 2 and send two replies.
And I log in as "user2"
And I follow "Messages" in the user menu
And I follow "User 1 (2)"
And I set the field with xpath "//textarea[@id='id_message']" to "Not much brah, just writing a behat test and communicating to myself."
And I press "Send message"
And I set the field with xpath "//textarea[@id='id_message']" to "Oh man, I was looking forward to those tonight!"
And I press "Send message"
# Confirm that we can see all messages.
And I should see "Hey bud, what's happening?"
And I should see "Whoops, forgot to mention that I drank all your beers. Lol."
And I should see "Not much brah, just writing a behat test and communicating to myself."
And I should see "Oh man, I was looking forward to those tonight!"
# Confirm that there is a delete link next to each message.
And "Delete" "link" should exist in the "#message_1" "css_element"
And "Delete" "link" should exist in the "#message_2" "css_element"
And "Delete" "link" should exist in the "#message_3" "css_element"
And "Delete" "link" should exist in the "#message_4" "css_element"
# Now, delete one of the messages that User 1 sent and one by User 2.
And I click on "#message_1" "css_element"
And I click on "Delete" "link" in the "#message_1" "css_element"
And I press "Delete"
And I click on "#message_2" "css_element"
And I click on "Delete" "link" in the "#message_2" "css_element"
And I press "Delete"
# Confirm that the messages are no longer listed.
And I should not see "Hey bud, what's happening?"
And I should see "Whoops, forgot to mention that I drank all your beers. Lol."
And I should not see "Not much brah, just writing a behat test and communicating to myself."
And I should see "Oh man, I was looking forward to those tonight!"
# Check that when we do a search for the keywords in the messages we deleted nothing is returned.
And I follow "Messages" in the user menu
And I set the field "Search people and messages" to "bud"
And I press "Search people and messages"
And I should see "Messages found: 0"
And I set the field "Search people and messages" to "brah"
And I press "Search people and messages"
And I should see "Messages found: 0"
# Check that we can still search the message that we did not delete.
And I follow "Messages" in the user menu
And I set the field "Search people and messages" to "Whoops"
And I press "Search people and messages"
And I should see "Messages found: 1"
And I set the field "Search people and messages" to "tonight"
And I press "Search people and messages"
And I should see "Messages found: 1"
# Check that the messages we deleted do not show up on the recent conversation.
And I set the field "Message navigation:" to "Recent conversations"
And I should see "Oh man, I was looking forward to those tonight!"
And I log out

@javascript
Scenario: Check that we can prevent some users from deleting messages
# Prevent the ability to delete messages.
Given I log in as "admin"
And I set the following system permissions of "Authenticated user" role:
| capability | permission |
| moodle/site:deleteownmessage | Prevent |
# Send a message from the admin to User 1
And I send "Hey there, this is the all-powerful administrator. Obey my commands." message to "User 1" user
# Check the admin is still able to delete messages.
And I click on "#message_1" "css_element"
And I click on "Delete" "link" in the "#message_1" "css_element"
And I press "Delete"
And I should not see "Hey there, this is the all-powerful administrator. Obey my commands."
And I log out
# Check that User 1 is unable to delete the message the admin sent.
And I log in as "user1"
And I follow "Messages" in the user menu
And I follow "Admin User (1)"
And I should see "Hey there, this is the all-powerful administrator. Obey my commands."
And "Delete" "link" should not exist in the "#message_1" "css_element"

0 comments on commit 9cf81a1

Please sign in to comment.