Every time a unit test for competencies adds a scale, it's creating them
with hardcoded id's - which should always be avoided. So this change has
the unit test keep track of the scale id's created without hardcoding
them.
The validation of the timezone field should not occur, especially
when it is automatically cleaned. Timezones can be volatile, we
must try hard to fallback on real timezones and must not lose reset
the values arbitrarily.
"There is absolutely no need to change $CFG->timezone and user timezones
in database - the timezones may come and go. If you change the value in
upgrade or on the fly you would not be able to get it back. This is the
reason why I implemented the "invalid timezone" thing in server and
user settings instead." - Petr Skoda (MDL-49684)
The value Etc/GMT-14 was added to the list of known timezones,
and Etc/GMT+13 & Etc/GMT+14 were removed as they are not valid.
Tests were added to ensure that legacy user timezones are mapped
to known timezones. Other tests were changed to reflect the changes
with regards to Etc/GMT+13 and +-14.
The course object returned by enrol_get_all_users_courses does not include the defaultgroupingid.
This course object is passed to user_get_user_details - which does need
the defaultgroupingid.
All the other group info is returned (groupmode) etc - so it makes sense to also return this extra field.
This also clarified that developers can decide to force filters
to be ignored when using external_format_text, though they cannot
force filters to be turned on as the clients should be able to
opt-out from filtering should they want to.
One of the unit tests for tool_recyclebin makes an assumption that a
fresh install of Moodle has no course modules, which is true for vanilla
moodle.
However there are some third party plugins (mod_oublog and
mod_respondusws are the ones I've run into) that have a course module
added to the frontpage course on install.
So this change alters the test from comparing the count of modules in
the test course with a hardcoded value to first getting the existing
count of values before performing the actions that affect the count and
then using that value to compare with.