mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 17:06:53 +02:00
MDL-64140 core_message: test unread counts with dataprovider in api
The 3 methods used to test this function are superceded by the cases in the dataprovider, so let's remove these and use the provider instead.
This commit is contained in:
parent
b402a163e3
commit
36fabf72c0
1 changed files with 192 additions and 115 deletions
|
@ -5711,14 +5711,14 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
[
|
[
|
||||||
'type' => $typeindividual,
|
'type' => $typeindividual,
|
||||||
'users' => [$user1, $user2],
|
'users' => [$user1, $user2],
|
||||||
'messages' => [$user1, $user2],
|
'messages' => [$user1, $user2, $user2],
|
||||||
'favourites' => [$user1],
|
'favourites' => [$user1],
|
||||||
'enabled' => null // Individual conversations cannot be disabled.
|
'enabled' => null // Individual conversations cannot be disabled.
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
'type' => $typeindividual,
|
'type' => $typeindividual,
|
||||||
'users' => [$user1, $user3],
|
'users' => [$user1, $user3],
|
||||||
'messages' => [$user1, $user1],
|
'messages' => [$user1, $user3, $user1],
|
||||||
'favourites' => [],
|
'favourites' => [],
|
||||||
'enabled' => null // Individual conversations cannot be disabled.
|
'enabled' => null // Individual conversations cannot be disabled.
|
||||||
],
|
],
|
||||||
|
@ -5729,10 +5729,17 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'favourites' => [],
|
'favourites' => [],
|
||||||
'enabled' => true
|
'enabled' => true
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'type' => $typegroup,
|
||||||
|
'users' => [$user2, $user3, $user4],
|
||||||
|
'messages' => [$user2, $user3, $user4],
|
||||||
|
'favourites' => [],
|
||||||
|
'enabled' => true
|
||||||
|
],
|
||||||
[
|
[
|
||||||
'type' => $typegroup,
|
'type' => $typegroup,
|
||||||
'users' => [$user6, $user7],
|
'users' => [$user6, $user7],
|
||||||
'messages' => [$user6, $user7],
|
'messages' => [$user6, $user7, $user7],
|
||||||
'favourites' => [$user6],
|
'favourites' => [$user6],
|
||||||
'enabled' => false
|
'enabled' => false
|
||||||
],
|
],
|
||||||
|
@ -5751,20 +5758,28 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user5],
|
'arguments' => [$user5],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
'No individual conversations, 1 group conversation' => [
|
'No individual conversations, 2 group conversations' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user4],
|
'arguments' => [$user4],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
|
@ -5773,31 +5788,43 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
'1 individual conversation, 1 group conversation' => [
|
'1 individual conversation, 2 group conversations' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user2],
|
'arguments' => [$user2],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
'1 group conversation only' => [
|
'2 group conversations only' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user4],
|
'arguments' => [$user4],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
|
@ -5806,7 +5833,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [0],
|
'deletemessages' => [0],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5815,9 +5846,13 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'All conversation types, delete a message from individual non-favourited, messages remaining' => [
|
'All conversation types, delete a message from individual non-favourited, messages remaining' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [2],
|
'deletemessages' => [3],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5826,9 +5861,13 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'All conversation types, delete all messages from individual favourited, no messages remaining' => [
|
'All conversation types, delete all messages from individual favourited, no messages remaining' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [0, 1],
|
'deletemessages' => [0, 1, 2],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5837,9 +5876,13 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'All conversation types, delete all messages from individual non-favourited, no messages remaining' => [
|
'All conversation types, delete all messages from individual non-favourited, no messages remaining' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [2, 3],
|
'deletemessages' => [3, 4, 5],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5848,31 +5891,43 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'All conversation types, delete all messages from individual favourited, no messages remaining, different user' => [
|
'All conversation types, delete all messages from individual favourited, no messages remaining, different user' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [0, 1],
|
'deletemessages' => [0, 1, 2],
|
||||||
'arguments' => [$user2],
|
'arguments' => [$user2],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
'All conversation types, delete all messages from individual non-favourited, no messages remaining, different user' => [
|
'All conversation types, delete all messages from individual non-favourited, no messages remaining, different user' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [2, 3],
|
'deletemessages' => [3, 4, 5],
|
||||||
'arguments' => [$user3],
|
'arguments' => [$user3],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 2
|
||||||
]],
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
'All conversation types, delete some messages from group non-favourited, messages remaining,' => [
|
'All conversation types, delete some messages from group non-favourited, messages remaining,' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [4, 5],
|
'deletemessages' => [6, 7],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5881,12 +5936,16 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'All conversation types, delete all messages from group non-favourited, no messages remaining,' => [
|
'All conversation types, delete all messages from group non-favourited, no messages remaining,' => [
|
||||||
'conversationConfigs' => $conversations,
|
'conversationConfigs' => $conversations,
|
||||||
'deletemessagesuser' => $user1,
|
'deletemessagesuser' => $user1,
|
||||||
'deletemessages' => [4, 5, 6, 7],
|
'deletemessages' => [6, 7, 8, 9],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
|
]],
|
||||||
'deletedusers' => []
|
'deletedusers' => []
|
||||||
],
|
],
|
||||||
'All conversation types, another user soft deleted' => [
|
'All conversation types, another user soft deleted' => [
|
||||||
|
@ -5894,7 +5953,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5905,7 +5968,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user1],
|
'arguments' => [$user1],
|
||||||
'expected' => ['favourites' => 1, 'types' => [
|
'expectedcounts' => ['favourites' => 1, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 1, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 1,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 1
|
||||||
]],
|
]],
|
||||||
|
@ -5916,7 +5983,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user6],
|
'arguments' => [$user6],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
]],
|
]],
|
||||||
|
@ -5927,7 +5998,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user7],
|
'arguments' => [$user7],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
]],
|
]],
|
||||||
|
@ -5938,7 +6013,11 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
'deletemessagesuser' => null,
|
'deletemessagesuser' => null,
|
||||||
'deletemessages' => [],
|
'deletemessages' => [],
|
||||||
'arguments' => [$user8],
|
'arguments' => [$user8],
|
||||||
'expected' => ['favourites' => 0, 'types' => [
|
'expectedcounts' => ['favourites' => 0, 'types' => [
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
|
]],
|
||||||
|
'expectedunreadcounts' => ['favourites' => 0, 'types' => [
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL => 0,
|
||||||
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP => 0
|
||||||
]],
|
]],
|
||||||
|
@ -5955,7 +6034,8 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
* @param int $deletemessagesuser The user who is deleting the messages
|
* @param int $deletemessagesuser The user who is deleting the messages
|
||||||
* @param array $deletemessages The list of messages to delete (by index)
|
* @param array $deletemessages The list of messages to delete (by index)
|
||||||
* @param array $arguments Arguments for the count conversations function
|
* @param array $arguments Arguments for the count conversations function
|
||||||
* @param array $expected The expected result
|
* @param array $expectedcounts the expected conversation counts
|
||||||
|
* @param array $expectedunreadcounts the expected unread conversation counts
|
||||||
* @param array $deletedusers the array of users to soft delete.
|
* @param array $deletedusers the array of users to soft delete.
|
||||||
*/
|
*/
|
||||||
public function test_get_conversation_counts(
|
public function test_get_conversation_counts(
|
||||||
|
@ -5963,7 +6043,8 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
$deletemessagesuser,
|
$deletemessagesuser,
|
||||||
$deletemessages,
|
$deletemessages,
|
||||||
$arguments,
|
$arguments,
|
||||||
$expected,
|
$expectedcounts,
|
||||||
|
$expectedunreadcounts,
|
||||||
$deletedusers
|
$deletedusers
|
||||||
) {
|
) {
|
||||||
$generator = $this->getDataGenerator();
|
$generator = $this->getDataGenerator();
|
||||||
|
@ -6019,10 +6100,10 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
|
|
||||||
$counts = \core_message\api::get_conversation_counts(...$arguments);
|
$counts = \core_message\api::get_conversation_counts(...$arguments);
|
||||||
|
|
||||||
$this->assertEquals($expected['favourites'], $counts['favourites']);
|
$this->assertEquals($expectedcounts['favourites'], $counts['favourites']);
|
||||||
$this->assertEquals($expected['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL],
|
$this->assertEquals($expectedcounts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL],
|
||||||
$counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
$counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
||||||
$this->assertEquals($expected['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP],
|
$this->assertEquals($expectedcounts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP],
|
||||||
$counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
$counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6056,90 +6137,86 @@ class core_message_api_testcase extends core_message_messagelib_testcase {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test verifying the correctness of unread counts returned.
|
* Test the get_unread_conversation_counts() function.
|
||||||
|
*
|
||||||
|
* @dataProvider test_get_conversation_counts_test_cases()
|
||||||
|
* @param array $conversationconfigs Conversations to create
|
||||||
|
* @param int $deletemessagesuser The user who is deleting the messages
|
||||||
|
* @param array $deletemessages The list of messages to delete (by index)
|
||||||
|
* @param array $arguments Arguments for the count conversations function
|
||||||
|
* @param array $expectedcounts the expected conversation counts
|
||||||
|
* @param array $expectedunreadcounts the expected unread conversation counts
|
||||||
|
* @param array $deletedusers the list of users to soft-delete.
|
||||||
*/
|
*/
|
||||||
public function test_get_unread_conversations_count() {
|
public function test_get_unread_conversation_counts(
|
||||||
// Get a bunch of conversations, some group, some individual and in different states.
|
$conversationconfigs,
|
||||||
list($user1, $user2, $user3, $user4, $ic1, $ic2, $ic3,
|
$deletemessagesuser,
|
||||||
$gc1, $gc2, $gc3, $gc4, $gc5, $gc6) = $this->create_conversation_test_data();
|
$deletemessages,
|
||||||
|
$arguments,
|
||||||
|
$expectedcounts,
|
||||||
|
$expectedunreadcounts,
|
||||||
|
$deletedusers
|
||||||
|
) {
|
||||||
|
$this->resetAfterTest();
|
||||||
|
$generator = $this->getDataGenerator();
|
||||||
|
$users = [
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user(),
|
||||||
|
$generator->create_user()
|
||||||
|
];
|
||||||
|
|
||||||
// Without favourites.
|
$deleteuser = !is_null($deletemessagesuser) ? $users[$deletemessagesuser] : null;
|
||||||
$counts = \core_message\api::get_unread_conversation_counts($user1->id);
|
$this->setUser($users[$arguments[0]]);
|
||||||
$this->assertEquals(0, $counts['favourites']);
|
$arguments[0] = $users[$arguments[0]]->id;
|
||||||
$this->assertEquals(2, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
$systemcontext = \context_system::instance();
|
||||||
$this->assertEquals(2, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
$conversations = [];
|
||||||
|
$messageids = [];
|
||||||
|
|
||||||
// Mark a couple as favourites.
|
foreach ($conversationconfigs as $config) {
|
||||||
\core_message\api::set_favourite_conversation($ic1->id, $user1->id);
|
$conversation = \core_message\api::create_conversation(
|
||||||
\core_message\api::set_favourite_conversation($gc2->id, $user1->id);
|
$config['type'],
|
||||||
|
array_map(function($userindex) use ($users) {
|
||||||
|
return $users[$userindex]->id;
|
||||||
|
}, $config['users']),
|
||||||
|
null,
|
||||||
|
($config['enabled'] ?? true)
|
||||||
|
);
|
||||||
|
|
||||||
$counts = \core_message\api::get_unread_conversation_counts($user1->id);
|
foreach ($config['messages'] as $userfromindex) {
|
||||||
$this->assertEquals(2, $counts['favourites']);
|
$userfrom = $users[$userfromindex];
|
||||||
$this->assertEquals(1, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
$messageids[] = testhelper::send_fake_message_to_conversation($userfrom, $conversation->id);
|
||||||
$this->assertEquals(1, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
}
|
||||||
|
|
||||||
// Mark a conversation as read and confirm it's not included in the unread counts for its respective type.
|
foreach ($config['favourites'] as $userfromindex) {
|
||||||
\core_message\api::mark_all_messages_as_read($user1->id, $ic1->id);
|
$userfrom = $users[$userfromindex];
|
||||||
$counts = \core_message\api::get_unread_conversation_counts($user1->id);
|
$usercontext = \context_user::instance($userfrom->id);
|
||||||
$this->assertEquals(1, $counts['favourites']);
|
$ufservice = \core_favourites\service_factory::get_service_for_user_context($usercontext);
|
||||||
$this->assertEquals(1, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
$ufservice->create_favourite('core_message', 'message_conversations', $conversation->id, $systemcontext);
|
||||||
$this->assertEquals(1, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
$conversations[] = $conversation;
|
||||||
* Test verifying the unread counts are 0 if no conversations exist.
|
}
|
||||||
*/
|
|
||||||
public function test_get_unread_conversations_count_no_conversations() {
|
|
||||||
$user1 = self::getDataGenerator()->create_user();
|
|
||||||
$counts = \core_message\api::get_unread_conversation_counts($user1->id);
|
|
||||||
$this->assertEquals(0, $counts['favourites']);
|
|
||||||
$this->assertEquals(0, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
|
||||||
$this->assertEquals(0, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
foreach ($deletemessages as $messageindex) {
|
||||||
* Test verifying that those linked conversations which have been disabled are excluded from unread counts.
|
\core_message\api::delete_message($deleteuser->id, $messageids[$messageindex]);
|
||||||
*/
|
}
|
||||||
public function test_get_unread_conversations_count_disabled_conversations() {
|
|
||||||
global $DB;
|
|
||||||
|
|
||||||
// Create some users.
|
foreach ($deletedusers as $deleteduser) {
|
||||||
$user1 = self::getDataGenerator()->create_user();
|
delete_user($users[$deleteduser]);
|
||||||
$user2 = self::getDataGenerator()->create_user();
|
}
|
||||||
$user3 = self::getDataGenerator()->create_user();
|
|
||||||
|
|
||||||
$course1 = $this->getDataGenerator()->create_course();
|
$counts = \core_message\api::get_unread_conversation_counts(...$arguments);
|
||||||
|
|
||||||
// Create a group with a linked conversation and a valid image.
|
$this->assertEquals($expectedunreadcounts['favourites'], $counts['favourites']);
|
||||||
$this->setAdminUser();
|
$this->assertEquals($expectedunreadcounts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL],
|
||||||
$this->getDataGenerator()->enrol_user($user1->id, $course1->id);
|
$counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_INDIVIDUAL]);
|
||||||
$this->getDataGenerator()->enrol_user($user2->id, $course1->id);
|
$this->assertEquals($expectedunreadcounts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP],
|
||||||
$this->getDataGenerator()->enrol_user($user3->id, $course1->id);
|
$counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
||||||
$group1 = $this->getDataGenerator()->create_group([
|
|
||||||
'courseid' => $course1->id,
|
|
||||||
'enablemessaging' => 1,
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Add users to group1.
|
|
||||||
$this->getDataGenerator()->create_group_member(array('groupid' => $group1->id, 'userid' => $user1->id));
|
|
||||||
$this->getDataGenerator()->create_group_member(array('groupid' => $group1->id, 'userid' => $user2->id));
|
|
||||||
|
|
||||||
$conversations = \core_message\api::get_conversations($user1->id);
|
|
||||||
$convid = $conversations[0]->id;
|
|
||||||
|
|
||||||
// Send a message to the group conversation as user 2.
|
|
||||||
testhelper::send_fake_message_to_conversation($user2, $convid, 'Hello world!');
|
|
||||||
|
|
||||||
// Verify the unread count is 1.
|
|
||||||
$counts = \core_message\api::get_unread_conversation_counts($user1->id);
|
|
||||||
$this->assertEquals(1, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
|
||||||
|
|
||||||
// Now, disabled the linked conversation.
|
|
||||||
$DB->set_field('message_conversations', 'enabled', false, ['id' => $convid]);
|
|
||||||
|
|
||||||
// Verify the unread count is no longer 1 as the conversation has been excluded.
|
|
||||||
$counts = \core_message\api::get_unread_conversation_counts($user1->id);
|
|
||||||
$this->assertEquals(0, $counts['types'][\core_message\api::MESSAGE_CONVERSATION_TYPE_GROUP]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue