forked from moodle/moodle
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDL-74231 grader report: Fix case where old settings are empty / null
There is an edge case in the conversion from old collapse/expand settings (stored as user preference) to the new ones that can lead to notices / warnings / errors. Before PHP 8, they weren't being detected, but now they are. Basically, if some of the expected components of the preferences are missing, then some array (array_diff(), array_intersect()..) operations now are failing, because now those parameter functions do require to be arrays (so empty strings or nulls aren't allowed). Also, there were some cases where the old preference was not being removed ever, so its removal has been moved to a common place at the end of the function, where it's always evaluated in case the preference still exists but is empty of contents. I've tried to cover all the cases I've been able to imagine with unit tests (empty information, some component not set, all components not set...), have moved it to a new unit test because the one already performing some tests with those old preferences was already too long to add more cases.
- Loading branch information
Showing
2 changed files
with
247 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters