Commit Graph

398 Commits

Author SHA1 Message Date
Jun Pataleta
ebf078458d Merge branch 'MDL-71036' of https://github.com/stronk7/moodle 2021-03-17 20:05:25 +08:00
Mihail Geshoski
5c91e63f54 MDL-44613 core_message: Update datetime format usages to strftime
Updates all existing datetime format usages to strftime in the
'time to timestamp' transformation in core_message behat tests.
2021-03-15 08:22:12 +08:00
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
Ferran Recio
ce87be7db6 MDL-67782 message: fix messages max length 2021-01-12 17:14:33 +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
Andrew Nicols
ba34d6e225 MDL-70148 behat: Update steps for keyboard 2020-11-17 15:14:43 +08:00
Eloy Lafuente (stronk7)
3a5641cb74 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:00 +02: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
Eloy Lafuente (stronk7)
d95c378771 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:00 +02:00
Eloy Lafuente (stronk7)
f6711bb394 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:45:59 +02:00
Dani Palou
25bc7a3d6b MDL-68098 ws: Add unit tests to test mathjax in WS 2020-09-23 11:18:41 +02:00
Mathew May
ee94aded30 MDL-63261 messaging: Final 3.6 deprecations 2020-09-07 09:10:46 +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