[wp-trac] [WordPress Trac] #43977: Fix error-prone string to array parsing
WordPress Trac
noreply at wordpress.org
Tue Oct 2 18:57:28 UTC 2018
#43977: Fix error-prone string to array parsing
----------------------------------------+-----------------------
Reporter: flixos90 | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: 5.0
Component: General | Version:
Severity: normal | Resolution:
Keywords: needs-unit-tests has-patch | Focuses: rest-api
----------------------------------------+-----------------------
Comment (by david.binda):
Running the existing unit tests shows that this change breaks the `status`
param handling in `WP_Comment_Query::get_comment_ids` covered by
`Tests_Comment_Query ::test_status_empty_string` test.
The handling of empty string passed to the `status` param was broken
previously by changes introduced in [30084] and then hotfixed via [30093].
However, the change also breaks another test, which I'm unsure how to get
fixed, as I'm not sure whether the issue is with the test itself, or with
the new code.
The
`WP_Test_REST_Settings_Controller::test_get_item_with_custom_array_setting`
is failing for the case when the option is non-existent. The current test
expects `null` to be returned for a such setting, but the
`WP_REST_Settings_Controller::get_item` function is casting schema's
default `null` value to an array via
`WP_REST_Settings_Controller::prepare_value` function. The current
functionality, for not casting the `null` to an `array` is only possible
due to the described "unexpected" behaviour of the `preg_split` call
without `PREG_SPLIT_NO_EMPTY` flag set.
I'm attaching an updated patch which fixes the broken empty `status` param
handling and which adds unit tests covering the new function and extending
existing unit tests for covering affected places in the code
--
Ticket URL: <https://core.trac.wordpress.org/ticket/43977#comment:3>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list