99184 Commits

Author SHA1 Message Date
Sara Arjona
5deb0dad76 Merge branch 'MDL-65959-master' of git://github.com/peterRd/moodle 2020-10-26 22:39:28 +01:00
Peter Dias
ef447fc7ef MDL-65959 badges: Allow cross domain/protocol functionality - obv2 2020-10-27 00:28:16 +08:00
Peter Dias
d3af959238 MDL-65959 badge: Enable OB2.1 *connection* with cross domain ability 2020-10-27 00:27:20 +08:00
Peter Dias
f451ef06cd MDL-65959 badge: Reset external_identifiers if backpack details modified 2020-10-27 00:27:19 +08:00
Peter Dias
8308d10561 MDL-65959 badge: Confirm assertion data is updated before awarding 2020-10-27 00:27:19 +08:00
Peter Dias
6d2df90a0c MDL-65959 badges: Unit and Behat tests 2020-10-27 00:27:19 +08:00
Peter Dias
96ec45cb17 MDL-65959 badges: Do not use badge user preference after verification 2020-10-27 00:27:19 +08:00
Peter Dias
3cae9421a8 MDL-65959 badges: Update the implementation to use admin set backpack 2020-10-27 00:27:19 +08:00
Peter
b6435e0934 MDL-65959 core_badges: Allow ability to upload badges cross domain. 2020-10-27 00:27:18 +08:00
Eloy Lafuente (stronk7)
3dcb4f549f Merge branch 'MDL-69993' of git://github.com/paulholden/moodle into master 2020-10-26 10:42:31 +01:00
Andrew Nicols
08b523871c Merge branch 'MDL-69995-master' of git://github.com/lucaboesch/moodle 2020-10-26 16:00:19 +08:00
Adrian Greeve
e1eba7fa9b MDL-69559 core_course: Fix to bad behat test formatting. 2020-10-26 13:24:12 +08:00
Adrian Greeve
f7df6051c8 Merge branch 'MDL-69559-master-7' of git://github.com/mickhawkins/moodle 2020-10-26 13:02:31 +08:00
Jun Pataleta
1ec3dda801 Merge branch 'MDL-67301-dynreg-squashed' of https://github.com/cengage/moodle 2020-10-26 12:40:31 +08:00
Michael Hawkins
840bcd8810 MDL-69559 course: Add course setting and cap to control course downloads 2020-10-26 10:00:47 +08:00
Michael Hawkins
d661b1148b MDL-69559 course: Add course content download UI and execution page 2020-10-26 10:00:47 +08:00
Michael Hawkins
eb54686500 MDL-69559 course: Add capability and access checks for course download 2020-10-26 10:00:47 +08:00
Michael Hawkins
11456d71f0 MDL-69559 admin: Add course download admin settings and lang strings 2020-10-26 10:00:47 +08:00
Peter
1c4620bce6 MDL-65959 core_badges: Unrestricted user's badger account
* Restructure the email to be backpack specific
* Amended table defintion and functions
2020-10-25 23:03:59 +08:00
Luca Bösch
16d5028567 MDL-69995 backup: padding before activity icons. 2020-10-25 02:08:38 +02:00
Claude Vervoort
84e90d5db4 MDL-67301 mod_lti: dynamic registration 2020-10-24 09:27:55 -04:00
Eloy Lafuente (stronk7)
aed0ee06f9 weekly release 4.0dev 2020-10-23 14:40:27 +02:00
Eloy Lafuente (stronk7)
3980887e7e Merge branch 'install_master' of https://git.in.moodle.com/amosbot/moodle-install into master 2020-10-23 14:40:21 +02:00
Paul Holden
b14cca8a24 MDL-69993 output: correct navigation node type for user reports. 2020-10-23 08:04:44 +01:00
Adrian Greeve
295a1e3bee Merge branch 'MDL-67650-forced-checkbox-textarea' of https://github.com/brendanheywood/moodle 2020-10-23 09:03:20 +08:00
Víctor Déniz
56bbd6d92e Merge branch 'MDL-68664-master' of git://github.com/lameze/moodle 2020-10-22 12:25:56 +01:00
Sara Arjona
6d6f30f298 Merge branch 'MDL-69553' of https://github.com/NeillM/moodle 2020-10-22 08:55:55 +02:00
Brendan Heywood
0f3fdc1133 MDL-67650 admin: Consistently show forced config settings 2020-10-22 13:16:51 +11:00
Jake Dallimore
8006aac75c Merge branch 'MDL-68438_master' of https://github.com/t-schroeder/moodle 2020-10-22 09:30:28 +08:00
Adrian Greeve
a9ab6a1db7 Merge branch 'MDL-69788' of https://github.com/paulholden/moodle 2020-10-22 09:08:50 +08:00
AMOS bot
e0c208e739 Automatically generated installer lang files 2020-10-22 00:07:57 +00:00
Eloy Lafuente (stronk7)
284d0ae8f8 Merge branch 'MDL-66392' of https://github.com/paulholden/moodle into master 2020-10-21 19:43:13 +02:00
Paul Holden
cecd90ffec MDL-66392 analytics: make model output directory default to empty.
Falling back to path within $CFG->dataroot/models.
2020-10-21 18:04:26 +01:00
Sara Arjona
a3039fd1d4 Merge branch 'm40_MDL-68536_Notice_Undefined_Property_CFG_branch' of https://github.com/scara/moodle into master 2020-10-21 18:32:38 +02:00
Sara Arjona
ca2db4be71 Merge branch 'MDL-67673' of https://github.com/stronk7/moodle into master 2020-10-21 17:38:05 +02:00
Víctor Déniz
06fdc6aacf Merge branch 'MDL-69392-master' of git://github.com/junpataleta/moodle 2020-10-21 16:27:05 +01:00
Víctor Déniz
3e6892af4b Merge branch 'MDL-69513-dkim-settings' of https://github.com/brendanheywood/moodle 2020-10-21 11:57:11 +01:00
Eloy Lafuente (stronk7)
07c1522d88 MDL-67673 phpunit: Document all the changes in upgrade.txt
This includes:

- Breaking changes (return void + PHP 7.1 min requirement).
- Deprecations and removals.
- Specifically DbUnit and its replacement.
- Printer showing how to rerun tests removed.
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
cc1c4de8dc MDL-67673 phpunit: Remove the rerun hint on failed test cases
That custom printer was using some hacks to be able to intercept
configuration switches, reflection and other tricks to be able to
print the:

To re-run:
 vendor/bin/phpunit --verbose "core_setuplib_testcase" lib/tests/setuplib_test.php

line on every failed/exceptional/skipped test. After some internal
discussion it was agreed that the normal phpunit output:

1) core_setuplib_testcase::test_localcachedir
Time is lower that allowed start value
Failed asserting that 1601976686 is equal to 1601976687 or is greater than 1601976687.

/var/www/html/lib/phpunit/classes/advanced_testcase.php:446
/var/www/html/lib/tests/setuplib_test.php:170
/var/www/html/lib/phpunit/classes/advanced_testcase.php:80

has already all the information at hand about how to rerun a test:

- vendor/bin/phpunit lib/tests/setuplib_test.php
- vendor/bin/phpunit --filter core_setuplib_testcase::test_localcachedir
- vendor/bin/phpunit --filter ::test_localcachedir
- vendor/bin/phpunit --testsuite componentname_testsuite
- vendor/bin/phpunit --config <<compoenent directory>>
- use --cache-result to get failed tests rerun with ease.
- ...

So better, let's use standard phpunit output and done. Also, note that,
with the upgrade to phpunit 8.5, the printer was not working correctly
any more, causing some switches, like --verbose ... to be ignored. Sure
it could have been fixed but, as commented above, no real need for all
that "parapheranlia" to print the rerun information.
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
447316a9f6 MDL-67673 phpunit: deprecate old phpunit/dbunit stuff
Apply the standard deprecation procedure to the old APIs, to
be removed in Moodle 4.2 (MDL-69882). Existing unit tests
cover the deprecation debugging.

Originally MDL-64600
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
8183def69e MDL-67673 phpunit: Move tests to use new phpunit_dataset
- Make advanced_testcase old methods to use new ones internally.
- Fix advanced_testcase, statslib, mod/quiz and mod/data tests.

Originally MDL-64600
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
ed103545dd MDL-67673 phpunit: Introduce a new, lightweight phpunit_dataset
In charge of taking over the, now removed/archived, phpunit/dbunit
package. It supports loading of CSV/XML files and strings and
PHP arrays, allowing to send the loaded information to database.

Perform some basic controls about the consistency of information,
surely not super-exhaustive but fair enough.

100% covered with unit test.

Planned like an "interim" replacement for phpunit/dbunit uses in
core that, ideally, should be moved to generators stuff at some
point.

Note, expect a few tests in core to fail with this commit, I've
changed some fixtures around. Next commit will fix existing uses.

Originally MDL-64600
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
61ff13f0f3 MDL-67673 phpunit: Disable phpunit results cache by default
It can be enabled if desired from CLI using the --cache-result
option (or modifying the phpunit.xml cacheResult to true).

That will create the .phpunit.result.cache files that,
later, can be used to easily repeat failed (defects) tests or
run the slow ones first and more. See the --order-by option
to know more about all the available criteria. For example:

./vendor/bin/phpunit --order-by=defects --stop-on-defect

(will run all the failed ones first, stopping on problem, useful
for TDD and other scenarios, not so much for complete runs or CI).

Also, added to .gitignore so they won't be committed ever.
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
3a5641cb74 MDL-67673 phpunit: Remove deprecated assertEquals() params
The optional parameters of assertEquals() and assertNotEquals()
are deprecated in PHPUnit 8 (to be removed in PHPUnit 9):

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

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

Initial search done with:

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

Then, running tests and fixing remaining cases.
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
40de097e65 MDL-67673 phpunit: Remove deprecated assertContains() uses on strings
Both assertContains() and assertNotContains() are deprecated in PHPUnit 8
for operations on strings. Also the optional case parameter is. All uses
must be changed to one of:

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

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

Regexp to find all uses:

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

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

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

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

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

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

ag '>(assertAttribute|attribute\(|readAttributte|getStaticAttribute| \
    getObjectAttribute)' -G "test.php"
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
d95c378771 MDL-67673 phpunit: Remove expectedException annotations
While this is not strictly required, because removal will
happen in PHPUnit 9.0, we are already getting rid of all
uses in core.

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

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

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

TODO: Various weirdness found while doing the changes with these tests:
- vendor/bin/phpunit lib/tests/exporter_test.php (created MDL-69700)
- vendor/bin/phpunit competency/tests/external_test.php (same issue than prev one)
- vendor/bin/phpunit question/engine/tests/questionengine_test.php (created MDL-69624)
- vendor/bin/phpunit lib/tests/event_test.php (created MDL-69688)
2020-10-21 12:46:00 +02:00
Eloy Lafuente (stronk7)
598d578af7 MDL-67673 phpunit: Remove deprecated assertArraySubset()
While this is not strictly required, because removal will
happen in PHPUnit 9.0, we are already getting rid of all
uses in core.

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

assertArraySubset() is deprecated and will be removed in PHPUnit 9.
2020-10-21 12:45:59 +02:00
Eloy Lafuente (stronk7)
f94195c320 MDL-67673 phpunit: Remove deprecated assertInternalType()
While this is not strictly required, because removal will
happen in PHPUnit 9.0, we are already getting rid of all
uses in core.

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

assertInternalType() is deprecated and will be removed in
PHPUnit 9. Refactor your test to use assertIsArray(), assertIsBool(),
assertIsFloat(), assertIsInt(), assertIsNumeric(), assertIsObject(),
assertIsResource(), assertIsString(), assertIsScalar(),
assertIsCallable(), or assertIsIterable() instead.
2020-10-21 12:45:59 +02:00
Eloy Lafuente (stronk7)
80be8d2204 MDL-67673 phpunit: phpunit_constraint_object_is_equal_with_exceptions
Constraints are now declared final, so we cannot extend them anymore.

Hence, instead of extending PHPUnit\Framework\Constraint\IsEqual we
are just wrapping it into our constraint.
2020-10-21 12:45:59 +02:00