Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDL-68875 privacy: Keep moodle_content_writer->get_path() the same
In MDL-62853 a new clean_param(PARAM_PATH) was added to the moodle_content_writer->get_path() method. And this caused some Windows tests to start failing. The problem is that clean_param(PARAM_PATH) does normalise directory separators to be always forward backslashes and that's normally ok but the get_path() method has some DIRECTORY_SEPARATOR dependent code that stopped working under windows. After analysing various solutions, and trying to keep the behavior EXACTLY like it was before MDL-62853, but with the cleaning included we have applied 2 changes: b) Move the clean_param() to later within the array_map() function, that way the code there, that uses DIRECTORY_SEPARATOR will continue working the same. b) As far as there are more DIRECTORY_SEPARATOR dependent code later in the function, also perform a str_replace() to convert back to the OS directory separator. Those 2 points together (a and b) make the behavior to be 100% the original one, with separators being kept and the paths being cleaned. This solution corresponds 100% with the proposed fixes named 3) and 4) in the issue. Final note... all that DIRECTORY_SEPARATOR maybe needs a review because it really shouldn't be used unless strictly needed. But that falls out from this issue which goal was to keep things safely working like they were before the regression (but with the cleaning applied).
- Loading branch information