Commit Graph

141 Commits

Author SHA1 Message Date
Eloy Lafuente (stronk7)
8a14a7bd22 MDL-71036 phpunit: assertContains() now performs strict comparison
The methods assertContains() and assertNotContains() now perform
strict (type and value) comparison, pretty much like assertSame()
does.

A couple of new assertContainsEquals() and assertNotContainsEquals()
methods have been created to provide old (non-strict) behavior, pretty
much like assertEquals() do.

Apart from replacing the calls needing a relaxed comparison to those
new methods, there are also a couple of alternative, about how to
fix this, depending of every case:

- If the test is making any array_values() conversion, then it's better
  to remove that conversion and use assertArrayHasKey(), that is not
  strict.
- Sometimes if may be also possible to, simply, cast the expectation
  to the exact type coming in the array. I've not applied this technique
  to any of the cases in core.

Link: https://github.com/sebastianbergmann/phpunit/issues/3426
2021-03-11 23:04:31 +01:00
David Matamoros
c99a148628 MDL-69411 core_message: Fix return structure for empty result set
Passing a timefrom higher than last message timecreated needs to
return a formatted response so it does not break ws.
2020-11-23 19:25:09 +01:00
Eloy Lafuente (stronk7)
40de097e65 MDL-67673 phpunit: Remove deprecated assertContains() uses on strings
Both assertContains() and assertNotContains() are deprecated in PHPUnit 8
for operations on strings. Also the optional case parameter is. All uses
must be changed to one of:

- assertStringContainsString()
- assertStringContainsStringIgnoringCase()
- assertStringNotContainsString()
- assertStringNotContainsStringIgnoringCase()

More info: https://github.com/sebastianbergmann/phpunit/issues/3422

Regexp to find all uses:

ag 'assert(Not)?Contains\('
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
a293b3aea8 MDL-67673 phpunit: Remove deprecated non-public attribute assertions
With PHPUnit 8 a good number of assertions, all them related with
operations on non-public attributes have been deprecated. And will
be removed with PHPUnit 9.

The main point is that unit tests shouldn't be testing non-public
APIs (good practice) and those assertions were an error originally.

See https://github.com/sebastianbergmann/phpunit/issues/3338 for
the complete list and other details.

When possible (the attributes being checked are public), the change
is simple, just switching to normal assertions.

When the attributes are not public we need to find a workaround
to be able to test the same using public APIs, or use Reflection,
or remove the tests.

For the records, this is the regexp used to find all the cases:

ag '>(assertAttribute|attribute\(|readAttributte|getStaticAttribute| \
    getObjectAttribute)' -G "test.php"
2020-10-21 12:46:00 +02:00
Mathew May
ee94aded30 MDL-63261 messaging: Final 3.6 deprecations 2020-09-07 09:10:46 +08:00
Amaia Anabitarte
23033ff48b MDL-63650 core_message: Final deprecation of mark_all_read_for_user 2019-12-20 11:52:45 +01:00
Juan Leyva
47138d9157 MDL-66244 message: Include group sender images in payload
Android 9 notifications now displays two image icons in conversations.
The group and the sender.
2019-08-28 10:33:59 +01:00
Eloy Lafuente (stronk7)
eaaef6d621 MDL-65093 core_message: remove some "dupe" tests
With the deprecation of can_post_message() in favor of
can_send_message() all the new test_can_send_message_xxx()
were created from the original test_can_post_message_xxx() ones.

So, really we don't need all the old ones. Just ensure that
debugging is being called and done. New tests are already covering
the new method.

Note this is not strictly needed but in practice is allowing
MySQL + PHP 7.3 to stop segfaulting (because of some sort of limit /
overflow happening somewhere else). So this is just a practical
fix to avoid that while all the messaging tests are reorganizaed
@ MDL-63670. There are some good things to fix there.
2019-07-30 12:37:27 +02:00
Mark Nelson
90403c5d9d MDL-65093 core_message: users can't block any user they want
If blocking will have no effect (ie. you are attempting to block
the admin) the 'Block' button will not be shown and instead a
message will be shown explaining why you can not block the user.
2019-07-29 10:39:57 +08:00
Mark Nelson
06d046c1ff MDL-65093 core_message: deprecate can_post_message() 2019-07-29 10:39:57 +08:00
Eloy Lafuente (stronk7)
e867ffd689 Merge branch 'MDL-65344_master' of git://github.com/markn86/moodle 2019-06-05 21:06:15 +02:00
Jake Dallimore
7918a0ea4c MDL-65566 core_message: let get_self_conversation use lazy init too 2019-05-15 18:46:41 +08:00
Jake Dallimore
510ede5698 MDL-65566 core_message: fix bug allowing duplicate unique conversations
Individual and self conversations may exist once only, so we need to
enforce this in the creation method.
2019-05-15 18:46:39 +08:00
Amaia Anabitarte
e4987f0f58 MDL-64993 core_message: fix unit test for non-ordered queries 2019-05-07 17:54:43 +02:00
Andrew Nicols
2daa199351 Merge branch 'MDL-65132-master' of git://github.com/cescobedo/moodle 2019-05-07 16:24:40 +08:00
Jun Pataleta
14b132750b Merge branch 'MDL-65313-master' of https://github.com/snake/moodle 2019-05-07 16:24:37 +08:00
cescobedo
d47e067184 MDL-65132 core_message: Added API to delete message for all users 2019-05-06 09:38:54 +02:00
Jake Dallimore
6421775ad2 MDL-65313 core_message: remove favourites when deleting a conversation
When deleting a conversation for all users (e.g. when deleting a group
which has a conversation), we need to remove any favourites.
2019-05-06 14:01:34 +08:00
Amaia Anabitarte
888a467a78 MDL-64993 core_message: Adding self-conversations to unit tests 2019-05-06 00:47:52 +02:00
Jake Dallimore
3edac09063 MDL-65169 core_message: user search respects profile visibility
Two modes of visibility checking are supported, depending on the value
of the 'messagingallusers' site setting (site-wide messaging):
- If site-wide messaging is enabled, a user may only be returned in
search results if the searching user can view their profile somewhere
(either the site profile or any course profile).
- If site-wide messaging is disabled, a user may only be returned in
search results if the searching user shares a course with them and can
view their course profile in the shared course.
2019-04-30 11:25:46 +08:00
Mark Nelson
57532ad680 MDL-65344 core_message: deprecate get_individual_conversations_between_users() 2019-04-30 10:35:55 +08:00
David Monllaó
b63c0b9079 Merge branch 'MDL-60680-master' of git://github.com/jleyva/moodle 2019-04-25 18:55:45 +02:00
Juan Leyva
2356454f21 MDL-60680 notifications: Include action buttons information 2019-04-25 14:55:57 +02:00
Juan Leyva
36fa0ec900 MDL-60680 notifications: Return custom data in notifications 2019-04-25 14:55:18 +02:00
Sara Arjona
734b198fd3 MDL-64715 message: add support for self conversations
Added new MESSAGE_CONVERSATION_TYPE_SELF type for self-conversations
and upgraded legacy self-conversations to the new type, removing
repeated members in the message_conversation_members table.
Besides, from now, a self-conversation will be created by default for
all the existing users.

All the self-conversations have been also starred and a default message
will be displayed always to explain how to use them.
2019-04-15 20:17:54 +02:00
Sara Arjona
2767426111 MDL-64715 message: avoid duplicate entries when searching messages 2019-04-15 14:29:10 +02:00
Mark Nelson
978f233b8b MDL-64568 core_message: added new method to nuke conversations entirely
This method removes all data in the database related to a
given conversation.
2019-03-13 15:41:53 +08:00
Mark Nelson
00c5924546 MDL-64773 core_message: ensure existing APIs return muted status 2019-03-13 08:55:13 +08:00
Mark Nelson
2687312b29 MDL-64773 core_message: added API to mute/unmute conversations 2019-03-13 08:55:13 +08:00
Bas Brands
442f142522 MDL-64038 core_message: add default group image
add default group image to improve the alignment
of group names in the message drawer group messages section
2018-12-14 14:09:28 +01:00
Mark Nelson
7c8ba89d5e MDL-64307 core_message: do not include disabled conversations in count 2018-12-04 11:48:16 +08:00
Andrew Nicols
1add1cd644 Merge branch 'MDL-64047-master' of https://github.com/snake/moodle 2018-11-27 11:51:48 +08:00
Jake Dallimore
e4088b7582 MDL-64047 core_message: test get_contact_requests() with blocked users 2018-11-27 08:55:35 +08:00
Jake Dallimore
e492a5540d MDL-64047 core_message: contact request count must exclude blocked users 2018-11-27 08:46:25 +08:00
Jake Dallimore
36fabf72c0 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.
2018-11-26 10:54:29 +08:00
Jake Dallimore
7f6f45c460 MDL-64167 core_message: fix counts to exclude 'self' conversations 2018-11-26 08:52:55 +08:00
Jake Dallimore
425f5adcca MDL-64167 core_message: get_conversations() excludes self conversations
The UI can't handle these, so for now, let's not return them.
2018-11-26 08:52:55 +08:00
Damyon Wiese
35889e23b7 Merge branch 'MDL-64180_master' of git://github.com/markn86/moodle 2018-11-23 12:21:13 +08:00
Mark Nelson
720cc99331 MDL-64180 core_message: change stdClass to int for count requests param
This will be used by a new web service and we do not want to fetch
the user unnecessarily in the call.

Also renamed the method for consistency.
2018-11-23 11:34:40 +08:00
Jun Pataleta
252f0e16ea Merge branch 'MDL-64057-master' of https://github.com/snake/moodle 2018-11-23 11:24:58 +08:00
Jake Dallimore
0847aa120c MDL-64057 core_message: return conversations with soft-deleted users
Individual conversations with a soft-deleted user (including messages)
are now displayed in the conversation listing. This brings the behaviour
of individual conversations in line with group conversations, in that
the active user can still view messages.
2018-11-23 11:02:20 +08:00
Jake Dallimore
8e91aaabc9 MDL-64057 core_message: consolidate conversation counts into single call
Counts for types (individual, group) and favourites can be fetched with
a single API call.
2018-11-23 11:02:19 +08:00
Mark Nelson
715c45aac9 MDL-64018 core_message: added api::get_user_contacts
This is to replace api::get_contacts when that gets deprecated.
2018-11-21 11:09:11 +08:00
Andrew Nicols
90a4438139 Merge branch 'MDL-64035-master' of https://github.com/snake/moodle 2018-11-19 15:08:22 +08:00
Andrew Nicols
237786f159 Merge branch 'MDL-63913-master' of https://github.com/snake/moodle 2018-11-19 14:59:39 +08:00
Jake Dallimore
a54115355a MDL-63913 core_message: fix to ensure favourites is exclusive
If a conversation is included in the favourites unread count, it
cannot be included in any other type-based counts.
2018-11-19 13:51:40 +08:00
Jun Pataleta
8699a985bc Merge branch 'MDL-64034-master' of https://github.com/snake/moodle 2018-11-19 12:59:22 +08:00
Jake Dallimore
d2708759d8 MDL-64034 core_message: return conversationid in search_messages() 2018-11-19 10:23:15 +08:00
Jake Dallimore
33022ee1d5 MDL-63913 core_message: add method to get unread conversation counts 2018-11-19 09:48:58 +08:00
Jake Dallimore
18550c0afb MDL-64035 core_message: get_conversations() excludes disabled chats
Linked conversations which have been disabled must be excluded from
the results.
2018-11-16 12:04:24 +08:00