826 Commits

Author SHA1 Message Date
Claude Vervoort
15e8003631 MDL-74310 mod_lti: fix ltilinkid on lineitems import 2022-03-24 14:14:56 -04:00
Sara Arjona
869b0fb1bb Merge branch 'MDL-73779_dynreg_sup_msgs' of https://github.com/cengage/moodle 2022-03-09 13:11:12 +01:00
Andrew Nicols
e1b9d5f3cd MDL-73915 js: Drop support for IE and android
Moodle announced that support for IE would be dropped back in August
2020 with Moodle 3.9 but not active steps were taken at that time. That
decision was made in MDLSITE-6109 and this particular step was meant to
be taken in Moodle 3.10.

This is the first step taken to actively drop support for IE.

This commit also bumps the browser support pattern from 0.25% to 0.3%.
The percentage here includes any browser where at least this percentage
of users worldwide may be using a browser. In this case it causes
support for Android 4.3-4.4 to be dropped, which relate to Android
KitKat (released 2013).

This combination of changes means that all of the supported browsers in
our compatibility list support modern features including async,
for...of, classes, native Promises, and more which has a huge impact on
the ease of debugging code, and drastically reduces the minified file
size because a number of native Polyfills included by Babel are no
longer included.
2022-02-23 08:55:20 +08:00
Andrew Nicols
0a4047ab31 MDL-73915 js: Switch amd minification to terser
Unfortunately the babel minify-mangle plugin seems to be abandoned and
in certain circumstances can be very buggy. The only safe options are to
disable it, or to switch to a different minification library.

Not minifying our javascript is not ideal, so this commit updates the
javascript tasks to use a rollup, combined with babel, and terser.

Babel still converts code from ES/UMD/AMD to AMD modules with the
relevant browser support, whilst terser minifies the code.

The rollup bundler handles tracking and creation of sourcemaps, and
supports better parallelisation of the tasks.

Since the upgrade to Node LTS/Gallium requires an upgrade to @babel/core
and eslint, which change the built files anyway, this seems like the
ideal time to make this change.
2022-02-23 08:55:09 +08:00
Andrew Nicols
aa7f7957ea MDL-73915 js: Upgrade babel and eslint 2022-02-23 08:53:54 +08:00
Sara Arjona
ee20a7ae7b Merge branch 'MDL-73834' of https://github.com/stronk7/moodle 2022-02-15 17:18:38 +01:00
Eloy Lafuente (stronk7)
a419c7ec12 MDL-73834 mod_lti: Don't load external artifacts, original behaviour
Summary:

- With PHP7, libxml_disable_entity_loader() was making those
  flags futile, and the DTDs were not being requested ever.
- With PHP8, the flags get precedence and requests for the
  DTD have started to happen.
- Those requests are not served by W3C (1 minute time-out).
- Those DTDs aren't used by anything in code (no entity
  replacement, no validation...)

Hence:
- Remove the flags so it will work the same in PHP7 and PHP8.
- Just to double ensure we don't want any remote loading
  to happen ever, add explicitly the LIBXML_NONET flag.
2022-02-14 10:26:45 +01:00
Eloy Lafuente (stronk7)
d66a5316ae MDL-73826 phpunit: Allow curl mock responses to handle empty strings
Before this commit, is_empty() was being applied before returning
the mock response. But we want to be able to mock the empty response
for some tests, hence moving the condition to null/isset, that is
the value that array_pop() returns where there aren't more elements
in the array.

With that change performed, we can test lti_load_cartridge() with
empty responses, hence adding a new test for that.
2022-02-11 23:50:05 +01:00
Eloy Lafuente (stronk7)
64969e82d7 MDL-73826 mod_lti: Fix for Windows/PHP8 with empty curl responses
Sometimes (detected with Windows, when running @ GHA), both the
response and the error of a curl request to non-existing URL
returns the empty string.

In that case, we cannot call to DOMDocument::loadXML() because the
1st param cannot be empty. So here, whenever that happens, we are
throwing the moodle_exception earlier, instead of waiting for the
XML errors to be processed later.
2022-02-11 23:50:05 +01:00
Eloy Lafuente (stronk7)
3bb4a4009c MDL-73764 tool_xmldb: Regenerate all the files detected by the report
Note that, instead of going one by one to them from the XMLDB Editor
(load, makes some tiny change, save, revert the change, save), the
report includes a commented line that, once uncommented, does regenerate
the file while reporting.

I've left it there as a commodity for the developer.
2022-02-08 19:25:03 +01:00
Claude Vervoort
b4d9519c47 MDL-73779 mod_lti: dynreg fix messages supported 2022-02-04 15:32:55 -05:00
Amaia Anabitarte
4c7fac1957 MDL-71712 lib: Set Moodle files after PHP-JWT upgrade 2022-02-01 16:25:35 +01:00
Eloy Lafuente (stronk7)
100bc51f1d MDL-73485 phpunit: externallib, generator and filter tescase names
All externallib_test, generator_test and filter_test classes:

- Namespaced with component[\level2-API]
- Moved to level2-API subdirectory when required.
- Fixed incorrect use statements with leading backslash.
- Changed code to point to global scope when needed.
- Fix some relative paths and comments here and there.
- All them passing individually.
- Complete runs passing too.

Special mention to tests under testing/tests:

1) The core_testing component doesn't exist.
2) But testing/tests are allowed because there is a suite pointing to it (phpunit.xml).
3) So, the only possible namespace for them is "core".
4) And to avoid problems with other core testcases (under lib/tests)
   they have been renamed to have testing_xxxx as prefix.

Finally, also modified calendar/tests/events/events_test.php because it uses
some renamed (core_calendar_externallib_testcase => \core_calendar\externallib_test)
classes.
2022-01-21 19:48:23 +01:00
Eloy Lafuente (stronk7)
d2ad5e8461 MDL-73523 libraries: openssl_free_xxx() methods are deprecated in php80
So we are putting them under a standard PHP_MAJOR_VERSION < 8 condition.

Also, added TODO comments to remember to delete that block of code when
php80 becomes the minimum required versions in the future (Moodle 4.3?).

When possible, an issue has been created upstream, else a comment in
readme_moodle files has been added.

Finally, when the keys being freed were class or object attributes, also
nullify them (but when the calls were part of destructor methods).
2022-01-20 14:48:22 +01:00
Eloy Lafuente (stronk7)
511801cb46 MDL-73352 phpunit: lib_test and locallib_test testcase names
All lib_test and locallib_test classes:

- Namespaced with component (and API whenever makes sense).
- Fixed incorrect use statements with leading backslash.
- Changed code to point to global scope when needed or add new uses.
- All them passing individually.
- Complete runs passing too.

Special mention to tests under login/tests:

1) The core_login component doesn't exist.
2) But login/tests are allowed because there is a suite pointing to it (phpunit.xml).
3) So, the only possible namespace for them is "core".
4) And to avoid problems with other core testcases (under lib/tests)
   they have been renamed to have login_xxxx as prefix.
2021-12-30 16:21:42 +01:00
Sara Arjona
09d3e88c48 NOBUG: Fixed SVG browser compatibility 2021-12-23 16:29:57 +01:00
Sara Arjona
7f9cf60fd0 Merge branch 'MDL-69023_mod-lti-conflicts-with-text-alignment-in-chat-messages' of https://github.com/ziegenberg/moodle 2021-12-22 16:27:57 +01:00
Shamim Rezaie
dacfebedf3 Merge branch 'MDL-73348' of https://github.com/stronk7/moodle 2021-12-22 21:19:52 +11:00
Bas Brands
f2ddd23ec1 MDL-71457 theme_boost: activity icon styling 2021-12-20 15:02:24 +01:00
Bas Brands
5958c0df0c MDL-71457 theme_boost: replace all activity icons 2021-12-20 09:24:19 +01:00
Eloy Lafuente (stronk7)
e4a2d9c1d4 MDL-73348 phpunit: normalize all privacy provider tests
As far as now all them have correct privacy level2 namespace:
- Move them to "privacy" subdir.
- Rename the files to "provider_test.php", this includes old
  privacy_test.php and privacy_provider_test.php files
- Rename the testcase to provider_test too (to match file name)

Also, change some relative paths and comments to point to new
locations.
2021-12-17 14:21:02 +01:00
Eloy Lafuente (stronk7)
57e6fb7ad9 MDL-73348 phpunit: privacy and privacy_provider testcase names
All privacy_test and privacy_provider_test classes:

- Namespaced with component\privacy.
- Fixed incorrect use statements with leading backslash.
- Changed code to point to global scope when needed.
- Renamed a few files to make all be privacy_test or privacy_provider_test.php
- All them passing individually.
- Complete runs passing too.
2021-12-17 14:21:02 +01:00
Ilya Tregubov
16a7c3a698 Merge branch 'MDL-72413-master-dec13' of https://github.com/peterRd/moodle 2021-12-13 09:35:14 +02:00
Peter Dias
65ae3c1660 MDL-72413 lti: Use the common module for setting the header 2021-12-13 09:49:34 +08:00
Daniel Ziegenberg
73a2110269
MDL-69023 mod_lti: remove superfluous css rule
The mod_lti css rule .path-mod-lti .message conflicts with text
alignment in chats in message an can be removed. The last occurrence
of the css class "message" was deleted from the mod_lti code in 2011
with 036e84c38913630ec5fe48e3ad6f230f1aa32253 (see MDL-30354).

Signed-off-by: Daniel Ziegenberg <daniel@ziegenberg.at>
2021-12-08 19:39:27 +01:00
Eloy Lafuente (stronk7)
deb0e76eee MDL-73278 phpunit: Rename already namespaced classes to match file name
These are the only cases 100% safe to apply the renaming of the
testcase class names to match the file names.

All other cases are not safe, because they are missing namespace
and may enter into name conflicts. Adding namespaces is not as
simple as imagined because it implies to, also, add a good number
of modifications to core. See the issue for more details.
2021-12-07 23:54:29 +01:00
Eloy Lafuente (stronk7)
20d3cd6f88 Merge branch 'MDL-72988' of https://github.com/paulholden/moodle 2021-11-24 23:49:41 +01:00
Ilya Tregubov
47c9289420 MDL-69092 mod_lti: Fix typo. 2021-11-19 09:50:36 +02:00
Andrew Madden
36f3aee38e MDL-69092 mod_lti: Add js_pending to help behat tests 2021-11-19 09:50:35 +02:00
Paul Holden
9a56e2ba1f MDL-72988 mod_lti: improved handling of missing tool endpoint. 2021-11-18 22:55:01 +00:00
Eloy Lafuente (stronk7)
628de2bf08 MDL-69092 mod_lti: SQL fix for cross-db 2021-11-18 20:46:56 +01:00
Andrew Madden
f435f313e0 MDL-69092 mod_lti: Add pagination to toolconfigure.php.
* Add local function to access subsets of proxies and types direct from DB.
* Add local function to access count of proxies and types direct from DB.
* Add new external function to get both proxies and types with pagination.
* Add new external function to get count of proxies and types.
* Implement pagination using page factory in JS.
* Added unit tests to cover new external functions.
* Add mod_lti behat generators and tests.
* Show first and last button in paging bar.
* Created helper class to assist with new functions.
2021-11-17 22:44:56 +11:00
Shamim Rezaie
6b477deb50 Merge branch 'MDL-60850-master' of https://github.com/junpataleta/moodle 2021-11-12 12:59:59 +11:00
Jun Pataleta
6285dfb7e5 MDL-60850 mod_lti: Centre-align tool configure form elements 2021-11-12 09:40:48 +08:00
Jun Pataleta
8f9b534ed2 Merge branch 'MDL-72552' of https://github.com/spvickers/moodle 2021-11-11 11:42:14 +08:00
Adrian Greeve
7520614e26 MDL-71912 course modules: Toggle heading depending on navigation.
If the secondary navigation is on then the activity header does
not need to be displayed twice.
2021-11-09 11:24:08 +08:00
Ilya Tregubov
ac93013cd1 MDL-72995 core_course: Revert "MDL-55231: Partial course cache rebuild"
This reverts commits c1468388bcecec43e671335db8edfc839494e710,
c1468388bcecec43e671335db8edfc839494e710 and
9a900492bc14176c4f56b8e600ef459069a3ec7a.
2021-11-04 11:57:58 +02:00
Stephen Vickers
6fa817db27 MDL-72552 mod_lti: Add context_memberships_v2_url custom parameter 2021-10-26 15:47:45 +01:00
Dongsheng Cai
9a900492bc MDL-55231 core_course: Partial course cache rebuild 2021-10-26 19:08:15 +11:00
Peter Dias
7ab2d7d7bd MDL-52206 quiz: Integration bug fixes 2021-10-08 07:33:05 +02:00
Peter
7a9e3db9dc MDL-52206 completion: Behat test
Co-authored-by: aanabit
2021-10-07 10:17:25 +08:00
Adrian Perez
55f6ff7358 MDL-72060 mod_lti: fix comparison if user is gradable 2021-09-28 17:23:30 +08:00
Eloy Lafuente (stronk7)
b97c021a98 Merge branch 'MDL-69504-master' of https://github.com/snake/moodle 2021-09-07 20:03:45 +02:00
Jake Dallimore
38ff4d528e MDL-69504 mod_lti: check role switches when setting lti roles on launch
is_siteadmin isn't aware of role switches, so make sure we're not in a
switched role before calling that method.
2021-08-24 14:33:11 +08:00
Adrian Greeve
7d435fb5f2 MDL-70196 navigation: Update to feature files.
- Part of: MDL-69588
A lot of tests rely on the last element of the breadcrumb being
active. This updates feature files to not rely on this anymore.
2021-08-23 17:46:38 +08:00
Andrew Nicols
776f4bd80c MDL-72179 behat: Make use of page resolvers 2021-07-26 15:14:28 +08:00
Eloy Lafuente (stronk7)
47f708fc30 MDL-71782 behat: Ensure page after saving changes is there
A similar approach was followed @ MDL-67935, although the
case doesn't seem to be the same.

In any case, it's curious that all local execution are
100% passing and only CIs fail so often. Just guessing if,
maybe, there is some Chrome version factor around (we
are running older, sticky, versions @ CIs.
2021-07-10 00:18:33 +02:00
Claude Vervoort
c8c81a1357 MDL-71887 mod_lti: repost when no cookie due to crosssite request 2021-07-07 14:17:12 +08:00
Andrew Nicols
4f422785c6 MDL-71113 javascript: Improve basic JS Documentation 2021-06-18 09:38:05 +08:00
Andrew Nicols
92179b7057 MDL-71113 js: Fix all jsdoc warnings 2021-06-18 09:38:05 +08:00