Compare commits

..

426 Commits

Author SHA1 Message Date
Jun Pataleta 49bf20af0b Moodle release 4.3.11 2025-03-15 20:19:02 +08:00
Ilya Tregubov 03242ec12c MDL-81945 gradereport_singleview: Fix hidden grade handling.
Seems to become broken after IR refactoring.
2025-03-14 15:24:16 +00:00
Ilya Tregubov 48a3c783dd MDL-81945 gradereport_user: Don't reveal visibility by color.
Seems like dimmed_text class was added without proper check so
user can guess if item is hidden.
2025-03-14 15:24:16 +00:00
Ilya Tregubov acdcb722b0 MDL-81945 gradereport_user: Behat tests for user report. 2025-03-14 15:24:16 +00:00
Ilya Tregubov e692607aaa MDL-81945 gradereport_singleview: Behat tests for singleview report. 2025-03-14 15:24:16 +00:00
Ilya Tregubov 7f7f13bba0 MDL-81945 gradereport_grader: Behat tests for grader report 2025-03-14 15:24:16 +00:00
Ilya Tregubov 920a8be0e6 MDL-81945 core_grades: create Behat step for grades action menu. 2025-03-14 15:24:16 +00:00
Ilya Tregubov c1e2713764 MDL-81945 gradereport_singleview: Fix hidden grades handling.
If a user is lacking moodle/grade:viewhidden he should not be able
to view or modify grades.
2025-03-14 15:24:16 +00:00
Sara Arjona d3a8d50292 weekly release 4.3.10+ 2025-03-14 16:14:15 +01:00
Sara Arjona d0137c54a2 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-03-14 16:14:12 +01:00
Huong Nguyen 58ba3cf834 Merge branch 'MDL-84640-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2025-03-12 16:32:40 +07:00
Angelia Dela Cruz f1c8f2281a MDL-84640 analytics: Behat for obtaining prediction models insights 2025-03-12 16:57:41 +08:00
Sara Arjona 03e8bddd1e Merge branch 'MDL-84801-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2025-03-11 17:26:37 +01:00
Huong Nguyen 2531818e3d MDL-84801 Behat: Fix Expand all fieldsets and advanced elements failure 2025-03-11 09:22:26 +07:00
AMOS bot e2a32ef88f Automatically generated installer lang files 2025-03-11 00:07:47 +00:00
AMOS bot e4a37ce710 Automatically generated installer lang files 2025-03-10 00:07:36 +00:00
Jun Pataleta a94925736c weekly release 4.3.10+ 2025-03-08 11:44:39 +08:00
Andrew Nicols b10657129e Merge branch 'MDL-84723-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-03-06 11:51:21 +08:00
Simey Lameze 2cee750fdf MDL-84723 behat: final improvements and fixes to the test
This commit does few things:
- Remove unnecessary grade field to assign generator.
- Remove unnecessary comment lines.
- Update the warning message assertion to use the no-break space unicode character.
2025-03-06 11:24:16 +08:00
Angelia Dela Cruz 78a04159cd MDL-84723 gradingform: Behat for maximum grade mismatch in marking guide 2025-03-06 11:24:16 +08:00
Huong Nguyen eb87add2b2 Merge branch 'MDL-84425-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2025-03-05 10:51:45 +07:00
Angelia Dela Cruz a952340811 MDL-84425 theme_boost: Behat for course section selector unavailable 2025-03-05 11:20:12 +08:00
Sara Arjona 21fe8a97e8 weekly release 4.3.10+ 2025-03-04 16:13:50 +01:00
Sara Arjona f2093b46e8 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-03-04 16:13:49 +01:00
Huong Nguyen abea467757 Merge branch 'MDL-84595-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2025-03-04 10:55:44 +07:00
AMOS bot 2c4e86245b Automatically generated installer lang files 2025-03-02 00:08:09 +00:00
Sara Arjona ea80a7f049 weekly release 4.3.10+ 2025-02-27 16:54:57 +01:00
Simey Lameze 5e7238e637 MDL-84424 behat: add template_competencies generator and improve test 2025-02-27 07:55:31 +08:00
Angelia Dela Cruz 49e490d209 MDL-84424 tool_lp: admin can create learning plans from template 2025-02-27 07:54:33 +08:00
Sara Arjona 6009960edb Merge branch 'MDL-84609-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-02-26 16:19:59 +01:00
Simey Lameze cdf2b01228 MDL-84609 behat: add required entities and fix failures
This commit also fix some typos and misaligned pipes around the
changed steps.

Signed-off-by: Simey Lameze <simey@moodle.com>
2025-02-25 11:52:14 +08:00
Angelia Dela Cruz c52babea18 MDL-84609 tool: Replaced tool_lp generators with standard generators 2025-02-25 11:52:14 +08:00
Huong Nguyen 9a528fbbb4 weekly release 4.3.10+ 2025-02-21 10:15:16 +07:00
Andrew Nicols beb5ba99e7 MDL-84595 tool_behat: Allow accessibility tests to run for a single Node 2025-02-20 22:28:24 +08:00
Jun Pataleta a689db2063 Merge branch 'MDL-84448-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-02-20 12:10:06 +08:00
Simey Lameze 151542757f MDL-84448 behat: return null if theme has no config 2025-02-20 12:00:49 +08:00
Amanda Doughty 87b30d4ac6 MDL-84448 lib: Fixed behat context check for grandchild themes 2025-02-20 12:00:49 +08:00
Jun Pataleta 14772da46c Merge branch 'MDL-84592-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2025-02-20 11:45:44 +08:00
Jun Pataleta 58b9066111 Merge branch 'MDL-84590-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2025-02-20 10:50:01 +08:00
Andrew Nicols eac184c754 MDL-84592 tool_behat: Improve accessibility failure information 2025-02-20 10:26:38 +08:00
Huong Nguyen dca015783d Merge branch 'MDL-84498-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-02-20 09:22:42 +07:00
Andrew Nicols b086bc5387 MDL-84590 tool_behat: Axe tests must use all wcag rules
Rules are not additive. That is to say that the wcag22a tag does not
include wcag21a or wcag2a. They all need to be specified.
2025-02-20 09:59:56 +08:00
Jason Den Dulk b82a60b3cf MDL-84498 lib: Fix reflection property regression. 2025-02-20 09:35:26 +08:00
Jun Pataleta 5e7cde3baf weekly release 4.3.10+ 2025-02-14 09:54:00 +08:00
Jun Pataleta cbb94d0f87 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-02-14 09:53:58 +08:00
Jun Pataleta 5f3057cb7c Merge branch 'MDL-84102-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2025-02-13 11:49:03 +08:00
Angelia Dela Cruz 71e551b03f MDL-84102 message: Behat for setting default notification preferences 2025-02-12 15:36:49 +08:00
Huong Nguyen 69f3c42284 Merge branch 'MDL-84414-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2025-02-11 11:18:00 +07:00
Angelia Dela Cruz 735f25dceb MDL-84414 gradingform_guide: Behat test to set marking guide as ready 2025-02-11 11:15:19 +08:00
AMOS bot 4725303f8c Automatically generated installer lang files 2025-02-11 00:09:15 +00:00
Sara Arjona f4f9dd8eac Moodle release 4.3.10 2025-02-07 12:18:09 +01:00
Sara Arjona 8075bbd23d weekly release 4.3.9+ 2025-02-06 16:21:51 +01:00
Laurent David a882939708 MDL-84271 core_course: Validate module list in search
* We need to validate the list of modules in the course search

Co-authored-by: Lars Bonczek <bonczek@math.tu-berlin.de>
2025-02-06 11:19:04 +08:00
Paul Holden e51fd749a7 MDL-84003 mod_glossary: capability check restoring trusted entry text. 2025-02-06 10:52:24 +08:00
Paul Holden 0ddd05e560 MDL-84145 report_loglive: format event description as plain text. 2025-02-06 09:44:42 +07:00
Leon Stringer 870d4f60da MDL-79976 mod_feedback: Check group for response
Check the teacher's group membership if group mode is SEPARATEGROUPS
prior to showing or deleting responses.
2025-02-05 18:14:29 +01:00
Paul Holden 50aadb0400 MDL-84239 badges: correct context check when disabling badge. 2025-02-04 15:20:22 +08:00
David Woloszyn eb60d29446 MDL-84136 filter_tex: Improve sanitization of forbidden items 2025-02-04 11:36:01 +07:00
Mark Johnson 47fb1d93af MDL-84146 question: Improve handling of JS parameters 2025-02-03 14:06:59 +07:00
meirzamoodle 4bf0e1efc4 MDL-84023 lib: Update requirejs to 2.3.7 2025-01-31 02:24:26 +00:00
Marina Glancy 86d74279c5 MDL-83941 tags: prevent users from browsing unsearchable collections 2025-01-31 02:24:26 +00:00
Mihail Geshoski f3b0e54bc9 MDL-82896 qtype_ddimageortext: Clean drop zone label text
It is unnecessary to allow HTML to be added to the drop zone label text,
as this content is hidden and only accessible to screen readers.
Additionally, the content is currently not properly formatted, which
introduces a risk for potential XSS exploits. This change ensures that
only plain text (PARAM_TEXT) is allowed when adding content and that the
content is properly formatted before being output.
2025-01-31 02:24:26 +00:00
Huong Nguyen a93fcef028 weekly release 4.3.9+ 2025-01-31 09:20:42 +07:00
Huong Nguyen 6588377dd3 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-01-31 09:20:40 +07:00
Huong Nguyen 23c09b61fb Merge branch 'MDL-84103-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2025-01-30 11:10:28 +07:00
Angelia Dela Cruz 6ea00054ee MDL-84103 imscc: Behat test for import IMS Cartridge to course 2025-01-30 11:28:11 +08:00
Sara Arjona 047a063597 Merge branch 'MDL-84355-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2025-01-29 08:10:06 +01:00
Andrew Nicols c6b7527e03 MDL-84355 phpunit: Exclude fixtures from testsuite search 2025-01-29 11:46:02 +08:00
Andrew Nicols e7fa3eb681 MDL-84355 phpunit: Correct test path for component configs 2025-01-29 11:46:01 +08:00
AMOS bot 575e0103c7 Automatically generated installer lang files 2025-01-28 00:07:42 +00:00
Sara Arjona 42a8b0c521 weekly release 4.3.9+ 2025-01-23 17:35:06 +01:00
Sara Arjona 3ebd351cc9 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-01-23 17:35:04 +01:00
Huong Nguyen 32e2dca306 Merge branch 'MDL-84101-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-01-23 09:09:46 +07:00
Huong Nguyen cecf12a810 Merge branch 'MDL-84249-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-01-23 09:03:00 +07:00
Simey Lameze b11718d7b9 MDL-84101 behat: add step to save changes
Signed-off-by: Simey Lameze <simey@moodle.com>
2025-01-23 07:28:20 +08:00
Angelia Dela Cruz 2196b091bd MDL-84101 message: Behat test for managing notification options 2025-01-23 07:28:20 +08:00
Sara Arjona 853f96fea7 Merge branch 'MDL-81043-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2025-01-20 16:03:42 +01:00
Simey Lameze bc4af11917 MDL-84249 behat: remove unnecessary javascript tag
This commit also make the repeated scenario names unique.
2025-01-20 14:00:10 +08:00
Jun Pataleta d6147ce5e2 Merge branch 'MDL-83814-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2025-01-20 09:58:16 +08:00
Huong Nguyen 7890f5650d MDL-81043 gradereport_grader: Improve gradereport_grader/collapse
- This will helps `nodesUpdate` handle asynchronous updates better
- This also helps to fix Random Behat failure
2025-01-17 15:55:24 +07:00
AMOS bot f325ae21ff Automatically generated installer lang files 2025-01-17 00:07:45 +00:00
Huong Nguyen 73581e38f0 weekly release 4.3.9+ 2025-01-16 23:46:53 +07:00
Huong Nguyen edb9d874ae Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-01-16 23:46:51 +07:00
Jun Pataleta 61d40f20cb Merge branch 'MDL-83826-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2025-01-16 10:22:11 +08:00
Jun Pataleta 4a3be4bd28 Merge branch 'MDL-83172-403-test' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2025-01-15 17:02:23 +08:00
Angelia Dela Cruz 0ca3aad0ab MDL-83826 core_admin: Behat coverage for plugins overview for admins 2025-01-15 14:02:44 +08:00
meirzamoodle 1bc6659dc6 MDL-83172 environment: Fix undefined array key error 2025-01-14 16:34:43 +07:00
meirzamoodle bafa2ac0f7 MDL-83172 environment: Remove Oracle from LMS 2025-01-14 16:34:43 +07:00
Jun Pataleta 27497670f2 Merge branch 'MDL-84124-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2025-01-14 11:12:34 +08:00
AMOS bot 31a2c21b90 Automatically generated installer lang files 2025-01-14 00:07:35 +00:00
Andrew Nicols 94676ef5c1 MDL-83814 core: Bump Node to latest LTS 2025-01-13 09:07:09 +08:00
AMOS bot a9dd5eecdc Automatically generated installer lang files 2025-01-13 00:07:43 +00:00
Andrew Nicols e54798475a MDL-84152 tests: Remove extraneous / in external file URL generation 2025-01-10 14:39:49 +08:00
AMOS bot bdbb1f2243 Automatically generated installer lang files 2025-01-09 00:09:52 +00:00
Andrew Nicols cf5fbd0c56 MDL-84124 cache: Purge Redis cache between tests 2025-01-09 08:00:51 +08:00
AMOS bot adf2d2d9f6 Automatically generated installer lang files 2025-01-08 00:07:40 +00:00
Huong Nguyen 59a432a66d weekly release 4.3.9+ 2025-01-03 13:54:19 +07:00
Huong Nguyen 8436787deb Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2025-01-03 13:54:17 +07:00
AMOS bot 1490b839c8 Automatically generated installer lang files 2025-01-01 00:07:46 +00:00
AMOS bot 994cf2d2e0 Automatically generated installer lang files 2024-12-25 00:18:36 +00:00
Huong Nguyen 0e70f4732b Merge branch 'MDL-83988-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-12-24 09:30:07 +07:00
AMOS bot 8291ad554e Automatically generated installer lang files 2024-12-22 00:08:02 +00:00
AMOS bot 90ad501d05 Automatically generated installer lang files 2024-12-21 00:07:33 +00:00
AMOS bot 6f4c5dba6c Automatically generated installer lang files 2024-12-20 00:07:38 +00:00
Jun Pataleta eedd50b245 weekly release 4.3.9+ 2024-12-19 20:08:25 +08:00
Jun Pataleta db32329799 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-12-19 20:08:23 +08:00
Jun Pataleta f48a232a13 Merge branch 'MDL-84026-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-12-18 13:24:30 +08:00
Andrew Nicols 16708c6225 Merge branch 'MDL-84018-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-12-18 10:58:56 +08:00
Andrew Nicols 64e9a406ec MDL-84026 core: Update GitHub Funding to point to fund.moodle.org 2024-12-18 10:46:03 +08:00
Huong Nguyen 2c3fe2b361 Merge branch 'MDL-84000-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-12-18 09:05:24 +07:00
Sara Arjona cd5b957f62 Merge branch 'MDL-83696-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-12-17 07:42:07 +01:00
Angelia Dela Cruz d250ba9815 MDL-83696 core_tag: Added behat for book chapter and glossary entry tags 2024-12-17 13:47:52 +08:00
Simey Lameze 448862a2eb MDL-84018 phpunit: extend test class to advanced_testcase
Signed-off-by: Simey Lameze <simey@moodle.com>
2024-12-17 07:07:20 +08:00
AMOS bot 8e9a923d8b Automatically generated installer lang files 2024-12-15 00:08:17 +00:00
Paul Holden e426e74461 MDL-84000 reportbuilder: move testcase helper to autoloaded namespace.
Clean up some class imports while we're at it.
2024-12-13 10:57:02 +00:00
Huong Nguyen 0ee33574bf weekly release 4.3.9+ 2024-12-13 08:58:34 +07:00
Huong Nguyen 5a86d61dee Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-12-13 08:58:32 +07:00
Andrew Nicols bd38b1bfda MDL-83988 core: Hide common machine-read files 2024-12-11 23:35:55 +08:00
Andrew Nicols bef27ef23f MDL-81520 mod_assign: Update tests to not extend assign_provider test 2024-12-11 12:30:22 +08:00
Andrew Nicols cc54b4e78a MDL-81520 core: Fix test finality 2024-12-11 12:30:21 +08:00
AMOS bot bcd31cde1e Automatically generated installer lang files 2024-12-11 00:07:41 +00:00
AMOS bot a38302e489 Automatically generated installer lang files 2024-12-10 00:07:42 +00:00
AMOS bot 50d9c0a77c Automatically generated installer lang files 2024-12-08 00:07:59 +00:00
Huong Nguyen 9dbf9e9829 Moodle release 4.3.9 2024-12-06 13:12:35 +07:00
Huong Nguyen c8a852421a weekly release 4.3.8+ 2024-12-05 22:33:04 +07:00
Huong Nguyen 4bd53a83f5 MDL-83921 competency: Update unit tests with latest changes 2024-12-05 18:37:16 +08:00
Huong Nguyen 248db026b7 MDL-82379 core_user: Move email change token to user private access key 2024-12-05 13:38:30 +08:00
Huong Nguyen 5c292ac705 MDL-83921 competency: Bump version 2024-12-05 11:22:01 +07:00
Michael Hawkins 7fb2046b9d MDL-83921 competency: Match web service capability check with page check 2024-12-05 11:21:51 +07:00
Huong Nguyen 2e71e71afc MDL-82963 Tag: Improve validation for users tagged with sepecified tag 2024-12-05 11:03:26 +08:00
Laurent David 9acaaefc07 MDL-82757 mod_data: Improve group access handling
* Improved handling of group access to ensure correct visibility of records.
2024-12-04 02:44:21 +00:00
Jun Pataleta e78fbde263 MDL-61316 core: Fix session gc unit tests 2024-12-04 02:44:21 +00:00
meirzamoodle 5a83858244 MDL-61316 core: Removed 5x multiplier from guest session expiration 2024-12-04 02:44:21 +00:00
Mark Johnson 1c8874a29a MDL-83357 question: Fix filter cleaning in page links 2024-12-04 02:44:21 +00:00
Mark Johnson a81957cb08 MDL-83357 question: Additional cleaning of filter params 2024-12-04 02:44:21 +00:00
Huong Nguyen db6abd4ce5 Merge branch 'MDL-82946-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-12-04 09:39:57 +07:00
Angelia Dela Cruz 90026cf089 MDL-82946 qbank: Behat coverage for questions bulk actions 2024-12-03 10:42:40 +08:00
Sara Arjona b819eca2d4 weekly release 4.3.8+ 2024-11-29 12:37:08 +01:00
Jun Pataleta 05d855308d MDL-83470 environment: Put back Oracle support for now
Even though Oracle support is planned to be dropped for 5.0, the
actual issue that drops it (MDL-83172) has not yet landed. So, it's
better to keep this in environment.xml for now and defer its removal
from environment.xml in MDL-83172.
2024-11-28 16:06:22 +07:00
Huong Nguyen d79ebd7618 Merge branch 'MDL-83470-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-11-28 11:04:24 +07:00
Huong Nguyen 1ad00a078c Merge branch 'MDL-83643-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-11-28 09:21:58 +07:00
Andrew Nicols 7c8a9ca226 MDL-83788 mod_glossary: Correct assertions for assertArrayHasKey 2024-11-27 13:26:01 +11:00
Jun Pataleta 5cc1d88e69 weekly release 4.3.8+ 2024-11-22 22:27:05 +08:00
Jun Pataleta dcc9c83b49 MDL-83470 core: Define environment requirements for Moodle 5.0 2024-11-21 17:35:34 +08:00
Andrew Nicols 175f20919d Merge branch 'MDL-83551-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-11-21 12:26:58 +08:00
Jun Pataleta e5da004e9b Merge branch 'MDL-81521-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-11-19 15:15:30 +08:00
Huong Nguyen fa5ffe056b Merge branch 'MDL-83610-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-11-19 09:29:13 +07:00
Andrew Nicols ba6abd2c0b MDL-81521 mod_quiz: Fix attempt walkthrough tests 2024-11-19 09:30:52 +08:00
Andrew Nicols 3bd5f52e22 MDL-81521 core: Update all possibly data providers to be static
Note: Some data providers could not be automatically be converted to
being static. These will be handled in a separate issue.
2024-11-19 09:30:51 +08:00
Marina Glancy 5733cf3990 MDL-83610 behat: allow to set date fields in groups 2024-11-18 10:37:29 +00:00
Huong Nguyen ba7e9f33ed weekly release 4.3.8+ 2024-11-15 09:21:43 +07:00
Jun Pataleta a55a276100 Merge branch 'MDL-80926-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-11-14 12:05:22 +08:00
Huong Nguyen 63c59f01fa Merge branch 'MDL-80689_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-11-13 14:01:19 +07:00
Simey Lameze 687dcf55e2 MDL-83643 behat: make manual completion scenario names unique 2024-11-13 07:18:09 +08:00
Simey Lameze 4e3d6fe258 MDL-83551 behat: make duplicated scenario names unique 2024-11-13 06:55:16 +08:00
Huong Nguyen 511d2cbad8 weekly release 4.3.8+ 2024-11-08 13:56:48 +07:00
Huong Nguyen 60fb10f6d5 Merge branch 'MDL-83619-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-11-07 11:06:06 +07:00
Huong Nguyen 18f08ec3f7 Merge branch 'MDL-83611-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-11-07 11:02:49 +07:00
Simey Lameze 0f2a2e6109 MDL-80926 behat: fix random and improve h5p completion test 2024-11-06 13:37:11 +08:00
Simey Lameze 158240ddf5 MDL-83619 behat: enable bbb module early in the test 2024-11-05 10:23:41 +08:00
Huong Nguyen 6aace0164e weekly release 4.3.8+ 2024-11-01 14:29:31 +07:00
Huong Nguyen 5c5b951797 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-11-01 14:29:29 +07:00
Simey Lameze 4831c5321c MDL-83611 behat: increase window size to avoid randoms 2024-11-01 10:35:07 +08:00
Huong Nguyen 21c5a52209 Merge branch 'MDL-82911-403-fix' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-10-31 14:15:05 +07:00
Simey Lameze 80ae1a4070 MDL-82911 behat: change future times example to minutes 2024-10-31 14:15:56 +08:00
Huong Nguyen 8042e88e3e Merge branch 'MDL-82911-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-10-31 11:03:54 +07:00
Huong Nguyen 485ecc840e Merge branch 'MDL-83414-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-10-31 10:39:03 +07:00
Angelia Dela Cruz 75f7ebb19c MDL-83414 core_grades: Behat to test custom scale display 2024-10-31 09:46:48 +08:00
Tim Hunt 9ff3c199a2 MDL-80689 behat: add a transformation to get dirroot 2024-10-30 14:10:30 +00:00
Angelia Dela Cruz 8cad942a95 MDL-82911 mod_bigbluebuttonbn: Behat for BBB open and close date time 2024-10-29 12:35:01 +08:00
AMOS bot f70486d106 Automatically generated installer lang files 2024-10-29 00:07:46 +00:00
Shamim Rezaie 08e4f06bc3 weekly release 4.3.8+ 2024-10-18 23:29:04 +11:00
Shamim Rezaie 075f2a2a77 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-10-18 23:29:02 +11:00
Jun Pataleta 877fcd88e0 Merge branch 'MDL-83002-403' of https://github.com/marinaglancy/moodle into MOODLE_403_STABLE 2024-10-16 20:32:34 +08:00
AMOS bot 351f383eda Automatically generated installer lang files 2024-10-15 00:09:27 +00:00
AMOS bot 47032e322b Automatically generated installer lang files 2024-10-13 00:07:49 +00:00
Jake Dallimore 28b69f56c4 weekly release 4.3.8+ 2024-10-11 10:55:10 +08:00
Jake Dallimore 46c1d8d4d2 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-10-11 10:55:08 +08:00
Jun Pataleta 58502bb663 Merge branch 'MDL-82912-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-10-10 10:35:11 +08:00
Angelia Dela Cruz 69ba92c13f MDL-82912 mod_workshop: Behat to view assessment after workshop close 2024-10-09 16:56:23 +08:00
Huong Nguyen b8291bca52 Merge branch 'MDL-83331_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-10-09 14:47:29 +07:00
AMOS bot 14fbef371c Automatically generated installer lang files 2024-10-09 00:09:20 +00:00
AMOS bot 5f0564606c Automatically generated installer lang files 2024-10-08 00:07:43 +00:00
Tim Hunt 6939aacf16 MDL-83331 behat: enable navigation direct to mod/.../index.php 2024-10-07 12:05:26 +01:00
Jun Pataleta db959720ed Moodle release 4.3.8 2024-10-05 14:46:42 +08:00
AMOS bot 7836fde50f Automatically generated installer lang files 2024-10-05 00:07:43 +00:00
Huong Nguyen 2bf0d3b149 weekly release 4.3.7+ 2024-10-04 20:48:15 +07:00
Huong Nguyen a8f220b2b7 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-10-04 20:48:13 +07:00
AMOS bot 65463981dc Automatically generated installer lang files 2024-10-04 00:07:42 +00:00
Marina Glancy eb07eaef1e MDL-83002 theme_boost: tell behat to wait when initialising drawers 2024-10-03 15:58:14 +01:00
Michael Hawkins 5bb490e979 MDL-83352 message: Update usercantbemessaged string 2024-10-03 17:47:06 +07:00
Jun Pataleta c7b2b1c439 Merge branch 'MDL-83238-403-enfix' of https://github.com/mudrd8mz/moodle into MOODLE_403_STABLE 2024-10-03 16:02:17 +08:00
David Mudrák d869697f97 MDL-83238 lang: Fix the changed strings in the tests, too 2024-10-02 22:22:44 +02:00
Helen Foster 9ad5f88019 MDL-83238 lang: Import fixed English strings (en_fix) 2024-10-02 22:09:32 +02:00
Shamim Rezaie 90f82cbe86 Merge branch 'MDL-83332-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2024-10-03 02:24:36 +10:00
Paul Holden e22816a954 MDL-83180 reportbuilder: correct access check for viewing schedules. 2024-10-02 16:49:46 +08:00
meirzamoodle 23f51d88cf MDL-83332 environment: Reverts the slashargument removal on MDL-62640
We are encountering Behat failures on MacOS and possibly Windows.

This reverts commit 3202109780.
2024-10-02 13:32:28 +07:00
Jun Pataleta 6aa12043d1 Merge branch 'm43-md83163' of https://github.com/danmarsden/moodle into MOODLE_403_STABLE 2024-10-02 12:31:27 +08:00
Dan Marsden 772c763e6b MDL-83310 course: remove hard-coded list of course formats from test. 2024-10-02 08:53:11 +13:00
Paul Holden 9f773c160e MDL-83181 reportbuilder: ensure audience correctness before delete. 2024-10-01 12:44:16 +00:00
Paul Holden d3b930d67c MDL-82386 block_rss_client: user access checks for feed edit/delete. 2024-10-01 12:44:16 +00:00
Huong Nguyen 886f5c8465 weekly release 4.3.7+ 2024-10-01 19:33:04 +07:00
Jun Pataleta 0138b520a4 Merge branch 'MDL-83264-403-1' of https://github.com/mihailges/moodle into MOODLE_403_STABLE 2024-10-01 12:47:18 +08:00
Mihail Geshoski f2f64d40c5 MDL-83264 mod_quiz: Return the correct name for top categories 2024-10-01 09:43:28 +08:00
Shamim Rezaie d56e90c1b7 Merge branch 'MDL-81590-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-09-30 23:01:54 +10:00
Huong Nguyen ab291aa8ed weekly release 4.3.7+ 2024-09-27 18:44:11 +07:00
Huong Nguyen a60f0883cc NOBUG: Fixed SVG browser compatibility 2024-09-27 18:44:10 +07:00
Huong Nguyen 34b45fea59 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-09-27 18:44:09 +07:00
Jun Pataleta 5a24beab3c MDL-81590 core: Build the context path without using DIRECTORY_SEPARATOR 2024-09-27 16:46:16 +08:00
Jun Pataleta 7ba0f509c7 Merge branch 'MDL-80929-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 12:40:23 +08:00
Huong Nguyen fa5eec299a Merge branch 'MDL-83205-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-09-27 11:27:20 +07:00
Huong Nguyen deb427c38f Merge branch 'MDL-82483-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 11:16:08 +07:00
Jun Pataleta caa14d5283 Merge branch 'MDL-82602-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 12:10:53 +08:00
Huong Nguyen f5af008e0f Merge branch 'MDL-80974-MOODLE_403_STABLE' of https://github.com/sh-csg/moodle into MOODLE_403_STABLE 2024-09-27 11:09:02 +07:00
Jun Pataleta 22b6d706bd Merge branch 'MDL-82973-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 12:06:05 +08:00
Jun Pataleta 1f4bca1a2e Merge branch 'MDL-83163-m403' of https://github.com/sammarshallou/moodle into MOODLE_403_STABLE 2024-09-27 11:59:29 +08:00
Andrew Nicols 4b36a967d0 Merge branch 'MDL-83094-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 11:06:14 +08:00
Jun Pataleta 071cc916fd Merge branch 'MDL-81157-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 10:28:31 +08:00
Jun Pataleta d2595b4a4e Merge branch 'MDL-82581-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-27 10:10:55 +08:00
AMOS bot 9c811f8a4c Automatically generated installer lang files 2024-09-27 00:07:42 +00:00
Andrew Nicols 8e40b64f8d Merge branch 'MDL-83268-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-09-26 22:07:15 +08:00
Sara Arjona e600fb2782 MDL-83268 core_h5p: Fix version number 2024-09-26 16:02:47 +02:00
Andrew Nicols fd4f256768 Merge branch 'MDL-83268-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-09-26 21:33:24 +08:00
Sara Arjona 57f527587b MDL-83268 core_h5p: Fix required Moodle version 2024-09-26 15:26:26 +02:00
Andrew Nicols 5e95aa4b3a Merge branch 'MDL-83268-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-09-26 21:08:05 +08:00
Jun Pataleta c36c4e8caf Merge branch 'MDL-79288-403_blockaccessreview_colourcontrastcheck' of https://github.com/brickfield/moodle into MOODLE_403_STABLE 2024-09-26 19:45:06 +08:00
Sara Arjona c217ab2947 MDL-83268 core_h5p: Remove unused font files
In https://h5ptechnology.atlassian.net/browse/HFP-4105, the
fonts/h5p-core-29.svg was merged with some conflicts.
Looking at the patch there, it seems all the h5p-core-29* fonts
can be removed because the ones used by the library are the
h5p-core-30-*.

I haven't added a note in the upgrade because it seems an error
on their release process (so I don't think it's worth adding
a note because it should be fixed in future releases).
2024-09-26 10:32:12 +02:00
Sara Arjona a64e2bc235 MDL-83268 core_h5p: Remove the h5plib_v126 plugin
The h5plib_v126 plugin can be removed because it has been replaced
with h5plib_v127, which is using the latest versions of the
libraries.
2024-09-26 10:32:11 +02:00
Sara Arjona d9f2f7006e MDL-83268 core_h5p: Add editor lib changes after upgrading it 2024-09-26 10:32:11 +02:00
Sara Arjona 5481ef00a1 MDL-83268 core_h5p: Upgrade editor lib to 1.27
This commit is upgrading the joubel/editor library to the one
tagged as moodle-1.27.0 (which also increases the coreApi minorVersion).
2024-09-26 10:32:11 +02:00
Sara Arjona 099f65274c MDL-83268 core_h5p: Add core lib changes after upgrading it 2024-09-26 10:32:10 +02:00
Sara Arjona 15eb08acc2 MDL-83268 core_h5p: Upgrade core lib to 1.27
This commit is upgrading the joubel/core library to the one
tagged as moodle-1.27.0 (which also increases the coreApi minorVersion).
That's why the previous commit was duplicating the existing
h5plib_v126.
2024-09-26 10:32:10 +02:00
Sara Arjona b5b838e16b MDL-83268 h5plib: Create first version of h5plib_v127
AMOS BEGIN
  CPY [editor:a11ytitleshowlabel,h5plib_v126],[editor:a11ytitleshowlabel,h5plib_v127]
  CPY [editor:a11ytitlehidelabel,h5plib_v126],[editor:a11ytitlehidelabel,h5plib_v127]
  CPY [editor:atoz,h5plib_v126],[editor:atoz,h5plib_v127]
  CPY [editor:add,h5plib_v126],[editor:add,h5plib_v127]
  CPY [editor:addauthor,h5plib_v126],[editor:addauthor,h5plib_v127]
  CPY [editor:addentity,h5plib_v126],[editor:addentity,h5plib_v127]
  CPY [editor:addfile,h5plib_v126],[editor:addfile,h5plib_v127]
  CPY [editor:addnewchange,h5plib_v126],[editor:addnewchange,h5plib_v127]
  CPY [editor:addtitle,h5plib_v126],[editor:addtitle,h5plib_v127]
  CPY [editor:addvideodescription,h5plib_v126],[editor:addvideodescription,h5plib_v127]
  CPY [editor:avtablistlabel,h5plib_v126],[editor:avtablistlabel,h5plib_v127]
  CPY [editor:belowmin,h5plib_v126],[editor:belowmin,h5plib_v127]
  CPY [editor:cancel,h5plib_v126],[editor:cancel,h5plib_v127]
  CPY [editor:cancellabel,h5plib_v126],[editor:cancellabel,h5plib_v127]
  CPY [editor:changefile,h5plib_v126],[editor:changefile,h5plib_v127]
  CPY [editor:changelanguage,h5plib_v126],[editor:changelanguage,h5plib_v127]
  CPY [editor:changelibrary,h5plib_v126],[editor:changelibrary,h5plib_v127]
  CPY [editor:changelogdescription,h5plib_v126],[editor:changelogdescription,h5plib_v127]
  CPY [editor:close,h5plib_v126],[editor:close,h5plib_v127]
  CPY [editor:commonfields,h5plib_v126],[editor:commonfields,h5plib_v127]
  CPY [editor:commonfieldsdescription,h5plib_v126],[editor:commonfieldsdescription,h5plib_v127]
  CPY [editor:confirmchangelibrary,h5plib_v126],[editor:confirmchangelibrary,h5plib_v127]
  CPY [editor:confirmdeletechangelog,h5plib_v126],[editor:confirmdeletechangelog,h5plib_v127]
  CPY [editor:confirmimageremoval,h5plib_v126],[editor:confirmimageremoval,h5plib_v127]
  CPY [editor:confirmpastebuttontext,h5plib_v126],[editor:confirmpastebuttontext,h5plib_v127]
  CPY [editor:confirmpastecontent,h5plib_v126],[editor:confirmpastecontent,h5plib_v127]
  CPY [editor:confirmremoval,h5plib_v126],[editor:confirmremoval,h5plib_v127]
  CPY [editor:confirmremoveauthor,h5plib_v126],[editor:confirmremoveauthor,h5plib_v127]
  CPY [editor:contenttypebackbuttonlabel,h5plib_v126],[editor:contenttypebackbuttonlabel,h5plib_v127]
  CPY [editor:contenttypecacheoutdated,h5plib_v126],[editor:contenttypecacheoutdated,h5plib_v127]
  CPY [editor:contenttypecacheoutdateddesc,h5plib_v126],[editor:contenttypecacheoutdateddesc,h5plib_v127]
  CPY [editor:contenttypedemobuttonlabel,h5plib_v126],[editor:contenttypedemobuttonlabel,h5plib_v127]
  CPY [editor:contenttypedetailbuttonlabel,h5plib_v126],[editor:contenttypedetailbuttonlabel,h5plib_v127]
  CPY [editor:contenttypegetbuttonlabel,h5plib_v126],[editor:contenttypegetbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeiconalttext,h5plib_v126],[editor:contenttypeiconalttext,h5plib_v127]
  CPY [editor:contenttypeinstallbuttonlabel,h5plib_v126],[editor:contenttypeinstallbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeinstallerror,h5plib_v126],[editor:contenttypeinstallerror,h5plib_v127]
  CPY [editor:contenttypeinstallsuccess,h5plib_v126],[editor:contenttypeinstallsuccess,h5plib_v127]
  CPY [editor:contenttypeinstallingbuttonlabel,h5plib_v126],[editor:contenttypeinstallingbuttonlabel,h5plib_v127]
  CPY [editor:contenttypelicensepaneltitle,h5plib_v126],[editor:contenttypelicensepaneltitle,h5plib_v127]
  CPY [editor:contenttypenotinstalled,h5plib_v126],[editor:contenttypenotinstalled,h5plib_v127]
  CPY [editor:contenttypenotinstalleddesc,h5plib_v126],[editor:contenttypenotinstalleddesc,h5plib_v127]
  CPY [editor:contenttypeowner,h5plib_v126],[editor:contenttypeowner,h5plib_v127]
  CPY [editor:contenttyperestricted,h5plib_v126],[editor:contenttyperestricted,h5plib_v127]
  CPY [editor:contenttyperestricteddesc,h5plib_v126],[editor:contenttyperestricteddesc,h5plib_v127]
  CPY [editor:contenttypesearchfieldplaceholder,h5plib_v126],[editor:contenttypesearchfieldplaceholder,h5plib_v127]
  CPY [editor:contenttypesectionall,h5plib_v126],[editor:contenttypesectionall,h5plib_v127]
  CPY [editor:contenttypeunsupportedapiversioncontent,h5plib_v126],[editor:contenttypeunsupportedapiversioncontent,h5plib_v127]
  CPY [editor:contenttypeunsupportedapiversiontitle,h5plib_v126],[editor:contenttypeunsupportedapiversiontitle,h5plib_v127]
  CPY [editor:contenttypeupdateavailable,h5plib_v126],[editor:contenttypeupdateavailable,h5plib_v127]
  CPY [editor:contenttypeupdatebuttonlabel,h5plib_v126],[editor:contenttypeupdatebuttonlabel,h5plib_v127]
  CPY [editor:contenttypeupdatesuccess,h5plib_v126],[editor:contenttypeupdatesuccess,h5plib_v127]
  CPY [editor:contenttypeupdatingbuttonlabel,h5plib_v126],[editor:contenttypeupdatingbuttonlabel,h5plib_v127]
  CPY [editor:contenttypeusebuttonlabel,h5plib_v126],[editor:contenttypeusebuttonlabel,h5plib_v127]
  CPY [editor:contributetranslations,h5plib_v126],[editor:contributetranslations,h5plib_v127]
  CPY [editor:copiedbutton,h5plib_v126],[editor:copiedbutton,h5plib_v127]
  CPY [editor:copiedtoclipboard,h5plib_v126],[editor:copiedtoclipboard,h5plib_v127]
  CPY [editor:copybutton,h5plib_v126],[editor:copybutton,h5plib_v127]
  CPY [editor:copytoclipboard,h5plib_v126],[editor:copytoclipboard,h5plib_v127]
  CPY [editor:createcontenttablabel,h5plib_v126],[editor:createcontenttablabel,h5plib_v127]
  CPY [editor:currentmenuselected,h5plib_v126],[editor:currentmenuselected,h5plib_v127]
  CPY [editor:editcopyright,h5plib_v126],[editor:editcopyright,h5plib_v127]
  CPY [editor:editimage,h5plib_v126],[editor:editimage,h5plib_v127]
  CPY [editor:editmode,h5plib_v126],[editor:editmode,h5plib_v127]
  CPY [editor:enteraudiotitle,h5plib_v126],[editor:enteraudiotitle,h5plib_v127]
  CPY [editor:enteraudiourl,h5plib_v126],[editor:enteraudiourl,h5plib_v127]
  CPY [editor:enterfullscreenbuttonlabel,h5plib_v126],[editor:enterfullscreenbuttonlabel,h5plib_v127]
  CPY [editor:entervideotitle,h5plib_v126],[editor:entervideotitle,h5plib_v127]
  CPY [editor:entervideourl,h5plib_v126],[editor:entervideourl,h5plib_v127]
  CPY [editor:errorcalculatingmaxscore,h5plib_v126],[editor:errorcalculatingmaxscore,h5plib_v127]
  CPY [editor:errorcommunicatinghubcontent,h5plib_v126],[editor:errorcommunicatinghubcontent,h5plib_v127]
  CPY [editor:errorcommunicatinghubtitle,h5plib_v126],[editor:errorcommunicatinghubtitle,h5plib_v127]
  CPY [editor:errorheader,h5plib_v126],[editor:errorheader,h5plib_v127]
  CPY [editor:errornotsupported,h5plib_v126],[editor:errornotsupported,h5plib_v127]
  CPY [editor:errorparamsbroken,h5plib_v126],[editor:errorparamsbroken,h5plib_v127]
  CPY [editor:errortoohighversion,h5plib_v126],[editor:errortoohighversion,h5plib_v127]
  CPY [editor:example,h5plib_v126],[editor:example,h5plib_v127]
  CPY [editor:exceedsmax,h5plib_v126],[editor:exceedsmax,h5plib_v127]
  CPY [editor:exitfullscreenbuttonlabel,h5plib_v126],[editor:exitfullscreenbuttonlabel,h5plib_v127]
  CPY [editor:expandcollapse,h5plib_v126],[editor:expandcollapse,h5plib_v127]
  CPY [editor:filetolarge,h5plib_v126],[editor:filetolarge,h5plib_v127]
  CPY [editor:fillinthefieldsbelow,h5plib_v126],[editor:fillinthefieldsbelow,h5plib_v127]
  CPY [editor:gethelp,h5plib_v126],[editor:gethelp,h5plib_v127]
  CPY [editor:h5pfileuploadservererrorcontent,h5plib_v126],[editor:h5pfileuploadservererrorcontent,h5plib_v127]
  CPY [editor:h5pfileuploadservererrortitle,h5plib_v126],[editor:h5pfileuploadservererrortitle,h5plib_v127]
  CPY [editor:h5pfilevalidationfailedcontent,h5plib_v126],[editor:h5pfilevalidationfailedcontent,h5plib_v127]
  CPY [editor:h5pfilevalidationfailedtitle,h5plib_v126],[editor:h5pfilevalidationfailedtitle,h5plib_v127]
  CPY [editor:h5pfilewrongextensioncontent,h5plib_v126],[editor:h5pfilewrongextensioncontent,h5plib_v127]
  CPY [editor:h5pfilewrongextensiontitle,h5plib_v126],[editor:h5pfilewrongextensiontitle,h5plib_v127]
  CPY [editor:height,h5plib_v126],[editor:height,h5plib_v127]
  CPY [editor:hide,h5plib_v126],[editor:hide,h5plib_v127]
  CPY [editor:hideimportantinstructions,h5plib_v126],[editor:hideimportantinstructions,h5plib_v127]
  CPY [editor:hubpanellabel,h5plib_v126],[editor:hubpanellabel,h5plib_v127]
  CPY [editor:illegaldecimalnumber,h5plib_v126],[editor:illegaldecimalnumber,h5plib_v127]
  CPY [editor:imagelightboxprogress,h5plib_v126],[editor:imagelightboxprogress,h5plib_v127]
  CPY [editor:imagelightboxtitle,h5plib_v126],[editor:imagelightboxtitle,h5plib_v127]
  CPY [editor:importantinstructions,h5plib_v126],[editor:importantinstructions,h5plib_v127]
  CPY [editor:insert,h5plib_v126],[editor:insert,h5plib_v127]
  CPY [editor:invalidformat,h5plib_v126],[editor:invalidformat,h5plib_v127]
  CPY [editor:language,h5plib_v126],[editor:language,h5plib_v127]
  CPY [editor:librarymissing,h5plib_v126],[editor:librarymissing,h5plib_v127]
  CPY [editor:licensecandistribute,h5plib_v126],[editor:licensecandistribute,h5plib_v127]
  CPY [editor:licensecanholdliable,h5plib_v126],[editor:licensecanholdliable,h5plib_v127]
  CPY [editor:licensecanmodify,h5plib_v126],[editor:licensecanmodify,h5plib_v127]
  CPY [editor:licensecansublicense,h5plib_v126],[editor:licensecansublicense,h5plib_v127]
  CPY [editor:licensecanusecommercially,h5plib_v126],[editor:licensecanusecommercially,h5plib_v127]
  CPY [editor:licensecannotholdliable,h5plib_v126],[editor:licensecannotholdliable,h5plib_v127]
  CPY [editor:licensedescription,h5plib_v126],[editor:licensedescription,h5plib_v127]
  CPY [editor:licensefetchdetailsfailed,h5plib_v126],[editor:licensefetchdetailsfailed,h5plib_v127]
  CPY [editor:licensemodalsubtitle,h5plib_v126],[editor:licensemodalsubtitle,h5plib_v127]
  CPY [editor:licensemodaltitle,h5plib_v126],[editor:licensemodaltitle,h5plib_v127]
  CPY [editor:licensemustincludecopyright,h5plib_v126],[editor:licensemustincludecopyright,h5plib_v127]
  CPY [editor:licensemustincludelicense,h5plib_v126],[editor:licensemustincludelicense,h5plib_v127]
  CPY [editor:licenseunspecified,h5plib_v126],[editor:licenseunspecified,h5plib_v127]
  CPY [editor:listbelowmin,h5plib_v126],[editor:listbelowmin,h5plib_v127]
  CPY [editor:listexceedsmax,h5plib_v126],[editor:listexceedsmax,h5plib_v127]
  CPY [editor:listlabel,h5plib_v126],[editor:listlabel,h5plib_v127]
  CPY [editor:loading,h5plib_v126],[editor:loading,h5plib_v127]
  CPY [editor:loadingimageeditor,h5plib_v126],[editor:loadingimageeditor,h5plib_v127]
  CPY [editor:logthischange,h5plib_v126],[editor:logthischange,h5plib_v127]
  CPY [editor:loggedchanges,h5plib_v126],[editor:loggedchanges,h5plib_v127]
  CPY [editor:maxscoresemanticsmissing,h5plib_v126],[editor:maxscoresemanticsmissing,h5plib_v127]
  CPY [editor:metadata,h5plib_v126],[editor:metadata,h5plib_v127]
  CPY [editor:metadatasharingandlicensinginfo,h5plib_v126],[editor:metadatasharingandlicensinginfo,h5plib_v127]
  CPY [editor:missingproperty,h5plib_v126],[editor:missingproperty,h5plib_v127]
  CPY [editor:missingtranslation,h5plib_v126],[editor:missingtranslation,h5plib_v127]
  CPY [editor:newchangehasbeenlogged,h5plib_v126],[editor:newchangehasbeenlogged,h5plib_v127]
  CPY [editor:newestfirst,h5plib_v126],[editor:newestfirst,h5plib_v127]
  CPY [editor:nextimage,h5plib_v126],[editor:nextimage,h5plib_v127]
  CPY [editor:nochangeshavebeenlogged,h5plib_v126],[editor:nochangeshavebeenlogged,h5plib_v127]
  CPY [editor:nocontenttypesavailable,h5plib_v126],[editor:nocontenttypesavailable,h5plib_v127]
  CPY [editor:nocontenttypesavailabledesc,h5plib_v126],[editor:nocontenttypesavailabledesc,h5plib_v127]
  CPY [editor:nofollow,h5plib_v126],[editor:nofollow,h5plib_v127]
  CPY [editor:notimageordimensionsfield,h5plib_v126],[editor:notimageordimensionsfield,h5plib_v127]
  CPY [editor:numresults,h5plib_v126],[editor:numresults,h5plib_v127]
  CPY [editor:numberfield,h5plib_v126],[editor:numberfield,h5plib_v127]
  CPY [editor:ok,h5plib_v126],[editor:ok,h5plib_v127]
  CPY [editor:onlynumbers,h5plib_v126],[editor:onlynumbers,h5plib_v127]
  CPY [editor:or,h5plib_v126],[editor:or,h5plib_v127]
  CPY [editor:orderitemdown,h5plib_v126],[editor:orderitemdown,h5plib_v127]
  CPY [editor:orderitemup,h5plib_v126],[editor:orderitemup,h5plib_v127]
  CPY [editor:outofstep,h5plib_v126],[editor:outofstep,h5plib_v127]
  CPY [editor:pasteandreplacebutton,h5plib_v126],[editor:pasteandreplacebutton,h5plib_v127]
  CPY [editor:pasteandreplacefromclipboard,h5plib_v126],[editor:pasteandreplacefromclipboard,h5plib_v127]
  CPY [editor:pastebutton,h5plib_v126],[editor:pastebutton,h5plib_v127]
  CPY [editor:pastecontent,h5plib_v126],[editor:pastecontent,h5plib_v127]
  CPY [editor:pastecontentnotsupported,h5plib_v126],[editor:pastecontentnotsupported,h5plib_v127]
  CPY [editor:pastecontentrestricted,h5plib_v126],[editor:pastecontentrestricted,h5plib_v127]
  CPY [editor:pasteerror,h5plib_v126],[editor:pasteerror,h5plib_v127]
  CPY [editor:pastefromclipboard,h5plib_v126],[editor:pastefromclipboard,h5plib_v127]
  CPY [editor:pastenocontent,h5plib_v126],[editor:pastenocontent,h5plib_v127]
  CPY [editor:pastetoonew,h5plib_v126],[editor:pastetoonew,h5plib_v127]
  CPY [editor:pastetooold,h5plib_v126],[editor:pastetooold,h5plib_v127]
  CPY [editor:popularfirst,h5plib_v126],[editor:popularfirst,h5plib_v127]
  CPY [editor:previousimage,h5plib_v126],[editor:previousimage,h5plib_v127]
  CPY [editor:proceedbuttonlabel,h5plib_v126],[editor:proceedbuttonlabel,h5plib_v127]
  CPY [editor:readless,h5plib_v126],[editor:readless,h5plib_v127]
  CPY [editor:readmore,h5plib_v126],[editor:readmore,h5plib_v127]
  CPY [editor:recentlyusedfirst,h5plib_v126],[editor:recentlyusedfirst,h5plib_v127]
  CPY [editor:reloadbuttonlabel,h5plib_v126],[editor:reloadbuttonlabel,h5plib_v127]
  CPY [editor:removefile,h5plib_v126],[editor:removefile,h5plib_v127]
  CPY [editor:removeimage,h5plib_v126],[editor:removeimage,h5plib_v127]
  CPY [editor:removeitem,h5plib_v126],[editor:removeitem,h5plib_v127]
  CPY [editor:requiredproperty,h5plib_v126],[editor:requiredproperty,h5plib_v127]
  CPY [editor:resettooriginallabel,h5plib_v126],[editor:resettooriginallabel,h5plib_v127]
  CPY [editor:savelabel,h5plib_v126],[editor:savelabel,h5plib_v127]
  CPY [editor:savemetadata,h5plib_v126],[editor:savemetadata,h5plib_v127]
  CPY [editor:screenshots,h5plib_v126],[editor:screenshots,h5plib_v127]
  CPY [editor:scriptmissing,h5plib_v126],[editor:scriptmissing,h5plib_v127]
  CPY [editor:searchresults,h5plib_v126],[editor:searchresults,h5plib_v127]
  CPY [editor:selectfiletoupload,h5plib_v126],[editor:selectfiletoupload,h5plib_v127]
  CPY [editor:selectlibrary,h5plib_v126],[editor:selectlibrary,h5plib_v127]
  CPY [editor:semanticserror,h5plib_v126],[editor:semanticserror,h5plib_v127]
  CPY [editor:show,h5plib_v126],[editor:show,h5plib_v127]
  CPY [editor:showimportantinstructions,h5plib_v126],[editor:showimportantinstructions,h5plib_v127]
  CPY [editor:tabtitlebasicfileupload,h5plib_v126],[editor:tabtitlebasicfileupload,h5plib_v127]
  CPY [editor:tabtitleinputlinkurl,h5plib_v126],[editor:tabtitleinputlinkurl,h5plib_v127]
  CPY [editor:textfield,h5plib_v126],[editor:textfield,h5plib_v127]
  CPY [editor:thecontenttype,h5plib_v126],[editor:thecontenttype,h5plib_v127]
  CPY [editor:thiswillpotentially,h5plib_v126],[editor:thiswillpotentially,h5plib_v127]
  CPY [editor:title,h5plib_v126],[editAMOS END
  or:title,h5plib_v127]
  CPY [editor:toolong,h5plib_v126],[editor:toolong,h5plib_v127]
  CPY [editor:tryagain,h5plib_v126],[editor:tryagain,h5plib_v127]
  CPY [editor:tutorial,h5plib_v126],[editor:tutorial,h5plib_v127]
  CPY [editor:unabletointerpreterror,h5plib_v126],[editor:unabletointerpreterror,h5plib_v127]
  CPY [editor:unabletointerpretsolution,h5plib_v126],[editor:unabletointerpretsolution,h5plib_v127]
  CPY [editor:unknownfieldpath,h5plib_v126],[editor:unknownfieldpath,h5plib_v127]
  CPY [editor:uploadinstructionstitle,h5plib_v126],[editor:uploadinstructionstitle,h5plib_v127]
  CPY [editor:uploadplaceholder,h5plib_v126],[editor:uploadplaceholder,h5plib_v127]
  CPY [editor:uploadsuccess,h5plib_v126],[editor:uploadsuccess,h5plib_v127]
  CPY [editor:uploadtablabel,h5plib_v126],[editor:uploadtablabel,h5plib_v127]
  CPY [editor:uploadvideotitle,h5plib_v126],[editor:uploadvideotitle,h5plib_v127]
  CPY [editor:uploading,h5plib_v126],[editor:uploading,h5plib_v127]
  CPY [editor:uploadingthrobber,h5plib_v126],[editor:uploadingthrobber,h5plib_v127]
  CPY [editor:usedforsearchingreportsandcopyrightinformation,h5plib_v126],[editor:usedforsearchingreportsandcopyrightinformation,h5plib_v127]
  CPY [editor:videoquality,h5plib_v126],[editor:videoquality,h5plib_v127]
  CPY [editor:videoqualitydefaultlabel,h5plib_v126],[editor:videoqualitydefaultlabel,h5plib_v127]
  CPY [editor:videoqualitydescription,h5plib_v126],[editor:videoqualitydescription,h5plib_v127]
  CPY [editor:warningchangebrowsingtoseeresults,h5plib_v126],[editor:warningchangebrowsingtoseeresults,h5plib_v127]
  CPY [editor:warningnocontenttypesinstalled,h5plib_v126],[editor:warningnocontenttypesinstalled,h5plib_v127]
  CPY [editor:warningupdateavailablebody,h5plib_v126],[editor:warningupdateavailablebody,h5plib_v127]
  CPY [editor:warningupdateavailabletitle,h5plib_v126],[editor:warningupdateavailabletitle,h5plib_v127]
  CPY [editor:width,h5plib_v126],[editor:width,h5plib_v127]
AMOS END
2024-09-26 10:32:10 +02:00
Jun Pataleta 31537778b9 Merge branch 'MDL-83263-403' of https://github.com/mihailges/moodle into MOODLE_403_STABLE 2024-09-26 16:28:52 +08:00
Michael Pound 78912de2ab MDL-79288 block_accessreview: Improve heatmap colour contrast. 2024-09-26 08:13:44 +00:00
Huong Nguyen 415195088b Merge branch 'MDL-62640-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2024-09-26 11:07:35 +07:00
Cameron Ball c90226fc23 MDL-82298 navigation: Update behat tests for theme_classic 2024-09-26 11:15:06 +08:00
Jun Pataleta 372318257c Merge branch 'MDL-83235-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-26 09:25:46 +08:00
Andrew Nicols 8c6c3f0d06 Merge branch 'MDL-82298-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-09-25 22:56:01 +08:00
Andrew Nicols 7a91817a1c MDL-82298 navigation: Update behat tests 2024-09-25 22:38:32 +08:00
Karjun Loong a4290bec3f MDL-82298 navigation: Add behat tests for secondary menu navigation 2024-09-25 22:38:32 +08:00
Jose 1dcf079286 MDL-82298 navigation: Add setting data-disableactive on moremenu items
This setting will avoid conflicts between checkmark and
bfcache. The removed function added as part of the MDL-77732
is no longer required as the behaviour on the menu items (including the
secondary navigation) is not altered anymore by the menuItemHelper function
(menu_navigation file).
2024-09-25 22:38:31 +08:00
Mihail Geshoski fcbe432066 MDL-83263 grade: Handle undefined array key on grade override revert 2024-09-25 17:27:23 +08:00
Huong Nguyen b7852c7225 Merge branch 'MDL-72856-M403' of https://github.com/michael-milette/moodle into MOODLE_403_STABLE 2024-09-25 08:58:34 +07:00
Sara Arjona 4e7e308a77 weekly release 4.3.7+ 2024-09-24 16:52:12 +02:00
Shamim Rezaie a686489653 Merge branch 'MDL-77625_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-09-24 02:54:13 +10:00
Paul Holden 1179e1f534 MDL-83235 qbank_columnsortorder: correct config retrieval ordering.
There is a unique index on plugin/name, so having a trailing order
clause on value would produce no effect. We also cannot order by
CLOB fields on Oracle, lest it complain loudly.
2024-09-23 08:56:45 +01:00
meirzamoodle ee66d8f2bf MDL-62640 environment: Remove the deprecated slash argument check 2024-09-23 13:06:05 +07:00
Sara Arjona 818863cccd Merge branch 'MDL-81612_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-09-23 07:36:26 +02:00
Paul Holden 1a6d6694a2 MDL-82581 mod_label: avoid overflowing length of label name. 2024-09-20 19:26:53 +01:00
Sara Arjona da802580da weekly release 4.3.7+ 2024-09-20 16:36:12 +02:00
Sara Arjona 534f220f21 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-09-20 16:36:07 +02:00
Ilya Tregubov d2e842f7b3 Merge branch 'MDL-82663-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-20 10:17:44 +08:00
Huong Nguyen 4eb7c5a590 Merge branch 'MDL-82740-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-09-20 08:44:34 +07:00
Ilya Tregubov 3b6f8e334f Merge branch 'MDL-74188-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-20 09:39:55 +08:00
Ilya Tregubov 5ba84639dd Merge branch 'MDL-82488-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-20 09:25:33 +08:00
Tim Hunt 7cc4823684 MDL-81612 assign: show current value when editing a student's extension
Also, if there is not currently an extension set, the set extension form
will default to whatever is the latest out of the due date, the cut-off date
and midnight tonight (in the server time-zone).
2024-09-19 16:06:21 +01:00
Tim Hunt 476ae75b70 MDL-81612 assign: test generation of extensions
Also, some other improvements.

* In Behat you can now use either idnumber of name to identify an
  assignment you are generating things for.
* create_submission generator methods now wants the cmid in $data['cmid']
  not the confusingly named 'assignid'. The old name is accepted, but
  generates a debugging warning. (That will fail the test, but in a way
  that explains how to fix it.)
2024-09-19 16:06:20 +01:00
Sara Arjona 2528a52808 Merge branch 'MDL-83050-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-09-19 17:06:11 +02:00
Jun Pataleta 197aac357e MDL-82740 core: Check for monologo icons in theme overrides 2024-09-19 20:49:43 +08:00
Laurent David 26babd2ac0 MDL-83050 core_courseformat: Fix index highlight for collapsed section
* Collapsed sections on course index is not highlighting the correct
element when scrolling over subelements.
2024-09-19 12:01:17 +02:00
Ilya Tregubov e494cab5b9 Merge branch 'MDL-82909-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-19 15:08:51 +08:00
Ilya Tregubov 298a87baf3 Merge branch 'MDL-82494-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-19 14:05:50 +08:00
Andrew Nicols fd18519ea6 MDL-83205 core: Ensure that redis lock expiry is valid
PHP allows the specification of invalid values for `max_execution_time`,
including negative values. These should be normalised the same way that
an empty (unlimited) value is.
2024-09-19 13:37:02 +08:00
Ilya Tregubov 6f3c6fc5eb Merge branch 'MDL-81987_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2024-09-19 12:50:57 +08:00
Jun Pataleta cf1e58654c MDL-79628 core: Add upgrade notes for the navigation_cache changes 2024-09-19 11:08:48 +08:00
Jun Pataleta f2773ec1cc Merge branch 'MDL-79628-move-navcache-to-muc-feature-MOODLE_403_STABLE' of https://github.com/rajandangi/moodle into MOODLE_403_STABLE 2024-09-19 11:07:36 +08:00
Jun Pataleta 04cf9b4e06 Merge branch 'MDL-80965-403-behat-fix' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-09-19 08:41:50 +08:00
AMOS bot 895acd4aa1 Automatically generated installer lang files 2024-09-19 00:09:29 +00:00
Simey Lameze 1f45291f24 MDL-80965 behat: remove wrong tag from step 2024-09-19 07:49:29 +08:00
Sara Arjona db7296f2f6 Merge branch 'MDL-74917-403-wrong-post-actions-list-in-statslib' of https://github.com/melanietreitinger/moodle into MOODLE_403_STABLE 2024-09-18 17:19:23 +02:00
Huong Nguyen 94a643c0d8 Merge branch 'MDL-81278-403' of https://github.com/mickhawkins/moodle into MOODLE_403_STABLE 2024-09-18 16:09:12 +07:00
Ilya Tregubov f7dd7e096a Merge branch 'MDL-80965-403' of https://github.com/ilyatregubov/moodle into MOODLE_403_STABLE 2024-09-18 15:33:40 +08:00
Ilya Tregubov 674fbe100b MDL-80965 mod_quiz: Code style fixes. 2024-09-18 15:29:54 +08:00
Luca Bösch 93dd090c38 MDL-80965 mod_quiz: Put back random q category on the question page. 2024-09-18 15:29:54 +08:00
AMOS bot 7d229de154 Automatically generated installer lang files 2024-09-18 00:07:40 +00:00
Julien 0457ed850c MDL-77625 question restore: test restoring a quiz into a course twice
The verifies that the previous two commits are doing the right thing.
2024-09-17 16:59:02 +01:00
Tim Hunt 6c325a2b3c MDL-77625 question restore: fix restore of existing questions
Continuing from the last commit, the code to restore question
bank entries, versions and questions, was not taking note of
whether the first stage had indentified questions that did not
need to be restored. This is tricky, but the mapping can only be
worked out for questions, but in the backup file, the questions are
inside the question_bank_entries, and versions, so we encounter
those first.

Now, the code just saves the QBE and QV when it encounters them,
and then does all the processing when it gets to the question,
correctly taking note of whether each question should be restored or not.
In cases where a particular question does not need to be restored,
we still set up the corresponding mappings.
2024-09-17 16:59:02 +01:00
Tim Hunt 31734b11c8 MDL-77625 question restore: fix pre-parsing of questions
Restore of categories and questions happens in several phases.
First, the file is scanned for which questions and categories
it contains, to work out if these are new questions which need
to be restored, or if they already exist in the database in a
place that can be used.

That code had not been updated to cope with the Moodle 4.0
versioning changes, so it is updated here (while still keeping
the code to cope with the old backup format.)
2024-09-17 16:59:01 +01:00
Paul Holden 52746d4c9a MDL-82973 tool_usertours: add missing filelib library require. 2024-09-17 16:49:20 +01:00
Sara Arjona 9a0a83a456 Merge branch 'MDL-82389-403' of https://github.com/ssj365/moodle into MOODLE_403_STABLE 2024-09-17 17:31:52 +02:00
Sara Arjona 3d2052dd89 weekly release 4.3.7+ 2024-09-17 15:09:30 +02:00
sam marshall 84d831318f MDL-83163 core_course: Fresh install fails if dependency on format
If any plugin had dependency on a course format, Moodle fresh install
showed dependency errors (even though course format exists).
2024-09-17 10:40:45 +01:00
Melanie Treitinger 49d74934f1 MDL-74917 core: fix typo in function stats_get_post_actions
Fix phpunit test and apply coding guidelines.
2024-09-16 11:19:22 +02:00
Sara Arjona f01bc02e78 Merge branch 'MDL-82875_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-09-16 09:44:12 +02:00
Michael Hawkins 2ab39f557b MDL-81278 core: Update security.txt expiry 2024-09-16 14:50:43 +08:00
Paul Holden e0933f4f41 MDL-81157 files: consistent repository button styling on small screen. 2024-09-15 11:13:08 +01:00
Paul Holden 7eb8fce830 MDL-82909 theme_boost: ensure we target immediate loading icon only.
Ignoring those used within inplace editable components in the table.
2024-09-15 11:11:50 +01:00
Paul Holden 3c3c7b3268 MDL-82909 javascript: replace custom loading icon with existing module. 2024-09-15 11:11:50 +01:00
Tim Hunt 340e5f9a2c MDL-82875 question export: test for not exporting hidden questions 2024-09-13 16:04:43 +01:00
Vithusha Kethiri 28adbc1374 MDL-82875 qbank_export: Fix removing hidden questions from the export 2024-09-13 16:04:43 +01:00
Sara Arjona 4a5d428cd3 weekly release 4.3.7+ 2024-09-13 13:20:56 +02:00
Sara Arjona abeec88715 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-09-13 13:20:51 +02:00
Paul Holden f16681b267 MDL-83094 customfield: align persistent definitions with DB schema.
Where the field/category tables allow nulls, the definition within
each corresponding persistent should match.
2024-09-12 17:37:04 +01:00
Paul Holden 15b4403980 MDL-82602 webservice: correct config link to enable for mobile. 2024-09-12 08:05:12 +01:00
Huong Nguyen eedb5e5f81 Merge branch 'MDL-82545_403_STABLE' of https://github.com/marxjohnson/moodle into MOODLE_403_STABLE 2024-09-12 10:47:08 +07:00
Huong Nguyen 6b3c54d981 Merge branch 'MDL-82959-MOODLE_403_STABLE' of https://github.com/sh-csg/moodle into MOODLE_403_STABLE 2024-09-12 10:35:28 +07:00
AMOS bot c77d234c19 Automatically generated installer lang files 2024-09-12 00:07:40 +00:00
Shamiso.Jaravaza aa07578b4c MDL-82389 mod_bigbluebuttonbn: Fix disablenotes 2024-09-11 09:32:16 -06:00
Huong Nguyen 9b9965110e Merge branch 'MDL-68676-403' of https://github.com/rhell4/moodle into MOODLE_403_STABLE 2024-09-11 15:50:25 +07:00
Huong Nguyen cd8a797f31 Merge branch 'MDL-75692-403' of https://github.com/laurentdavid/moodle into MOODLE_403_STABLE 2024-09-11 15:45:35 +07:00
Jun Pataleta 342f13d5df Merge branch 'MDL-82492-403' of https://github.com/vladaskidanovas/moodle into MOODLE_403_STABLE 2024-09-11 15:36:51 +08:00
Huong Nguyen 8341d84ce5 Merge branch 'MDL-79020-403' of https://github.com/ferranrecio/moodle into MOODLE_403_STABLE 2024-09-11 09:19:36 +07:00
AMOS bot 6dff42d1af Automatically generated installer lang files 2024-09-11 00:07:44 +00:00
Huong Nguyen 7b7e907e66 weekly release 4.3.7+ 2024-09-10 20:03:06 +07:00
Laurent David 0ae1c37e6d MDL-75692 core_h5p: Debounce resize events
* Make sure that we don't call the resize event too often to
avoid infinite loop when content is auto resizing (fonts for example)
2024-09-10 11:31:52 +02:00
Huong Nguyen bdba5a0594 Merge branch 'MDL-83047-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-09-10 10:47:50 +07:00
Jun Pataleta 782d262ef6 MDL-83047 theme_boost: Add upgrade note for theme plugins 2024-09-10 10:33:47 +08:00
Jun Pataleta 91932bf748 MDL-83047 theme_boost: Apply background colour only on select layouts
* Apply the styling of `background-color` for `.page-header-headings`
only in the maintenance and secure layouts.
2024-09-09 17:01:23 +08:00
Huong Nguyen e9f261c0f9 Merge branch 'MDL-82860-403' of https://github.com/meirzamoodle/moodle into MOODLE_403_STABLE 2024-09-09 14:32:32 +07:00
meirzamoodle 19e92ca42c MDL-82860 atto_link: Set value as default to avoid unexpected behaviour 2024-09-09 08:12:05 +07:00
Jun Pataleta 7f6d05ad04 weekly release 4.3.7+ 2024-09-07 06:45:41 +08:00
Stefan Hanauska f0630a0576 MDL-82959 tool_recyclebin: Avoid null value for forcedsettings 2024-09-06 19:47:42 +02:00
ferranrecio 0fadf1ed19 MDL-79020 core_courseformat: hide completion edit link in bulk edit 2024-09-06 11:10:57 +02:00
Jun Pataleta c9e55faacf Merge branch 'MDL-63399-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-09-06 12:29:25 +08:00
Simey Lameze d76e843d8c MDL-63399 behat: update existing tests to use the better download steps
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-09-06 12:15:02 +08:00
Simey Lameze a776b0bf55 MDL-63399 behat: new steps to verify downloads
Co-authored-by: Tim Hunt <T.J.Hunt@open.ac.uk>
2024-09-06 12:09:27 +08:00
Huong Nguyen 24d28bf68e Merge branch 'MDL-82948-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-09-06 11:01:27 +07:00
Huong Nguyen 80e2791f25 Merge branch 'MDL-82677-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-09-06 10:51:10 +07:00
Huong Nguyen 1e53070414 Merge branch 'MDL-80946_MOODLE_403_STABLE' of https://github.com/michaelkotlyar/moodle into MOODLE_403_STABLE 2024-09-05 15:54:14 +07:00
Michael Kotlyar c3d725a3cd MDL-80946 quizaccess_seb: Remove invalidkeys text if not using SEB. 2024-09-05 09:06:52 +01:00
Huong Nguyen ee96ff39cb Merge branch 'MDL-81909-403' of https://github.com/rezaies/moodle into MOODLE_403_STABLE 2024-09-05 14:50:11 +07:00
Shamim Rezaie 98086bf044 MDL-81909 mod_assign: fix test_attempt_reopen_method_untilpass 2024-09-05 03:28:07 +10:00
Michael Milette dd94fb1f8c MDL-72856 lib: Only inject one robots/noindex in head of Additional HTML 2024-09-04 12:34:04 -04:00
Sara Arjona 755dea3652 Merge branch 'MDL-82995_MOODLE_403_STABLE_feedback_broken_audio_video' of https://github.com/mariusros/moodle into MOODLE_403_STABLE 2024-09-04 12:59:21 +02:00
Huong Nguyen cfe13f3b73 Merge branch 'MDL-80225-403' of https://github.com/ssj365/moodle into MOODLE_403_STABLE 2024-09-04 09:30:22 +07:00
Marius Rosenbaum c0ef7bb0e4 MDL-82995 mod_feedback: fixed width of audio or video frames being 0 2024-09-03 17:15:43 +02:00
Paul Holden 16457d9346 MDL-80929 customfield: observe backup/restore settings to include. 2024-09-03 13:56:32 +01:00
Paul Holden b62d3965f6 MDL-80929 restore: consistent settings definition for custom fields. 2024-09-03 13:50:03 +01:00
Jun Pataleta d14f5eaa6c weekly release 4.3.7+ 2024-09-03 20:05:21 +08:00
Jun Pataleta 68ac6e6ef8 Merge branch 'MDL-82957-403' of https://github.com/roland04/moodle into MOODLE_403_STABLE 2024-09-03 11:42:28 +08:00
Jun Pataleta 4e9a865984 Merge branch 'MDL-82804-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-03 10:32:23 +08:00
Jun Pataleta e6a32d87a5 Merge branch 'MDL-82717-403' of https://github.com/liamgm/moodle into MOODLE_403_STABLE 2024-09-03 10:29:29 +08:00
Jun Pataleta 26f41c348d MDL-82255 editor_tiny: No need for extra styles for RTL 2024-09-02 16:56:01 +08:00
Jun Pataleta 01e3740d89 Merge branch 'MDL-82255-403' of https://github.com/raortegar/moodle into MOODLE_403_STABLE 2024-09-02 16:01:55 +08:00
Ilya Tregubov 2a9305dbf5 Merge branch 'MDL-82220-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-09-02 10:10:46 +08:00
Paul Holden c0afa63f6e MDL-82494 user: correct profile field name formatting method.
Add optional `$escape` parameter to allow for unescaped return.
2024-08-30 09:48:13 +01:00
Paul Holden b7c05d2cc4 MDL-82488 customfield: allow for unescaped field formatted names.
Resolves double encoding of the same in Report builder editor.
2024-08-30 09:44:47 +01:00
Mikel Martín 7676cd334f MDL-82957 course: Fix section bulk actions alignment 2024-08-30 10:44:17 +02:00
Huong Nguyen e28403c470 Moodle release 4.3.7 2024-08-30 13:51:08 +07:00
Paul Holden 6554262006 MDL-82804 badges: define no results notice inside report instances.
When doing so from calling code, the property is not persisted when
filtering/paging (or any AJAX interaction); instead, it should be
set from within the report instance itself.
2024-08-29 17:31:34 +01:00
Huong Nguyen 3f94e61e49 weekly release 4.3.6+ 2024-08-29 18:10:02 +07:00
Paul Holden e109b9dd21 MDL-82483 tag: update the max length constant to match schema. 2024-08-29 10:38:06 +01:00
Liam Moran 896fa8b5a0 MDL-82717 enrol_lti: Make contextmembershipsurl property immutable
The contextmembershipsurl property on the nrsp_info object is itself
an object of type moodle_url so its getter should return a copy
of the moodle_url object instead of a reference to the class-internal
object. This commit adds a test for get_context_memberships_url and
updates the getter so the property is immutable.
2024-08-29 03:47:10 -05:00
Jun Pataleta 47deadb259 MDL-82948 theme_boost: Make <blockquote>'s border a bit darker 2024-08-29 16:04:43 +08:00
raortegar ff344e2495 MDL-82255 editor_tiny: Style blockquote in edit view 2024-08-29 09:25:21 +02:00
Paul Holden 3ea261a1c1 MDL-82365 mod_lesson: stricter equality checks of activity password. 2024-08-29 12:13:31 +08:00
Huong Nguyen f4e7f201bc Merge branch 'MDL-82446-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-08-29 11:05:30 +07:00
Jun Pataleta 0bad70f9c4 Merge branch 'MDL-82651-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-08-29 11:59:40 +08:00
Jun Pataleta c5f8a854b7 Merge branch 'MDL-82802-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-08-29 11:40:04 +08:00
Huong Nguyen 7945536fde MDL-82790 filter_tidy: Fix coding style 2024-08-29 10:19:51 +07:00
Huong Nguyen 330ecf9203 Merge branch 'MDL-82790-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-08-29 10:04:14 +07:00
Ilya Tregubov 75af70591b Merge branch 'MDL-82810_403' of https://github.com/timhunt/moodle into MOODLE_403_STABLE 2024-08-29 10:57:34 +08:00
Huong Nguyen 46f2f2cc29 Merge branch 'MDL-82898-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-08-29 09:50:29 +07:00
Paul Holden 7d2988dfe5 MDL-76962 auth_oauth2: users can only delete their own linked logins. 2024-08-29 10:32:41 +08:00
Stefan Hanauska def0c592a0 MDL-80974 enrol: Set category context for enrol form 2024-08-28 12:33:09 +02:00
Simey Lameze 7669660f9b MDL-82651 behat: remove unnecessary steps 2024-08-28 13:10:35 +08:00
Simey Lameze ed24ab1b04 MDL-82651 behat: wait for button to exist before clicking 2024-08-28 13:10:35 +08:00
Angelia Dela Cruz 3891da010b MDL-82898 enrol_self: Behat to test student enrolment using key 2024-08-28 11:45:59 +08:00
Paul Holden 9e40eb38c0 MDL-82663 user: fix check for current user removing own enrolment.
We only need to remove the current user from selection if they were
ever part of the selection originally.
2024-08-27 16:55:27 +01:00
Marina Glancy 8c875ed525 MDL-82567 core: Add has_capability method
Co-authored-by: David Woloszyn <david.woloszyn@moodle.com>
Co-authored-by: Jun Pataleta <jun@moodle.com>
2024-08-26 04:04:18 +00:00
Huong Nguyen 330d8baf27 MDL-69684 session_redis: Improve upgrade note 2024-08-26 10:59:43 +07:00
Huong Nguyen b1c64a3b25 MDL-69684 session_redis: Improve PHPUnit test 2024-08-26 10:59:36 +07:00
Huong Nguyen 55f37d0dc7 Merge branch 'MDL-69684-M403_its-possible-to-hold-a-redis-session-lock-forever' of https://github.com/ziegenberg/moodle into MOODLE_403_STABLE 2024-08-26 10:58:13 +07:00
rajandangi 1619484716 MDL-79628 navigation: Refactor navigation_cache to use MUC 2024-08-26 09:13:18 +09:30
Shamim Rezaie cd08a0ecee Merge branch 'MDL-82006-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-08-24 16:21:32 +10:00
Sara Arjona 062791efe1 weekly release 4.3.6+ 2024-08-23 16:04:01 +02:00
Jake Dallimore 6bc54e875d Merge branch 'MDL-82787-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-08-23 11:51:41 +08:00
Jun Pataleta f308827fa8 Merge branch 'MDL-79215-MOODLE_403_STABLE' of https://github.com/MichaelReyesCatcan/moodle into MOODLE_403_STABLE 2024-08-22 23:57:34 +08:00
KarlReyesCatalyst 37bca6ce6b MDL-79215 lib/graphlib: Typecasting round() function to INT. 2024-08-22 10:28:25 -04:00
Mark Johnson 916bd72fc1 MDL-82545 gradereport_grader: Limit grades per page
This replaces the limit on the number of students per page with a number
of grades per page, to take into account the number of grade items on a
course.
2024-08-22 11:04:57 +01:00
Shamiso.Jaravaza 342b3707b3 MDL-80225 mod_bigbluebuttonbn: Fix missing recordings 2024-08-21 21:00:40 -06:00
Huong Nguyen 19f639210a Merge branch 'MDL-82841-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-08-22 08:43:56 +07:00
Sara Arjona c66b5072e1 Merge branch 'MDL-82695_403_STABLE' of https://github.com/andrewhancox/moodle into MOODLE_403_STABLE 2024-08-21 16:07:52 +02:00
Sara Arjona 377fcdf1bd Merge branch 'MDL-82655-403' of https://github.com/andelacruz/moodle into MOODLE_403_STABLE 2024-08-21 15:54:27 +02:00
Andrew Hancox 2ad2ba2d2c MDL-82695 qtype_multianswer: Fix div by zero in compute_final_grade 2024-08-21 13:44:47 +01:00
Angelia Dela Cruz 56b3532c63 MDL-82841 mod_workshop: Behat for submissions with set # of attachments 2024-08-21 19:01:41 +08:00
Huong Nguyen 71a0ce575f Merge branch 'MDL-82110-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-08-21 17:43:55 +07:00
Angelia Dela Cruz 1d101c4a52 MDL-82655 mod_workshop: Behat test for manual and random allocation 2024-08-21 17:44:46 +08:00
Jun Pataleta f980061174 Merge branch 'MDL-78785_403_toolbrickfield_rgbcolorcontrasts' of https://github.com/brickfield/moodle into MOODLE_403_STABLE 2024-08-21 11:49:40 +08:00
Andrew Nicols 2af12db84c MDL-82787 behat: Correct stop of webdriver on failure 2024-08-21 08:46:16 +08:00
Sara Arjona 869921831d weekly release 4.3.6+ 2024-08-20 20:16:02 +02:00
Sara Arjona 594795daa6 Merge branch 'install_403_STABLE' of https://git.in.moodle.com/amosbot/moodle-install into MOODLE_403_STABLE 2024-08-20 20:15:59 +02:00
Andrew Nicols 536c0f3e53 MDL-82110 core: Remove debugging for unmigrated hooks in unit tests 2024-08-20 20:28:49 +08:00
Andrew Nicols bff37a3eab MDL-82790 filter_tidy: Disable the tidy filter
This behaves very poorly and for most users has been silently not
working for many years.

When we stopped it from silently failing we discovered a number of
issues that it causes, for example:
- MDL-61117
- MDL-82790
2024-08-20 20:15:23 +08:00
vlad.kidanov c8f98fe85d MDL-82492 gradereport_grader: Grader report HTML output optimization 2024-08-20 10:26:57 +01:00
Sara Arjona 9d7695c5fa Merge branch 'MDL-82455-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-08-19 16:46:03 +02:00
AMOS bot 027ee0fef8 Automatically generated installer lang files 2024-08-19 00:07:43 +00:00
Karen Holland 2e1aa0c321 MDL-78785 tool_brickfield: Processing rgb & rgba color contrasts
Including rgb() & rgba() processing for colour contrast checking.
  Including review requests :void and @covers for phpunit testing.
2024-08-16 17:32:59 +00:00
Tim Hunt 1ffabb9359 MDL-82810 question bank: stop action menu from getting truncated 2024-08-16 13:38:46 +01:00
Paul Holden 48e0029f0f MDL-74188 notes: consistent formatting of text content.
Each method of adding notes, either via UI or external service (via
course participant actions), defined the format of the content
different from one another. Neither of those formats were correct.
2024-08-16 10:20:08 +01:00
Paul Holden f48077b2ed MDL-82220 group: check valid mapping when restoring custom fields. 2024-08-16 10:09:10 +01:00
Paul Holden b3bdb05db1 MDL-82220 backup: ensure correct group/ing custom fields are included.
We should include only the custom field values that belong to those
groups and/or groupings that are being backed up.
2024-08-16 10:09:10 +01:00
Huong Nguyen 07c3ab9006 weekly release 4.3.6+ 2024-08-16 08:39:21 +07:00
Paul Holden b6887b94ce MDL-82455 badges: link report recipients count to appropriate page. 2024-08-15 22:37:21 +01:00
Paul Holden fcf82fab25 MDL-82006 reportbuilder: move filter Behat scenarios inside component. 2024-08-15 13:17:26 +01:00
Paul Holden 0ac01eea47 MDL-82802 tool_xmldb: allow numeric characters in table names. 2024-08-15 12:00:46 +01:00
Huong Nguyen 765b5e48bd Merge branch 'MDL-82724-MOODLE_403_STABLE' of https://github.com/phmemmel/moodle into MOODLE_403_STABLE 2024-08-15 11:00:01 +07:00
Jun Pataleta 0cda695df0 Merge branch 'MDL-82782-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-08-15 11:51:50 +08:00
Jun Pataleta 6f950a3ccf Merge branch 'MDL-82747-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-08-15 11:38:07 +08:00
Andrew Nicols 9c63160dcc MDL-82747 core: Remove erroneously included aws-sdk file import 2024-08-15 11:35:08 +08:00
Jun Pataleta 758503c85d Merge branch 'MDL-82798-403' of https://github.com/HuongNV13/moodle into MOODLE_403_STABLE 2024-08-15 11:13:41 +08:00
Huong Nguyen effe286ca8 Merge branch 'MDL-82758-403' of https://github.com/junpataleta/moodle into MOODLE_403_STABLE 2024-08-15 09:38:07 +07:00
Huong Nguyen c3ed25c71c MDL-82798 qtype_ddmarker: Fix Behat failure 2024-08-15 09:17:23 +07:00
Jun Pataleta b0a74d3487 Merge branch 'MDL-82792-403' of https://github.com/sarjona/moodle into MOODLE_403_STABLE 2024-08-15 10:14:40 +08:00
Jun Pataleta 8e1891c8cb Merge branch 'MDL-82747-403' of https://github.com/andrewnicols/moodle into MOODLE_403_STABLE 2024-08-14 23:04:31 +08:00
Daniel Ziegenberg 3460632bf1 MDL-69684 session: Redis session locks set with expiry atomically
Co-Authored-By: Jamie Chapman-Brown <jamie.chapman-brown@agilicus.com>
Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2024-08-14 17:03:38 +02:00
Andrew Nicols da1163b2b9 MDL-82747 core: Register composer autoload files
Unfortunately PHP does not provide any means to autoload the files that
a functions is located in, even if they are in an namespace.

To work around this, Composer makes use of an `autoload.files` section
in the `composer.json` file. Shortly after the Composer autoloader is
registered with the `spl_autoload_register` call it also includes any
files listed in this section.

Moodle does not do this and really we should be doing so.

This change adds a section to the autoloader registration method which
loads all of the files defined in any third-party library included in
our `lib` directory which contains any `composer.json` file with such a
stanza.
2024-08-14 21:59:52 +08:00
Andrew Nicols 734a5f1e80 MDL-82747 core: Provide a standard way to register the Autoloader 2024-08-14 21:59:52 +08:00
Andrew Nicols 6c4be65b3e MDL-82782 behat: Support runtime scaling of Behat windows 2024-08-14 21:55:32 +08:00
Sara Arjona c49e9f7fc9 MDL-82792 h5p: Fix random behat failures
We've started seeing various failures in Firefox and Classic.
Increasing the default window size fixes them.
2024-08-14 12:18:33 +02:00
Sara Arjona e1daeec17d Merge branch 'MDL-82682-403' of https://github.com/lameze/moodle into MOODLE_403_STABLE 2024-08-14 09:13:09 +02:00
Huong Nguyen 092edd5696 MDL-82682 behat: fix window size failures on Chrome 2024-08-14 11:37:14 +08:00
Simey Lameze 4aa8e531a6 MDL-82682 behat: increase window size to avoid fails 2024-08-14 11:37:14 +08:00
Sara Arjona d0302639fa Merge branch 'mdl-82214-m403' of https://github.com/NeillM/moodle into MOODLE_403_STABLE 2024-08-13 16:08:21 +02:00
Sara Arjona 5312f57718 Merge branch 'MDL-82502-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-08-13 13:15:04 +02:00
Ilya Tregubov e88a87e22e Merge branch 'MDL-64675-403' of https://github.com/paulholden/moodle into MOODLE_403_STABLE 2024-08-13 10:44:36 +08:00
Jun Pataleta 78d0d69cfa MDL-82758 gha: Remove reference to the master branch 2024-08-09 16:16:26 +08:00
Mark Johnson 019bcd6f18 MDL-81987 redis: Set connection and read timeouts to 10 seconds
This allows the site to continue operating in case of degraded
performance, rather than throwing exceptions.
2024-08-08 13:14:30 +01:00
Paul Holden f83bba28b5 MDL-64675 mod_feedback: better detection of last page break element.
Inform user when a page break item cannot be added.
2024-08-07 16:57:46 +01:00
Philipp Memmel f682ff4097 MDL-82724 editor_tiny: Harden check for quicktoolbar and contextmenu 2024-08-07 11:56:07 +02:00
Neill Magill 2e975de3ed MDL-82214 admin: Settings should not change when in read only mode
Before this change if some settings were:

* read only
* visible on a settings page
* are set or have values selected

when the settings page was saved the setting would be set tobe empty,
because the hidden input remained on the page, while the other inputs
where not posted to Moodle.
2024-08-06 09:54:18 +01:00
Paul Holden 018f792769 MDL-82446 files: pleasantly style the filepicker modal containers. 2024-08-05 08:41:03 +01:00
Jun Pataleta 264c286a63 MDL-82677 theme: Set a background colour for page heading
* Set a background colour for the .page-header-headings class.
* Assign the .page-header-headings class to the maintenance mode
template's page header div.
2024-08-02 17:25:02 +08:00
Paul Holden eadd93065c MDL-82502 courseformat: align module action capability checks.
The "Hide/Show/Duplicate" actions should be considered self-contained,
and not also require "manageactivities" capability (per existing docs)
in addition to the specific capability that controls the action itself.

Also ensure the "Duplicate" capability checks are in the course context.
2024-08-02 10:01:22 +01:00
Rossco Hellmans 8854212b09 MDL-68676 mod_assign: check accessallgroups in can_edit_submission()
In can_edit_submission() when the assign group mode is SEPARATEGROUPS
check if the user has the moodle/site:accessallgroups capability before
checking if they are a shared groupmember. Due to the teamsubmission
setting students might not be in a group but can still submit, which
means they are not returned in get_shared_group_members().
2024-06-22 13:42:34 +10:00
2652 changed files with 23349 additions and 24655 deletions
+3
View File
@@ -1,3 +1,6 @@
**/yui/build/** -diff
**/amd/build/** -diff
lib/dml/oci_native_moodle_package.sql text eol=lf
**.js.map -diff
**-min.js -diff
**.min.js -diff
+1 -1
View File
@@ -1,2 +1,2 @@
# Primary donations pages.
custom: ["https://moodle.com/donations/", moodle.org]
custom: ["https://moodle.com/donations/", "https://fund.moodle.org"]
+1 -1
View File
@@ -3,7 +3,7 @@ name: Core
on:
push:
branches-ignore:
- master
- main
- MOODLE_[0-9]+_STABLE
tags-ignore:
- v[0-9]+.[0-9]+.[0-9]+*
+1 -1
View File
@@ -1 +1 @@
lts/iron
lts/jod
@@ -500,4 +500,15 @@ abstract class plugin_management_table extends flexible_table implements dynamic
protected function supports_ordering(): bool {
return $this->plugininfoclass::plugintype_supports_ordering();
}
/**
* Check if the user has the capability to access this table.
*
* Default implementation for plugin management tables is to require 'moodle/site:config' capability
*
* @return bool Return true if capability check passed.
*/
public function has_capability(): bool {
return has_capability('moodle/site:config', $this->get_context());
}
}
+3 -7
View File
@@ -177,6 +177,7 @@ $CFG->admin = array_pop($parts);
ini_set('include_path', $CFG->libdir.'/pear' . PATH_SEPARATOR . ini_get('include_path'));
require_once($CFG->libdir.'/classes/component.php');
require_once($CFG->libdir.'/classes/text.php');
require_once($CFG->libdir.'/classes/string_manager.php');
require_once($CFG->libdir.'/classes/string_manager_install.php');
@@ -192,13 +193,8 @@ require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->libdir.'/componentlib.class.php');
require_once($CFG->dirroot.'/cache/lib.php');
// Register our classloader, in theory somebody might want to replace it to load other hacked core classes.
// Required because the database checks below lead to session interaction which is going to lead us to requiring autoloaded classes.
if (defined('COMPONENT_CLASSLOADER')) {
spl_autoload_register(COMPONENT_CLASSLOADER);
} else {
spl_autoload_register('core_component::classloader');
}
// Register our classloader.
\core_component::register_autoloader();
require($CFG->dirroot.'/version.php');
$CFG->target_release = $release;
+192
View File
@@ -4703,4 +4703,196 @@
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
<MOODLE version="5.0" requires="4.2.3">
<UNICODE level="required">
<FEEDBACK>
<ON_ERROR message="unicoderequired" />
</FEEDBACK>
</UNICODE>
<DATABASE level="required">
<VENDOR name="mariadb" version="10.11.0" />
<VENDOR name="mysql" version="8.4" />
<VENDOR name="postgres" version="14" />
<VENDOR name="mssql" version="14.0" />
</DATABASE>
<PHP version="8.2.0" level="required">
</PHP>
<PCREUNICODE level="optional">
<FEEDBACK>
<ON_CHECK message="pcreunicodewarning" />
</FEEDBACK>
</PCREUNICODE>
<PHP_EXTENSIONS>
<PHP_EXTENSION name="iconv" level="required">
<FEEDBACK>
<ON_ERROR message="iconvrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="mbstring" level="required">
<FEEDBACK>
<ON_ERROR message="mbstringrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="curl" level="required">
<FEEDBACK>
<ON_ERROR message="curlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="openssl" level="required">
<FEEDBACK>
<ON_ERROR message="opensslrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="tokenizer" level="optional">
<FEEDBACK>
<ON_CHECK message="tokenizerrecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="soap" level="optional">
<FEEDBACK>
<ON_CHECK message="soaprecommended" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="ctype" level="required">
<FEEDBACK>
<ON_ERROR message="ctyperequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zip" level="required">
<FEEDBACK>
<ON_ERROR message="ziprequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="zlib" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="gd" level="required">
<FEEDBACK>
<ON_ERROR message="gdrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="simplexml" level="required">
<FEEDBACK>
<ON_ERROR message="simplexmlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="spl" level="required">
<FEEDBACK>
<ON_ERROR message="splrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="pcre" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="dom" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xml" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="xmlreader" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="intl" level="required">
<FEEDBACK>
<ON_ERROR message="intlrequired" />
</FEEDBACK>
</PHP_EXTENSION>
<PHP_EXTENSION name="json" level="required">
</PHP_EXTENSION>
<PHP_EXTENSION name="hash" level="required"/>
<PHP_EXTENSION name="fileinfo" level="required"/>
<PHP_EXTENSION name="sodium" level="required"/>
<PHP_EXTENSION name="exif" level="optional"/>
</PHP_EXTENSIONS>
<PHP_SETTINGS>
<PHP_SETTING name="memory_limit" value="96M" level="required">
<FEEDBACK>
<ON_ERROR message="settingmemorylimit" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="file_uploads" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="settingfileuploads" />
</FEEDBACK>
</PHP_SETTING>
<PHP_SETTING name="opcache.enable" value="1" level="optional">
<FEEDBACK>
<ON_CHECK message="opcacherecommended" />
</FEEDBACK>
</PHP_SETTING>
</PHP_SETTINGS>
<CUSTOM_CHECKS>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_storage_engine" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbstorageengine" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="question/engine/upgrade/upgradelib.php" function="quiz_attempts_upgraded" level="required">
<FEEDBACK>
<ON_ERROR message="quizattemptsupgradedmessage" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_slasharguments" level="optional">
<FEEDBACK>
<ON_CHECK message="slashargumentswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_database_tables_row_format" level="optional">
<FEEDBACK>
<ON_CHECK message="unsupporteddbtablerowformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_unoconv_version" level="optional">
<FEEDBACK>
<ON_CHECK message="unoconvwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_libcurl_version" level="optional">
<FEEDBACK>
<ON_CHECK message="libcurlwarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_format" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfileformat" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_file_per_table" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddbfilepertable" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_large_prefix" level="required">
<FEEDBACK>
<ON_ERROR message="unsupporteddblargeprefix" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_is_https" level="optional">
<FEEDBACK>
<ON_CHECK message="ishttpswarning" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mysql_incomplete_unicode_support" level="optional">
<FEEDBACK>
<ON_CHECK message="incompleteunicodesupport" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_sixtyfour_bits" level="required">
<FEEDBACK>
<ON_ERROR message="sixtyfourbitsrequired" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_max_input_vars" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_admin_dir_usage" level="optional">
<FEEDBACK>
<ON_CHECK message="iscustomadminwarnings" />
</FEEDBACK>
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_xmlrpc_usage" level="optional">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_mod_assignment" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_db_prefix_length" level="required">
</CUSTOM_CHECK>
<CUSTOM_CHECK file="lib/upgradelib.php" function="check_async_backup" level="recommended">
</CUSTOM_CHECK>
</CUSTOM_CHECKS>
</MOODLE>
</COMPATIBILITY_MATRIX>
+2 -2
View File
@@ -25,7 +25,7 @@ namespace core_adminpresets;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass core_adminpresets_generator
*/
class generator_test extends \advanced_testcase {
final class generator_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -180,7 +180,7 @@ class generator_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
+5 -5
View File
@@ -25,7 +25,7 @@ namespace core_adminpresets;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass helper
*/
class helper_test extends \advanced_testcase {
final class helper_test extends \advanced_testcase {
/**
* Test the behaviour of create_preset() method.
@@ -84,7 +84,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function create_preset_provider(): array {
public static function create_preset_provider(): array {
return [
'Default values' => [
],
@@ -177,7 +177,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_item_provider(): array {
public static function add_item_provider(): array {
return [
'Setting without plugin' => [
'name' => 'settingname',
@@ -239,7 +239,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function add_plugin_provider(): array {
public static function add_plugin_provider(): array {
return [
'Plugin: enabled (using int)' => [
'type' => 'plugintype',
@@ -321,7 +321,7 @@ class helper_test extends \advanced_testcase {
*
* @return array
*/
public function change_default_preset_provider(): array {
public static function change_default_preset_provider(): array {
return [
'Starter preset' => [
'preset' => 'starter',
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_admin_setting_bloglevel
*/
class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
final class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -72,7 +72,7 @@ class adminpresets_admin_setting_bloglevel_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Save the bloglevel and set blog_menu block visibility to true' => [
'setttingvalue' => BLOG_USER_LEVEL,
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_admin_setting_sitesettext
*/
class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
final class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -66,7 +66,7 @@ class adminpresets_admin_setting_sitesettext_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Fullname: different value' => [
'settingname' => 'fullname',
@@ -25,7 +25,7 @@ namespace core_adminpresets\local\setting;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\local\setting\adminpresets_setting
*/
class adminpresets_setting_test extends \advanced_testcase {
final class adminpresets_setting_test extends \advanced_testcase {
/**
* Test the behaviour of save_value() method.
@@ -77,7 +77,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_value_provider(): array {
public static function save_value_provider(): array {
return [
'Core setting with the same value is not saved' => [
'category' => 'optionalsubsystems',
@@ -167,7 +167,7 @@ class adminpresets_setting_test extends \advanced_testcase {
*
* @return array
*/
public function save_attributes_values_provider(): array {
public static function save_attributes_values_provider(): array {
return [
'Plugin setting with the same value is not saved' => [
'category' => 'modsettinglesson',
+3 -3
View File
@@ -28,7 +28,7 @@ use stdClass;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\manager
*/
class manager_test extends \advanced_testcase {
final class manager_test extends \advanced_testcase {
/**
* Include required libraries.
*/
@@ -367,7 +367,7 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function export_preset_provider(): array {
public static function export_preset_provider(): array {
return [
'Export settings and plugins, excluding sensible' => [
'includesensible' => false,
@@ -530,7 +530,7 @@ class manager_test extends \advanced_testcase {
*
* @return array
*/
public function import_preset_provider(): array {
public static function import_preset_provider(): array {
return [
'Import settings from an empty file' => [
'filecontents' => '',
@@ -30,7 +30,7 @@ use core_privacy\tests\provider_testcase;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \core_adminpresets\privacy\provider
*/
class privacy_provider_test extends provider_testcase {
final class privacy_provider_test extends provider_testcase {
/**
* Test for provider::get_metadata().
+2 -2
View File
@@ -874,8 +874,8 @@ class core_admin_renderer extends plugin_renderer_base {
protected function mobile_configuration_warning($mobileconfigured) {
$output = '';
if (!$mobileconfigured) {
$settingslink = new moodle_url('/admin/settings.php', ['section' => 'mobilesettings']);
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'));
$settingslink = new moodle_url('/admin/search.php', ['query' => 'enablemobilewebservice']);
$configurebutton = $this->single_button($settingslink, get_string('enablemobilewebservice', 'admin'), 'get');
$output .= $this->warning(get_string('mobilenotconfiguredwarning', 'admin') . '&nbsp;' . $configurebutton);
}
+2 -2
View File
@@ -26,8 +26,8 @@ use core_role_preset;
* @copyright 2013 Petr Skoda {@link http://skodak.org}
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class preset_test extends \advanced_testcase {
public function test_xml() {
final class preset_test extends \advanced_testcase {
public function test_xml(): void {
global $DB;
$roles = $DB->get_records('role');
+1 -1
View File
@@ -40,7 +40,7 @@ use core_privacy\local\request\approved_userlist;
* @copyright 2018 Carlos Escobedo <carlos@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider_test extends provider_testcase {
final class provider_test extends provider_testcase {
/**
* Test to check export_user_preferences.
* returns user preferences data.
@@ -38,6 +38,6 @@
}
}}
<div class="form-checkbox defaultsnext">
<input type="hidden" name="{{name}}" value="{{no}}">
{{^readonly}}<input type="hidden" name="{{name}}" value="{{no}}">{{/readonly}}
<input {{#readonly}}disabled{{/readonly}} type="checkbox" name="{{name}}" value="{{value}}" id="{{id}}" {{#checked}}checked{{/checked}}>
</div>
@@ -35,7 +35,7 @@
}
}}
<div class="form-multicheckbox">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
{{#hasoptions}}
<ul>
{{#options}}
@@ -40,7 +40,7 @@
Setting configmultiselect.
}}
<div class="form-select">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
@@ -59,7 +59,7 @@
Setting configmultiselect with optgroup support.
}}
<div class="form-select">
<input type="hidden" name="{{name}}[xxxxx]" value="1">
{{^readonly}}<input type="hidden" name="{{name}}[xxxxx]" value="1">{{/readonly}}
<select {{#readonly}}disabled{{/readonly}} id="{{id}}" name="{{name}}[]" size="{{size}}" class="form-control" multiple>
{{#options}}
<option value="{{value}}" {{#selected}}selected{{/selected}}>{{name}}</option>
@@ -0,0 +1,40 @@
@core @core_admin
Feature: Plugins overview page
In order to manage plugin and settings
As an admin
I can access the plugins overview page
Background:
Given I am logged in as "admin"
And I navigate to "Plugins > Plugins overview" in site administration
Scenario: An administrator can view plugins overview page
Then "Plugins overview" "text" should exist
And "Check for available updates" "button" should exist
And "All plugins" "link" should exist
And "Additional plugins" "link" should exist
Scenario: An administrator can access list of activities when activity modules cog icon is pressed
When I click on "Settings" "link" in the "Activity modules" "table_row"
Then "Activities" "text" should exist
And "Manage activities" "text" should exist in the ".breadcrumb" "css_element"
And "Activity modules" "link" should exist in the ".breadcrumb" "css_element"
Scenario: An administrator can access plugin settings
When I click on "Settings" "link" in the "Assignment" "table_row"
Then "Assignment settings" "text" should exist
And "Assignment settings" "text" should exist in the ".breadcrumb" "css_element"
And "Assignment" "link" should exist in the ".breadcrumb" "css_element"
And "Activity modules" "link" should exist in the ".breadcrumb" "css_element"
Scenario: Plugins with dependencies cannot be uninstalled
When I navigate to "Plugins > Plugins overview" in site administration
Then "Uninstall" "link" should not exist in the "Database" "table_row"
And "Required by: filter_data" "text" should exist in the "Database" "table_row"
Scenario: Cancelling plugin uninstall does not uninstall the selected plugin
When I click on "Uninstall" "link" in the "Assignment" "table_row"
Then "Uninstalling Assignment" "text" should exist
And "You are about to uninstall the plugin Assignment. This will completely delete everything in the database associated with this plugin, including its configuration, log records, user files managed by the plugin etc. There is no way back and Moodle itself does not create any recovery backup. Are you SURE you want to continue?" "text" should exist
And I click on "Cancel" "button"
And "Uninstall" "link" should exist in the "Assignment" "table_row"
-22
View File
@@ -48,25 +48,3 @@ Feature: View task logs report and use its filters
| operator | shouldornotsee |
| Less than | should not see |
| Greater than | should see |
@javascript
Scenario: Reset task log filters
Given I log in as "admin"
And I change window size to "large"
And I navigate to "Server > Tasks > Task logs" in site administration
When I click on "Filters" "button"
And I set the following fields in the "Result" "core_reportbuilder > Filter" to these values:
| Result operator | Is equal to |
| Result value | Fail |
And I click on "Apply" "button" in the "[data-region='report-filters']" "css_element"
Then I should see "Filters applied"
And I should see "Filters (1)" in the "#dropdownFiltersButton" "css_element"
And I should see "Nothing to display"
And I click on "Reset all" "button" in the "[data-region='report-filters']" "css_element"
And I should see "Filters reset"
And I should not see "Filters (1)" in the "#dropdownFiltersButton" "css_element"
And I should see "Filters" in the "#dropdownFiltersButton" "css_element"
And "[data-region='report-filters']" "css_element" should be visible
And the following fields in the "Result" "core_reportbuilder > Filter" match these values:
| Result operator | Is any value |
And I should not see "Nothing to display"
+2 -2
View File
@@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_block_protection_test extends \externallib_advanced_testcase {
final class set_block_protection_test extends \externallib_advanced_testcase {
/**
* Test execute method with no login.
*/
@@ -85,7 +85,7 @@ class set_block_protection_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_provider(): array {
public static function execute_provider(): array {
return [
[
'block_login',
+3 -3
View File
@@ -33,7 +33,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_plugin_order_test extends \externallib_advanced_testcase {
final class set_plugin_order_test extends \externallib_advanced_testcase {
/**
* Text execute method for editor plugins, which support ordering.
*
@@ -72,7 +72,7 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_editor_provider(): array {
public static function execute_editor_provider(): array {
$pluginmanager = \core_plugin_manager::instance();
$allplugins = array_keys($pluginmanager->get_plugins_of_type('editor'));
@@ -142,7 +142,7 @@ class set_plugin_order_test extends \externallib_advanced_testcase {
$this->assertIsArray(set_plugin_order::execute($plugin, 1));
}
public function execute_non_orderable_provider(): array {
public static function execute_non_orderable_provider(): array {
return [
// Activities do not support ordering.
['mod_assign'],
+2 -2
View File
@@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/webservice/tests/helpers.php');
* @copyright 2023 Andrew Lyons <andrew@nicols.co.uk>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class set_plugin_state_test extends \externallib_advanced_testcase {
final class set_plugin_state_test extends \externallib_advanced_testcase {
/**
* Text execute method.
*
@@ -66,7 +66,7 @@ class set_plugin_state_test extends \externallib_advanced_testcase {
*
* @return array
*/
public function execute_standard_provider(): array {
public static function execute_standard_provider(): array {
$generatetestsfor = function (string $plugin): array {
return [
[
@@ -20,14 +20,9 @@ namespace core_admin\reportbuilder\datasource;
use core\task\database_logger;
use core_reportbuilder_generator;
use core_reportbuilder_testcase;
use core_reportbuilder\local\filters\{boolean_select, date, duration, number, select, text};
use core_reportbuilder\task\send_schedules;
defined('MOODLE_INTERNAL') || die();
global $CFG;
require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
use core_reportbuilder\tests\core_reportbuilder_testcase;
/**
* Unit tests for task logs datasource
@@ -37,7 +32,7 @@ require_once("{$CFG->dirroot}/reportbuilder/tests/helpers.php");
* @copyright 2022 Paul Holden <paulh@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class task_logs_test extends core_reportbuilder_testcase {
final class task_logs_test extends core_reportbuilder_testcase {
/**
* Test default datasource
@@ -110,7 +105,7 @@ class task_logs_test extends core_reportbuilder_testcase {
*
* @return array[]
*/
public function datasource_filters_provider(): array {
public static function datasource_filters_provider(): array {
return [
'Filter name' => ['task_log:name', [
'task_log:name_values' => [send_schedules::class],
@@ -5,16 +5,18 @@ Feature: I can download a preset
| name |
| Custom preset |
@javascript
Scenario: Custom preset settings can be downloaded
Given I log in as "admin"
And I navigate to "Site admin presets" in site administration
When I open the action menu in "Custom preset" "table_row"
Then following "Download" "link" in the "Custom preset" "table_row" should download between "0" and "5000" bytes
Then following "Download" in the "Custom preset" "table_row" should download a file that:
| Has mimetype | text/xml |
| Contains text in xml element | Custom preset |
@javascript
Scenario: Core preset settings can be downloaded
Given I log in as "admin"
And I navigate to "Site admin presets" in site administration
When I open the action menu in "Starter" "table_row"
Then following "Download" "link" in the "Starter" "table_row" should download between "0" and "5000" bytes
Then following "Download" in the "Starter" "table_row" should download a file that:
| Has mimetype | text/xml |
| Contains text in xml element | Starter |
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_deleted
*/
class preset_deleted_test extends \advanced_testcase {
final class preset_deleted_test extends \advanced_testcase {
/**
* Test preset_deleted event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_downloaded
*/
class preset_downloaded_test extends \advanced_testcase {
final class preset_downloaded_test extends \advanced_testcase {
/**
* Test preset_downloaded event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_exported
*/
class preset_exported_test extends \advanced_testcase {
final class preset_exported_test extends \advanced_testcase {
/**
* Test preset_exported event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_imported
*/
class preset_imported_test extends \advanced_testcase {
final class preset_imported_test extends \advanced_testcase {
/**
* Test preset_imported event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_loaded
*/
class preset_loaded_test extends \advanced_testcase {
final class preset_loaded_test extends \advanced_testcase {
/**
* Test preset_loaded event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_previewed
*/
class preset_previewed_test extends \advanced_testcase {
final class preset_previewed_test extends \advanced_testcase {
/**
* Test preset_previewed event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\preset_reverted
*/
class preset_reverted_test extends \advanced_testcase {
final class preset_reverted_test extends \advanced_testcase {
/**
* Test preset_reverted event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\event;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @covers \tool_admin_presets\event\presets_listed
*/
class presets_listed_test extends \advanced_testcase {
final class presets_listed_test extends \advanced_testcase {
/**
* Test presets_listed event.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\base
*/
class base_test extends \advanced_testcase {
final class base_test extends \advanced_testcase {
/**
* Test the behaviour of log() method.
@@ -70,7 +70,7 @@ class base_test extends \advanced_testcase {
*
* @return array
*/
public function log_provider(): array {
public static function log_provider(): array {
return [
// Action = base.
'action=base and mode = show' => [
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\delete
*/
class delete_test extends \advanced_testcase {
final class delete_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -27,7 +27,7 @@ use core_adminpresets\manager;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\export
*/
class export_test extends \advanced_testcase {
final class export_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -156,7 +156,7 @@ class export_test extends \advanced_testcase {
*
* @return array
*/
public function export_execute_provider(): array {
public static function export_execute_provider(): array {
return [
'Export settings and plugins, excluding sensible' => [
'includesensible' => false,
@@ -27,7 +27,7 @@ use core_adminpresets\manager;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\import
*/
class import_test extends \advanced_testcase {
final class import_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -190,7 +190,7 @@ class import_test extends \advanced_testcase {
*
* @return array
*/
public function import_execute_provider(): array {
public static function import_execute_provider(): array {
$fixturesfolder = __DIR__ . '/../../../../../presets/tests/fixtures/';
return [
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\load
*/
class load_test extends \advanced_testcase {
final class load_test extends \advanced_testcase {
/**
* Test the behaviour of show() method when the preset id doesn't exist.
@@ -25,7 +25,7 @@ namespace tool_admin_presets\local\action;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_admin_presets\local\action\rollback
*/
class rollback_test extends \advanced_testcase {
final class rollback_test extends \advanced_testcase {
/**
* Test the behaviour of execute() method.
@@ -0,0 +1,79 @@
@tool @tool_analytics
Feature: Manager can obtain prediction models insights
In order to view prediction models insights
As a manager
I should be able to obtain the prediction models insights
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| s1 | Student | One | s1@example.com |
| m1 | Manager | One | m1@example.com |
| m2 | Manager | Two | m2@example.com |
| t1 | Teacher | One | t1@example.com |
And the following "role assigns" exist:
| user | role | contextlevel | reference |
| m1 | manager | System | |
| m2 | manager | System | |
# To ensure that course start date is in the future, set course start date to "tomorrow".
And the following "courses" exist:
| fullname | shortname | startdate |
| Course 1 | C1 | ##tomorrow## |
| Course 2 | C2 | ##tomorrow## |
| Course 3 | C3 | ##tomorrow## |
And the following "course enrolments" exist:
| user | course | role |
| s1 | C1 | student |
| s1 | C2 | student |
| s1 | C3 | student |
| t1 | C3 | editingteacher |
# Disable "Analytics processes execution via command line only".
And the following config values are set as admin:
| onlycli | 0 | analytics |
@javascript
Scenario: Manager can obtain prediction models insights
Given I log in as "m1"
And I navigate to "Analytics > Analytics models" in site administration
And I click on "Actions" "link" in the "Courses at risk of not starting" "table_row"
And I click on "Execute scheduled analysis" "link" in the "Courses at risk of not starting" "table_row"
And I press "Continue"
When I select "All predictions" from the "contextid" singleselect
# Confirm that only courses without teachers, Course 1 and Course 2, are listed.
Then "Course 1" "text" should exist
And "Course 2" "text" should exist
And "Course 3" "text" should not exist
And I click on "Select Course 1 for bulk action" "checkbox"
And I press "Not applicable"
And I press "Confirm"
# After m1 marks Course 1 as Not applicable, only Course 2 should be listed in the predictions for manager 1.
And "Course 1" "text" should not exist
And "Course 2" "text" should exist
And I log in as "m2"
And I click on ".popover-region-notifications" "css_element"
# Notification of new insight exists.
And "Upcoming courses have no teachers or students" "text" should exist
And I click on "View full notification" "link" in the ".popover-region-notifications" "css_element"
And I click on "View insight" "link"
# Course 1, previously marked as Not applicable by manager 1, is still listed for manager 2.
And "Course 1" "text" should exist
And I click on "View details" "link" in the "Course 1" "table_row"
# Prediction details and indicators are displayed for the selected course.
And the following should exist in the "insights-list" table:
| Description |
| Course 1 |
And the following should exist in the "prediction-calculations" table:
| -1- | -2- |
| Teacher availability | No |
| Student enrolments | Yes |
# Date of prediction analysis execution.
And "##today##%A, %d %B %Y##" "text" should exist in the "Time predicted" "table_row"
And I click on "Select Course 1 for bulk action" "checkbox"
And I press "Accept"
And I press "Confirm"
# Verify that you end up on the page listing predictions for 'No teaching'.
And "Courses at risk of not starting" "text" should exist
And "The following courses due to start in the upcoming days are at risk of not starting because they don't have teachers or students enrolled." "text" should exist
And the following should not exist in the "insights-list" table:
| Description |
| Course 1 |
+1 -1
View File
@@ -45,7 +45,7 @@ require_once($CFG->dirroot . '/analytics/tests/fixtures/test_target_course_level
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @since Moodle 3.8
*/
class external_test extends externallib_advanced_testcase {
final class external_test extends externallib_advanced_testcase {
/**
* test_potential_contexts description
+1 -1
View File
@@ -25,7 +25,7 @@ Feature: Confirm that we can open multiple browser tabs
And I open a tab named "CourseViewer4" on the "My courses" page
# Switch between all the tabs and confirm their different contents.
Then I should see "You're not enrolled in any course"
Then I should see "You're not enrolled in any courses."
And I switch to "CourseViewer2" tab
And "Course 3" "heading" should exist
And I switch to "CourseViewer1" tab
@@ -46,14 +46,14 @@ require_once($CFG->libdir . '/behat/form_field/behat_form_text.php');
* @covers \behat_form_text
* @covers \behat_form_field
*/
class behat_form_text_test extends \basic_testcase {
final class behat_form_text_test extends \basic_testcase {
/**
* Data provider for the test_set_get_value() method.
*
* @return array of value and expectation pairs to be tested.
*/
public function provider_test_set_get_value() {
public static function provider_test_set_get_value(): array {
return [
'null' => [null, null],
'int' => [3, 3],
@@ -68,7 +68,7 @@ class behat_form_text_test extends \basic_testcase {
*
* @param mixed $value value to be set.
* @param mixed $expectation value to be checked.
* @dataProvider provider_test_set_get_value()
* @dataProvider provider_test_set_get_value
*/
public function test_set_get_value($value, $expectation) {
$session = $this->createMock(Session::class);
@@ -85,7 +85,7 @@ class behat_form_text_test extends \basic_testcase {
*
* @return array of decsep, value, match and result pairs to be tested.
*/
public function provider_test_matches() {
public static function provider_test_matches(): array {
return [
'lazy true' => ['.', 'hello', 'hello', true],
'lazy false' => ['.', 'hello', 'bye', false],
@@ -113,7 +113,7 @@ class behat_form_text_test extends \basic_testcase {
* @param mixed $value value to be set.
* @param mixed $match value to be matched.
* @param bool $result expected return status of the function.
* @dataProvider provider_test_matches()
* @dataProvider provider_test_matches
*/
public function test_matches($decsep, $value, $match, $result) {
global $CFG;
@@ -30,7 +30,7 @@ namespace tool_behat\external;
*
* @covers \tool_behat\external\get_entity_generator
*/
class get_entity_generator_test extends \advanced_testcase {
final class get_entity_generator_test extends \advanced_testcase {
/**
* Log in as admin
+1 -5
View File
@@ -1,7 +1,4 @@
<?php
// phpcs:ignoreFile
// @codeCoverageIgnoreStart
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
@@ -43,8 +40,7 @@ require_once($CFG->libdir . '/behat/classes/behat_config_manager.php');
* @copyright 2016 Rajesh Taneja
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class manager_util_test extends \advanced_testcase {
final class manager_util_test extends \advanced_testcase {
/** @var array Fixtures features which are available. */
private $featurepaths = array(
'default' => array(
@@ -245,7 +245,6 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
return $luminosity;
}
/**
* Returns the decimal equivalents for a HEX color. Returns null if it cannot be determined.
* @param string $color The hex color value
@@ -268,13 +267,21 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
*/
public function convert_color(string $color): string {
$color = trim($color);
if (strpos($color, ' ') !== false) {
$colors = explode(' ', $color);
foreach ($colors as $backgroundpart) {
if (substr(trim($backgroundpart), 0, 1) == '#' ||
in_array(trim($backgroundpart), array_keys($this->colornames)) ||
strtolower(substr(trim($backgroundpart), 0, 3)) == 'rgb') {
$color = $backgroundpart;
// Search for color in rgb format first, as this can potentially contain a space.
if (strpos($color, 'rgb') !== false) {
$colors = explode('rgb', $color, 2); // Getting 2 only in array.
// Getting end point of rgb value, i.e. the end bracket.
$endpos = strpos($colors[1], ')');
$color = 'rgb' . substr($colors[1], 0, ($endpos + 1)); // Recompiling rgb value.
} else {
// Splitting multi-value css background value.
if (strpos($color, ' ') !== false) {
$colors = explode(' ', $color);
foreach ($colors as $backgroundpart) {
if (substr(trim($backgroundpart), 0, 1) == '#' ||
in_array(trim($backgroundpart), array_keys($this->colornames))) {
$color = $backgroundpart;
}
}
}
}
@@ -296,9 +303,20 @@ class brickfield_accessibility_color_test extends brickfield_accessibility_test
}
// RGB values.
if (strtolower(substr($color, 0, 3)) == 'rgb') {
$colors = explode(',', trim(str_replace('rgb(', '', $color), '()'));
if (count($colors) != 3) {
return false;
if (strpos($color, 'rgba') !== false) {
$tmpbg = $this->get_rgb($this->defaultbackground);
$colors = explode(',', trim(str_replace('rgba(', '', $color), '()'));
if (count($colors) != 4) {
return false;
}
$colors[0] = round(((1 - $colors[3]) * $tmpbg['r']) + ($colors[3] * $colors[0]));
$colors[1] = round((1 - $colors[3]) * $tmpbg['g']) + ($colors[3] * $colors[1]);
$colors[2] = round((1 - $colors[3]) * $tmpbg['b']) + ($colors[3] * $colors[2]);
} else {
$colors = explode(',', trim(str_replace('rgb(', '', $color), '()'));
if (count($colors) != 3) {
return false;
}
}
$r = intval($colors[0]);
$g = intval($colors[1]);
@@ -62,9 +62,18 @@ class css_text_has_contrast extends brickfield_accessibility_color_test {
foreach ($entries as $element) {
$style = $this->css->get_style($element);
if (isset($style['background-color']) || isset($style['color'])) {
if (isset($style['background-color']) || isset($style['color']) || isset($style['background'])) {
if (!isset($style['background-color'])) {
$style['background-color'] = $this->defaultbackground;
if (isset($style['background'])) {
// Parsing background-color from CSS background shortcut string.
$style['background-color'] = '#' . $this->convert_color($style['background']);
// If value is empty after hash, then use defaultbackground.
if ($style['background-color'] == '#') {
$style['background-color'] = $this->defaultbackground;
}
} else {
$style['background-color'] = $this->defaultbackground;
}
}
if (!isset($style['color'])) {
@@ -82,11 +91,7 @@ class css_text_has_contrast extends brickfield_accessibility_color_test {
$style['color'] = '#' . $this->convert_color($style['color']);
$style['background-color'] = '#' . $this->convert_color($background);
if (substr($background, 0, 3) == "rgb") {
$background = '#' . $this->convert_color($background);
}
$luminosity = $this->get_luminosity($style['color'], $background);
$luminosity = $this->get_luminosity($style['color'], $style['background-color']);
$fontsize = 0;
$bold = false;
$italic = false;
@@ -26,7 +26,7 @@ use tool_brickfield\local\tool\filter;
* @author Jay Churchward (jay@brickfieldlabs.ie)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class accessibility_test extends \advanced_testcase {
final class accessibility_test extends \advanced_testcase {
/**
* Test get_title().
+1 -1
View File
@@ -28,7 +28,7 @@ require_once($CFG->dirroot . '/admin/tool/brickfield/tests/area_test_base.php');
* @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class area_test extends area_test_base {
final class area_test extends area_test_base {
/**
* Test for the area assign intro
*/
+2 -2
View File
@@ -26,8 +26,8 @@ use tool_brickfield\local\tool\filter;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class filters_test extends \advanced_testcase {
public function test_constructor() {
final class filters_test extends \advanced_testcase {
public function test_constructor(): void {
$this->resetAfterTest();
// Variables.
@@ -23,7 +23,7 @@ namespace tool_brickfield\local\areas\core_question;
* @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class questionanswers_test extends \advanced_testcase {
final class questionanswers_test extends \advanced_testcase {
/**
* Set up before class.
@@ -30,7 +30,7 @@ use tool_brickfield\area_test_base;
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \tool_brickfield\local\areas\core_question\base
*/
class questiontext_test extends area_test_base {
final class questiontext_test extends area_test_base {
/**
* Set up before class.
*/
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class a_links_dont_open_new_window_testcase
*/
class a_links_dont_open_new_window_test extends all_checks {
final class a_links_dont_open_new_window_test extends all_checks {
/** @var string Check type */
protected $checktype = 'a_links_dont_open_new_window';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class a_must_contain_text_testcase
*/
class a_must_contain_text_test extends all_checks {
final class a_must_contain_text_test extends all_checks {
/** @var string Check type */
protected $checktype = 'a_must_contain_text';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class a_suspicious_link_text
*/
class a_suspicious_link_text_test extends all_checks {
final class a_suspicious_link_text_test extends all_checks {
/** @var string Check type */
protected $checktype = 'a_suspicious_link_text';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class area_dont_open_new_window_testcase
*/
class area_dont_open_new_window_test extends all_checks {
final class area_dont_open_new_window_test extends all_checks {
/** @var string Check type */
protected $checktype = 'area_dont_open_new_window';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class area_has_alt_value_testcase
*/
class area_has_alt_value_test extends all_checks {
final class area_has_alt_value_test extends all_checks {
/** @var string Check type */
protected $checktype = 'area_has_alt_value';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class basefont_is_not_used_testcase
*/
class basefont_is_not_used_test extends all_checks {
final class basefont_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'basefont_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class blink_is_not_used_testcase
*/
class blink_is_not_used_test extends all_checks {
final class blink_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'blink_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class bold_is_not_used_testcase
*/
class bold_is_not_used_test extends all_checks {
final class bold_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'bold_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class content_too_long_testcase
*/
class content_too_long_test extends all_checks {
final class content_too_long_test extends all_checks {
/** @var string Check type */
protected $checktype = 'content_too_long';
@@ -30,6 +30,7 @@ require_once('all_checks.php');
/**
* Class test_css_text_has_contrast_test
* @covers \tool_brickfield\local\htmlchecker\brickfield_accessibility
*/
class css_text_has_contrast_test extends all_checks {
/** @var string The check type. */
@@ -229,7 +230,7 @@ EOD;
/**
* Test for the area assign intro
*/
public function test_check() {
public function test_check(): void {
$results = $this->get_checker_results($this->htmlfail1);
$this->assertTrue($results[0]->element->tagName == 'p');
@@ -255,7 +256,7 @@ EOD;
/**
* Test with valid colour names.
*/
public function test_check_for_namedcolours() {
public function test_check_for_namedcolours(): void {
$results = $this->get_checker_results($this->namecolours);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -263,7 +264,7 @@ EOD;
/**
* Test with invalid colour names.
*/
public function test_check_for_invalidcolours() {
public function test_check_for_invalidcolours(): void {
$results = $this->get_checker_results($this->invalidcolours);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -271,7 +272,7 @@ EOD;
/**
* Test with invalid colour numeric values.
*/
public function test_check_for_invalidvalues() {
public function test_check_for_invalidvalues(): void {
$results = $this->get_checker_results($this->invalidvalue);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -279,7 +280,7 @@ EOD;
/**
* Test with empty colour values.
*/
public function test_check_for_emptyvalues() {
public function test_check_for_emptyvalues(): void {
$results = $this->get_checker_results($this->emptyvalue);
$this->assertEmpty($results);
}
@@ -287,7 +288,7 @@ EOD;
/**
* Test for text px18 with insufficient contrast of 4.49.
*/
public function test_check_for_px18_fail() {
public function test_check_for_px18_fail(): void {
$results = $this->get_checker_results($this->px18);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -295,7 +296,7 @@ EOD;
/**
* Test for text px19 bold with sufficient contrast of 4.49.
*/
public function test_check_for_px19bold_pass() {
public function test_check_for_px19bold_pass(): void {
$results = $this->get_checker_results($this->px19bold);
$this->assertEmpty($results);
}
@@ -303,7 +304,7 @@ EOD;
/**
* Test for text px18 with sufficient contrast of 4.81.
*/
public function test_check_for_px18_pass() {
public function test_check_for_px18_pass(): void {
$results = $this->get_checker_results($this->px18pass);
$this->assertEmpty($results);
}
@@ -311,7 +312,7 @@ EOD;
/**
* Test for medium (12pt) text with insufficient contrast of 4.49.
*/
public function test_check_for_medium_fail() {
public function test_check_for_medium_fail(): void {
$results = $this->get_checker_results($this->mediumfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -319,7 +320,7 @@ EOD;
/**
* Test for medium (12pt) text with sufficient contrast of 4.81.
*/
public function test_check_for_medium_pass() {
public function test_check_for_medium_pass(): void {
$results = $this->get_checker_results($this->mediumpass);
$this->assertEmpty($results);
}
@@ -327,7 +328,7 @@ EOD;
/**
* Test for larger (14pt) text with insufficient contrast of 2.94.
*/
public function test_check_for_larger_fail() {
public function test_check_for_larger_fail(): void {
$results = $this->get_checker_results($this->largerfail);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -335,7 +336,7 @@ EOD;
/**
* Test for larger (14pt) text with insufficient contrast of 3.02.
*/
public function test_check_for_larger_pass() {
public function test_check_for_larger_pass(): void {
$results = $this->get_checker_results($this->largerpass);
$this->assertTrue($results[0]->element->tagName == 'p');
}
@@ -343,8 +344,118 @@ EOD;
/**
* Test for larger (14pt) bold text with sufficient contrast of 3.02.
*/
public function test_check_for_largerbold_pass() {
public function test_check_for_largerbold_pass(): void {
$results = $this->get_checker_results($this->largerboldpass);
$this->assertEmpty($results);
}
/**
* Test for rgb colors with insufficient contrast.
*/
public function test_bad_rgbcolor(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background-color:rgb(204, 204, 204);">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for rgb colors with sufficient contrast.
*/
public function test_good_rgbcolor(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background-color:rgb(0, 0, 0);">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for named colors with insufficient contrast.
*/
public function test_bad_namedcolor2(): void {
$html = '<body><p style="color:lightcyan; background-color:lavender;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for named colors with sufficient contrast.
*/
public function test_good_namedcolor2(): void {
$html = '<body><p style="color:linen; background-color:darkslategray;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for background value with insufficient contrast.
*/
public function test_bad_backgroundcss(): void {
$html = '<body><p style="color:lightcyan; background:fixed lavender center;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with sufficient contrast.
*/
public function test_good_backgroundcss(): void {
$html = '<body><p style="color:linen; background:fixed darkslategray center;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for background value with rgb with insufficient contrast.
*/
public function test_bad_backgroundcssrgb(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background:fixed rgb(204, 204, 204) center;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with rgb with sufficient contrast.
*/
public function test_good_backgroundcssrgb(): void {
$html = '<body><p style="color:rgb(255, 255, 255); background:fixed rgb(0, 0, 0) center;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
/**
* Test for text with insufficient contrast of 4.3.
*/
public function test_bad_contrastrounding(): void {
$html = '<body><p style="color:#F50000; background-color:white; font-size: 12px">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with rgba with insufficient contrast.
*/
public function test_bad_backgroundcssrgba(): void {
$html = '<body><p style="color:rgba(255, 255, 255, 0.5); background:fixed rgba(0, 204, 204, 0.5) center;">
This is not contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertTrue($results[0]->element->tagName == 'p');
}
/**
* Test for background value with rgba with sufficient contrast.
*/
public function test_good_backgroundcssrgba(): void {
$html = '<body><p style="color:rgba(255, 255, 255, 0.75); background:fixed rgba(0, 0, 0, 0.75) center;">
This is contrasty enough.</p></body>';
$results = $this->get_checker_results($html);
$this->assertEmpty($results);
}
}
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class embed_has_associated_no_embed_testcase
*/
class embed_has_associated_no_embed_test extends all_checks {
final class embed_has_associated_no_embed_test extends all_checks {
/** @var string Check type */
protected $checktype = 'embed_has_associated_no_embed';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class header_h3_testcase
*/
class header_h3_test extends all_checks {
final class header_h3_test extends all_checks {
/** @var string Check type */
protected $checktype = 'header_h3';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class headers_have_text_testcase
*/
class headers_have_text_test extends all_checks {
final class headers_have_text_test extends all_checks {
/** @var string Check type */
protected $checktype = 'headers_have_text';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class i_is_not_used_testcase
*/
class i_is_not_used_test extends all_checks {
final class i_is_not_used_test extends all_checks {
/** @var string Check type */
protected $checktype = 'i_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_is_different_testcase
*/
class img_alt_is_different_test extends all_checks {
final class img_alt_is_different_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_is_different';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_is_too_long_testcase
*/
class img_alt_is_too_long_test extends all_checks {
final class img_alt_is_too_long_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_is_too_long';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_not_empty_in_anchor_testcase
*/
class img_alt_not_empty_in_anchor_test extends all_checks {
final class img_alt_not_empty_in_anchor_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_not_empty_in_anchor';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_alt_not_placeholder_testcase
*/
class img_alt_not_place_holder_test extends all_checks {
final class img_alt_not_place_holder_test extends all_checks {
/** @var string Check type */
protected $checktype = 'img_alt_not_place_holder';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class test_css_text_has_contrast_testcase
*/
class img_has_alt_test extends all_checks {
final class img_has_alt_test extends all_checks {
/** @var string Check type */
public $checktype = 'img_has_alt';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class img_with_map_has_use_map_test
*/
class img_with_map_has_use_map_test extends all_checks {
final class img_with_map_has_use_map_test extends all_checks {
/** @var string Check type */
public $checktype = 'img_with_map_has_use_map';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class legend_text_not_empty_test
*/
class legend_text_not_empty_test extends all_checks {
final class legend_text_not_empty_test extends all_checks {
/** @var string Check type */
public $checktype = 'legend_text_not_empty';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class no_headings_test
*/
class no_headings_test extends all_checks {
final class no_headings_test extends all_checks {
/** @var string Check type */
public $checktype = 'no_headings';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class object_must_have_embeded_test
*/
class object_must_have_embed_test extends all_checks {
final class object_must_have_embed_test extends all_checks {
/** @var string Check type */
public $checktype = 'object_must_have_embed';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class object_must_have_title_test
*/
class object_must_have_title_test extends all_checks {
final class object_must_have_title_test extends all_checks {
/** @var string Check type */
public $checktype = 'object_must_have_title';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class object_must_have_valid_title_test
*/
class object_must_have_valid_title_test extends all_checks {
final class object_must_have_valid_title_test extends all_checks {
/** @var string Check type */
public $checktype = 'object_must_have_valid_title';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class strike_is_not_used_testcase
*/
class strike_is_not_used_test extends all_checks {
final class strike_is_not_used_test extends all_checks {
/** @var string Check type */
public $checktype = 'strike_is_not_used';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_data_should_have_th_test
*/
class table_data_should_have_th_test extends all_checks {
final class table_data_should_have_th_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_data_should_have_th';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_summary_does_not_duplicate_caption_test
*/
class table_summary_does_not_duplicate_caption_test extends all_checks {
final class table_summary_does_not_duplicate_caption_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_summary_does_not_duplicate_caption';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_td_should_not_merge_test
*/
class table_td_should_not_merge_test extends all_checks {
final class table_td_should_not_merge_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_td_should_not_merge';
@@ -31,7 +31,7 @@ require_once('all_checks.php');
/**
* Class table_th_should_have_scope_test
*/
class table_th_should_have_scope_test extends all_checks {
final class table_th_should_have_scope_test extends all_checks {
/** @var string Check type */
public $checktype = 'table_th_should_have_scope';
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class activityresults_test extends \advanced_testcase {
final class activityresults_test extends \advanced_testcase {
public function test_toolname() {
$this->resetAfterTest();
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class checktyperesults_test extends \advanced_testcase {
final class checktyperesults_test extends \advanced_testcase {
public function test_toolname() {
$this->resetAfterTest();
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class errors_test extends \advanced_testcase {
final class errors_test extends \advanced_testcase {
public function test_toolname() {
$this->resetAfterTest();
@@ -24,7 +24,7 @@ namespace tool_brickfield\local\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class printable_test extends \advanced_testcase {
final class printable_test extends \advanced_testcase {
/**
* Test tool name.
+1 -1
View File
@@ -23,7 +23,7 @@ namespace tool_brickfield;
* @copyright 2020 onward: Brickfield Education Labs, https://www.brickfield.ie
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class manager_test extends \advanced_testcase {
final class manager_test extends \advanced_testcase {
/**
* Tests for the function manager::get_all_areas()
@@ -28,7 +28,7 @@ namespace tool_brickfield;
* Unit tests for {@registration tool_brickfield\registration.php}.
* @group tool_brickfield
*/
class registration_test extends \advanced_testcase {
final class registration_test extends \advanced_testcase {
public static function setUpBeforeClass(): void {
global $CFG;
@@ -24,7 +24,7 @@ namespace tool_brickfield;
* @author Jay Churchward (jay@brickfieldlabs.ie)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class scheduler_test extends \advanced_testcase {
final class scheduler_test extends \advanced_testcase {
public function test_request_analysis() {
$this->resetAfterTest();
+6 -6
View File
@@ -27,10 +27,10 @@ use tool_brickfield\local\tool\tool;
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class tool_test extends \advanced_testcase {
final class tool_test extends \advanced_testcase {
/** @var string base 64 image */
protected $base64img = <<<EOF
protected static string $base64img = <<<EOF
<img src="data:image/gif;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwHVYZ/z595kzAP/s7P+goOXMv8+fhw/v739/f+8PD98fH/
8mJl+fn/9ZWb8/PzWlwv///6wWGbImAPgTEMImIN9gUFCEm/gDALULDN8PAD6atYdCTX9gUNKlj8wZAKUsAOzZz+UMAOsJAP/Z2ccMDA8PD/95eX5N
WvsJCOVNQPtfX/8zM8+QePLl38MGBr8JCP+zs9myn/8GBqwpAP/GxgwJCPny78lzYLgjAJ8vAP9fX/+MjMUcAN8zM/9wcM8ZGcATEL+QePdZWf/29u
@@ -118,11 +118,11 @@ EOF;
* Base64 image provider.
* @return array
*/
public function base64_img_provider(): array {
public static function base64_img_provider(): array {
$img = '<img src="myimage.jpg" />';
return [
'Image tag alone (base64)' => [
$this->base64img,
self::$base64img,
true,
],
'Image tag alone (link)' => [
@@ -130,7 +130,7 @@ EOF;
false,
],
'Image tag in string (base64)' => [
"This is my image {$this->base64img}.",
"This is my image " . self::$base64img,
true,
],
'Image tag in string (link)' => [
@@ -162,7 +162,7 @@ EOF;
}
public function test_truncate_base64() {
$truncated = tool::truncate_base64($this->base64img);
$truncated = tool::truncate_base64(self::$base64img);
$this->assertStringContainsString('<img src="data:image/gif;base64..."', $truncated);
}
}
@@ -31,7 +31,7 @@ namespace tool_capability\event;
* @copyright 2014 Petr Skoda
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/
class events_test extends \advanced_testcase {
final class events_test extends \advanced_testcase {
/**
* Setup testcase.
@@ -31,7 +31,7 @@ require_once($CFG->dirroot . '/' . $CFG->admin . '/tool/capability/locallib.php'
/**
* Tests for the capability overview helper functions.
*/
class locallib_test extends \advanced_testcase {
final class locallib_test extends \advanced_testcase {
/**
* Test the function that gets the data - simple case.
+1 -1
View File
@@ -23,7 +23,7 @@ namespace tool_cohortroles;
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class api_test extends \advanced_testcase {
final class api_test extends \advanced_testcase {
/** @var \stdClass $cohort */
protected $cohort = null;
@@ -39,7 +39,7 @@ use core_privacy\local\request\approved_userlist;
* @copyright 2018 Zig Tan <zig@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider_test extends \core_privacy\tests\provider_testcase {
final class provider_test extends \core_privacy\tests\provider_testcase {
/**
* Overriding setUp() function to always reset after tests.
@@ -36,7 +36,7 @@ use moodle_exception;
* @copyright 2020 Ferran Recio <ferran@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class langstring_test extends advanced_testcase {
final class langstring_test extends advanced_testcase {
/**
* Sanity 1.x string
@@ -60,7 +60,7 @@ class langstring_test extends advanced_testcase {
*
* @return array
*/
public function fix_syntax_data() : array {
public static function fix_syntax_data(): array {
return [
// Syntax sanity v1 strings.
[
@@ -34,7 +34,7 @@ use moodle_exception;
* @copyright 2015 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class phpparser_test extends advanced_testcase {
final class phpparser_test extends advanced_testcase {
/**
@@ -79,7 +79,7 @@ class phpparser_test extends advanced_testcase {
*
* @return array
*/
public function parse_provider() : array {
public static function parse_provider(): array {
return [
'Invalid PHP code' => [
'No PHP code', [], false
+9 -9
View File
@@ -31,7 +31,7 @@ use tool_dataprivacy\task\initiate_data_request_task;
* @copyright 2018 Jun Pataleta
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class api_test extends \advanced_testcase {
final class api_test extends \advanced_testcase {
/**
* Ensure that the check_can_manage_data_registry function fails cap testing when a user without capabilities is
@@ -633,7 +633,7 @@ class api_test extends \advanced_testcase {
*
* @return array
*/
public function data_request_creation_provider() {
public static function data_request_creation_provider(): array {
return [
'Export request by user, automatic approval off' => [
false, api::DATAREQUEST_TYPE_EXPORT, 'automaticdataexportapproval', false, 0,
@@ -815,7 +815,7 @@ class api_test extends \advanced_testcase {
*
* @return array
*/
public function get_data_requests_provider() {
public static function get_data_requests_provider(): array {
$completeonly = [api::DATAREQUEST_STATUS_COMPLETE, api::DATAREQUEST_STATUS_DOWNLOAD_READY, api::DATAREQUEST_STATUS_DELETED];
$completeandcancelled = array_merge($completeonly, [api::DATAREQUEST_STATUS_CANCELLED]);
@@ -1000,7 +1000,7 @@ class api_test extends \advanced_testcase {
/**
* Data provider for test_has_ongoing_request.
*/
public function status_provider() {
public static function status_provider(): array {
return [
[api::DATAREQUEST_STATUS_AWAITING_APPROVAL, true],
[api::DATAREQUEST_STATUS_APPROVED, true],
@@ -1090,7 +1090,7 @@ class api_test extends \advanced_testcase {
*
* @return array
*/
public function notify_dpo_provider() {
public static function notify_dpo_provider(): array {
return [
[false, api::DATAREQUEST_TYPE_EXPORT, 'requesttypeexport', 'Export my user data'],
[false, api::DATAREQUEST_TYPE_DELETE, 'requesttypedelete', 'Delete my user data'],
@@ -1442,7 +1442,7 @@ class api_test extends \advanced_testcase {
/**
* Data provider for invalid contextlevel fetchers.
*/
public function invalid_effective_contextlevel_provider() {
public static function invalid_effective_contextlevel_provider(): array {
return [
[CONTEXT_COURSECAT],
[CONTEXT_COURSE],
@@ -2002,7 +2002,7 @@ class api_test extends \advanced_testcase {
/**
* Data provider for \tool_dataprivacy_api_testcase::test_set_context_defaults
*/
public function set_context_defaults_provider() {
public static function set_context_defaults_provider(): array {
$contextlevels = [
[CONTEXT_COURSECAT],
[CONTEXT_COURSE],
@@ -2477,7 +2477,7 @@ class api_test extends \advanced_testcase {
*
* @return array
*/
public function queue_data_request_task_provider() {
public static function queue_data_request_task_provider(): array {
return [
'With user ID provided' => [true],
'Without user ID provided' => [false],
@@ -2514,7 +2514,7 @@ class api_test extends \advanced_testcase {
/**
* Data provider for test_is_automatic_request_approval_on().
*/
public function automatic_request_approval_setting_provider() {
public static function automatic_request_approval_setting_provider(): array {
return [
'Data export, not set' => [
'automaticdataexportapproval', api::DATAREQUEST_TYPE_EXPORT, null, false

Some files were not shown because too many files have changed in this diff Show More