Commit Graph

395 Commits

Author SHA1 Message Date
Ferran Recio 8da4872464 MDL-67782 message: fix messages max length 2021-01-12 17:14:31 +01:00
David Matamoros 873e8961e5 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:42 +01:00
Andrew Nicols 5b9b1f07e6 MDL-70148 behat: Update steps for keyboard 2020-11-17 15:14:43 +08:00
Eloy Lafuente (stronk7) 46606b3ddd MDL-67673 phpunit: Remove deprecated assertEquals() params
The optional parameters of assertEquals() and assertNotEquals()
are deprecated in PHPUnit 8 (to be removed in PHPUnit 9):

- delta => use assertEqualsWithDelta()
- canonicalize => use assertEqualsCanonicalizing()
- ignoreCase => use assertEqualsIgnoringCase
- maxDepth => removed without replacement.

More info @ https://github.com/sebastianbergmann/phpunit/issues/3341

Initial search done with:

ag 'assert(Not)?Equals\(.*,.*,' --php

Then, running tests and fixing remaining cases.
2020-10-21 12:46:05 +02:00
Eloy Lafuente (stronk7) 35bc26b516 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:05 +02:00
Eloy Lafuente (stronk7) 106c64ac24 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:05 +02:00
Eloy Lafuente (stronk7) ddf72dd60d MDL-67673 phpunit: Remove expectedException annotations
While this is not strictly required, because removal will
happen in PHPUnit 9.0, we are already getting rid of all
uses in core.

From release notes:https://phpunit.de/announcements/phpunit-8.html

The annotations `@expectedException`, `@expectedExceptionCode`,
`@expectedExceptionMessage`, and `@expectedExceptionMessageRegExp`
are now deprecated.
Using these annotations will trigger a deprecation warning
in PHPUnit 8 and in PHPUnit 9 these annotations will be removed.

Also, all uses of expectExceptionMessageRegExp() has been moved
to expectExceptionMessageMatches(). See https://github.com/sebastianbergmann/phpunit/issues/3957

TODO: Various weirdness found while doing the changes with these tests:
- vendor/bin/phpunit lib/tests/exporter_test.php (created MDL-69700)
- vendor/bin/phpunit competency/tests/external_test.php (same issue than prev one)
- vendor/bin/phpunit question/engine/tests/questionengine_test.php (created MDL-69624)
- vendor/bin/phpunit lib/tests/event_test.php (created MDL-69688)
2020-10-21 12:46:05 +02:00
Eloy Lafuente (stronk7) d81a94807b MDL-67673 phpunit: Fix the return type of template methods
All the setup/teardown/pre/post/conditions template methods
now are required to return void. This was warned with phpunit 7
and now is enforced.

At the same time, fix a few wrong function names,
provider data and param types, return statements...
2020-10-21 12:46:04 +02:00
Dani Palou e16b858ff9 MDL-68098 ws: Add unit tests to test mathjax in WS 2020-09-23 12:08:52 +02:00
Mathew May 1bc2a3b345 MDL-63261 messaging: Final 3.6 deprecations 2020-09-07 09:09:07 +08:00
Mathew May b44495cecc MDL-63966 messaging: Make tests pass after deprecation 2020-07-06 11:44:04 +08:00
Mathew May d0ba284421 MDL-63966 core: Remove tests covering removed functions 2020-07-06 11:44:04 +08:00
Andrew Nicols 7afd16ad84 MDL-66109 behat: Require newline at EOF
This change enables the gherkinlint rule to require a new line at the
end of the file. This change is in keeping with existing Moodle coding
style guidelines.
2020-05-11 11:07:49 +08:00
Jwalit Shah d743aaf262 MDL-66035 message: Restore missing message preferences files 2020-04-27 09:48:41 +10:00
Eloy Lafuente (stronk7) dae0a8c405 Merge branch 'MDL-56389' of https://github.com/paulholden/moodle 2020-01-28 11:04:05 +01:00
Bas Brands 77e5b4462e MDL-67577 core_message: navbar_output order
* moved the logic from core_message_popup_render_navbar_output to
message_popup_render_navbar_output in message/output/popup/lib.php

* using float: left instead of float: right in theme
2020-01-27 12:14:16 +01:00
Paul Holden df2544ee7b MDL-56389 message: allow marking notifications as read up to given time. 2020-01-23 22:16:30 +00:00
Amaia Anabitarte 23033ff48b MDL-63650 core_message: Final deprecation of mark_all_read_for_user 2019-12-20 11:52:45 +01:00
Amaia Anabitarte 2ead888f45 MDL-60855 general: Phase 2 in lib/deprecatedlib.php for 3.5 deprecations 2019-12-12 17:46:36 +01:00
Amaia Anabitarte 82ed7b3867 MDL-65620 core_message: Notification preferences behat tests 2019-12-04 10:30:36 +01:00
Andrew Nicols 5c783f140e MDL-66559 message: Move behat selectors to message subsystem 2019-10-11 12:58:16 +08:00
Andrew Nicols 2cd63188aa MDL-65493 message: The execute wrapper MUST be used 2019-09-06 08:40:56 +08:00
Eloy Lafuente (stronk7) 1bf2b6d52a MDL-66504 lang: Apply cantblockuser changes to behat tests 2019-09-02 19:00:28 +02: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
Sara Arjona b5b11a1543 Merge branch 'MDL-63458' of https://github.com/rlorenzo/moodle 2019-07-30 11:59:18 +08:00
Mark Nelson 66fffdbce5 MDL-65093 core_message: dont show users with cap as blocked
It is possible that before this patch the user blocked a
teacher from messaging them, even though this would have
no effect. It is also possible for a user to block a user,
then that user gets 'promoted' to a teacher role and the
block becoming ineffective. In these cases we dont show the
user's status as blocked.
2019-07-29 10:39:57 +08: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
Mark Nelson 4ad162667d MDL-65101 core_message: add Behat test 2019-06-28 18:12:05 +08:00
Nicolas Dunand 713934f9b4 MDL-63458 core_user: Remove send message if messaging is disabled 2019-06-26 11:24:08 -07:00
Amaia Anabitarte 8c933bde87 MDL-65336 core_message: Behat tests for mute/unmute conversations 2019-06-07 10:38:49 +02:00
Eloy Lafuente (stronk7) e867ffd689 Merge branch 'MDL-65344_master' of git://github.com/markn86/moodle 2019-06-05 21:06:15 +02:00
Ryan Wyllie 95a445b360 MDL-65657 message: reduce message poll timer for behat tests 2019-05-28 13:33:31 +08:00
Amaia Anabitarte 6d96a3dc33 MDL-65060 core_message: Delete messages behat test 2019-05-24 12:16:37 +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
Mark Nelson 2904a7f851 MDL-65365 core_message: prevent users from viewing all conversations 2019-05-08 17:54:44 +02:00
Amaia Anabitarte e4987f0f58 MDL-64993 core_message: fix unit test for non-ordered queries 2019-05-07 17:54:43 +02:00
Sara Arjona 3c7dcefd9f MDL-64993 core_message: fix behat test failing with Oracle 2019-05-07 16:26:47 +08: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 e3e1938789 MDL-65132 core_message: Added WS to delete message for all users
Also, added WS new return parameter candeletemessagesforallusers in get_conversation
and send_instant_message and added API support. This will be used to check
if the user can delete all messages in the conversation.
2019-05-06 09:39:34 +02: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 c8d51ae41a MDL-64993 core_message: Behat test for self conversation 2019-05-06 00:47:52 +02:00
Amaia Anabitarte 86463d5056 MDL-64993 core_message: Adding self-conversations to behat tests 2019-05-06 00:47:52 +02: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