3890 Commits

Author SHA1 Message Date
Dominik Schilling
4006c07417 I18N: Revert [49236] for now to investigate alternative implementations.
See #39210, #51678, #26511.

git-svn-id: https://develop.svn.wordpress.org/trunk@49566 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-12 14:41:19 +00:00
Peter Wilson
8b2aa594e3 Canonical: Prevent ID enumeration of private post slugs.
Add check to `redirect_canonical()` to ensure the destination post is not using a private post status.

Props dd32, Denis-de-Bernardy, donmhico, helen, nacin, peterwilsoncc, pishmishy, TimothyBlynJacobs, tzafrir, Viper007Bond, whyisjake.
Fixes #5272.



git-svn-id: https://develop.svn.wordpress.org/trunk@49563 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-12 04:14:44 +00:00
Helen Hou-Sandi
2a7d1e2394 Editor: Display short description from block directory in results.
Props dd32, ryelle.
Fixes #51212.


git-svn-id: https://develop.svn.wordpress.org/trunk@49559 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-10 20:24:38 +00:00
Andrew Ozz
60516115ed Tests QUnit: Remove restriction on running the TinyMCE Textpattern WP plugin tests in PhantomJS.
Props @desrosj.
Fixes #42009.

git-svn-id: https://develop.svn.wordpress.org/trunk@49556 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-10 09:16:53 +00:00
Jonathan Desrosiers
92c6723c24 Tests: Remove duplicate fields key in WP_Query test.
Introduced in [46188].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49554 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-09 23:39:25 +00:00
Jonathan Desrosiers
a85803a7ba Build/Test Tools: Remove PHP >= 5.3 check.
WordPress no longer supports PHP < 5.6.20. This check is no longer necessary.

Fixes #51737.

git-svn-id: https://develop.svn.wordpress.org/trunk@49551 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-09 19:40:41 +00:00
Sergey Biryukov
4eee0d2fb7 Tests: Use assertSame() in some newly introduced tests.
This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Follow-up to [48937], [48939], [48940], [48944].

See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@49547 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-09 15:43:14 +00:00
John Blackbourn
e4f47125ab Media: Restore the ability of WP_Image_Editor_Imagick->save() to create a missing directory when needed.
Props eemitch, mikeschroder, hellofromTonya, p00ya, johnbillion

Fixes #51665


git-svn-id: https://develop.svn.wordpress.org/trunk@49542 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-09 13:16:54 +00:00
Sergey Biryukov
31831c74d9 Networks and Sites: Assign the array of site or network data returned from filters to the respective class property:
* The array of network data returned from the `networks_pre_query` filter is assigned to the `networks` property of the current `WP_Network_Query` instance.
* The array of site data returned from the `sites_pre_query` filter is assigned to the `sites` property of the current `WP_Site_Query` instance.

This avoids the performance overhead of calling `WP_Network_Query::get_networks()` or `WP_Site_Query::get_sites()` twice: first when creating the object instance, then to retrieve the filtered results.

This also makes the filters a bit more consistent with other similar filters, e.g. `posts_pre_query`, `terms_pre_query`, `comments_pre_query`, or `users_pre_query`.

Follow-up to [46086], [48990].

Props yakimun, spacedmonkey.
Fixes #51333.

git-svn-id: https://develop.svn.wordpress.org/trunk@49538 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-08 11:45:36 +00:00
Sergey Biryukov
f2302a3112 Build/Test Tools: Check if all the required PHP extensions are loaded before running the test suite.
Add the GD extension as a hard requirement.

This improves the reliability of the test suite and ensures that if the test infrastructure changes in the future and a platform requirement such as GD accidentally gets removed, the tests fail with an appropriate error message.

Follow-up to [48592].

Props ayeshrajans, jrf, johnbillion.
Fixes #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49535 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-07 13:18:24 +00:00
Jonathan Desrosiers
4ddaf4b5df Build/Test Tools: Disable update attempts while running unit tests.
This fixes an issue introduced in [49369] that causes l10n related tests to fail when the PHPUnit test suite is run multiple times without hints of the site being under version control.

[49369] removed the `.git` folder from the ZIP artifact created during the initial setup job. This ZIP file is used by the later jobs in the workflow that run the test suite. The absence of the `.git` folder in these later jobs caused the language packs initially loaded from `phpunit/data/languages` folder to be updated asynchronously, resulting in unexpected values when running the tests a second time.

This change disables all Core auto-update and asynchronous language pack update attempts when running PHPUnit tests.

Props ocean90, SergeyBiryukov.
See #50401.
Fixes #51670.

git-svn-id: https://develop.svn.wordpress.org/trunk@49491 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-03 21:07:33 +00:00
John Blackbourn
8fffa6c243 Tests: Remove some useless assertions from the image editor tests.
In each of these instances the variable being tested is a directly instantiated object and can never be a `WP_Error`, unlike when `wp_get_image_editor()` is used.

See #51344


git-svn-id: https://develop.svn.wordpress.org/trunk@49488 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-03 15:50:51 +00:00
Helen Hou-Sandi
9d356ed8d9 Remove accidentally duplicated code introduced in [49475].
See #46536.


git-svn-id: https://develop.svn.wordpress.org/trunk@49476 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-02 19:07:29 +00:00
Helen Hou-Sandi
140b29db87 Privacy: More precise checking of user request action names.
Props garrett-eclipse.
Fixes #46536.


git-svn-id: https://develop.svn.wordpress.org/trunk@49475 602fd350-edb4-49c9-b593-d223f7449a82
2020-11-02 18:40:06 +00:00
Peter Wilson
088fd3cd39 Taxonomy: Revert Light-weight/partial term counts.
Partial revert of [49141], [49171], [49316].

All functional changes are removed, appropriate term counting unit tests are retained.

See #40351.


git-svn-id: https://develop.svn.wordpress.org/trunk@49451 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-30 04:57:16 +00:00
Sergey Biryukov
bba3c98cec Tests: Remove the GLOB_BRACE flag for glob() function from unit tests.
The flag was previously used in PDF preview tests when cleaning up temporary files.

As noted in the PHP documentation, the flag is not available on some non-GNU systems, like Solaris or Alpine Linux.

Follow-up to [40130].

Props amykamala, sawanoboly.
Fixes #51661.

git-svn-id: https://develop.svn.wordpress.org/trunk@49450 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-30 02:01:33 +00:00
Jonathan Desrosiers
d5ddd6d4be Meta: Sanitize meta key before checking protection status.
Props zieladam, peterwilsoncc, xknown, whyisjake.
Merges [49377,49381] to trunk.

git-svn-id: https://develop.svn.wordpress.org/trunk@49387 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 18:05:21 +00:00
Jonathan Desrosiers
4cbb155815 Embeds: Disable embeds on deactivated Multisite sites.
Props xknown, whyisjake, zieladam, peterwilsoncc.
Merges [49374] to trunk.

git-svn-id: https://develop.svn.wordpress.org/trunk@49383 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 17:59:40 +00:00
Jonathan Desrosiers
add6bedf3a External Libraries: Disable deserialization in Requests_Utility_FilteredIterator
Props xknown, peterwilsoncc, desrosj, dd32, whyisjake.
Merges [49373] to trunk.

git-svn-id: https://develop.svn.wordpress.org/trunk@49382 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 17:58:49 +00:00
Jonathan Desrosiers
c9e6b98968 XML-RPC: Improve error messages for unprivileged users.
Add specific permission checks to avoid ambiguous failure messages.

Props zieladam, peterwilsoncc, xknown, whyisjake.

git-svn-id: https://develop.svn.wordpress.org/trunk@49380 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 17:42:13 +00:00
Sergey Biryukov
6b2f57da36 REST API: Remove accidentally duplicated key in test fixtures.
Follow-up to [49334], [49368].

See #51638.

git-svn-id: https://develop.svn.wordpress.org/trunk@49370 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 01:32:52 +00:00
Sergey Biryukov
df716454a3 REST API: Regenerate test fixtures after [49334].
Props garrett-eclipse.
Fixes #51638.

git-svn-id: https://develop.svn.wordpress.org/trunk@49368 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 01:00:12 +00:00
Sergey Biryukov
75bb139087 Tests: Correct post formats registration in WP_REST_Search_Controller tests.
When declaring theme support for the `post-formats` feature, an array of supported post formats needs to be specified.

Follow-up to [49344], [49354].

Props garrett-eclipse.
Fixes #51390.

git-svn-id: https://develop.svn.wordpress.org/trunk@49365 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-29 00:02:00 +00:00
Sergey Biryukov
4f6eee8e72 Themes: Move the test for post-formats theme support to a more appropriate place.
Follow-up to [49344].

See #51390.

git-svn-id: https://develop.svn.wordpress.org/trunk@49354 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-28 15:12:40 +00:00
Helen Hou-Sandi
357c1c0b86 Post Formats: You have to pass an array of supported post formats.
This shows a `_doing_it_wrong()` message and also returns false instead of true if no array of formats is passed in `add_theme_support()`, avoiding a PHP error.

Post formats maintainership comes full circle. 🙃

Props Mista-Flo, sproutchris, garrett-eclipse.
Fixes #51390.


git-svn-id: https://develop.svn.wordpress.org/trunk@49344 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-27 19:58:10 +00:00
Timothy Jacobs
0187bbdd7e Site Health, App Passwords: Test if the Authorization header is populated correctly.
App Passwords rely on the Authorization header to transport the Basic Auth credentials. For Apache web servers, WordPress automatically includes a RewriteRule to populate the value for servers running in CGI or FastCGI that wouldn't ordinarily populate the value. 

This tests if the header is being filled with the expected values. For Apache users, we direct the user to visit the Permalinks settings to flush their permalinks. For all other users, we direct them to a help document on developer.wordpress.org.

Props Clorith, marybaum, TimothyBlynJacobs.
Fixes #51638.


git-svn-id: https://develop.svn.wordpress.org/trunk@49334 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-27 18:30:03 +00:00
Timothy Jacobs
d56906f5b0 REST API: Support a broader range of JSON media types.
Previously, we only supported `application/json` which prevented using subtypes like `application/activity+json`. This allows for the REST API to `json_decode` the body of requests using a JSON subtype `Content-Type`. Additionally, `wp_die()` now properly sends the error as JSON when a JSON subtype is specified in the `Accept` header.

Props pfefferle.
Fixes #49404.


git-svn-id: https://develop.svn.wordpress.org/trunk@49329 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-27 16:42:38 +00:00
Sergey Biryukov
fce8f2bf4d Posts, Post Types: Check if taxonomy is set for the tax_input parameter of wp_insert_post().
This avoids a PHP notice when creating a post with multiple taxonomies both having a default term.

Props yakimun, szaqal21, hareesh-pillai, audrasjb.
Fixes #51320.

git-svn-id: https://develop.svn.wordpress.org/trunk@49328 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-27 16:40:35 +00:00
Sergey Biryukov
986becfd4d Tests: Rename some files and classes in phpunit/tests/post/ per the naming conventions.
https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/#naming-and-organization

Follow-up to [47780].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49327 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-27 16:07:21 +00:00
Riad Benguella
dda3adec97 Block Editor: Update the WordPress packages for 5.6 beta 2
It contains:

- Fix drop zone indicators for non blocks.
- Fix archives block render function.
- Code block: preserve indentation on paste.
- Turn off autocomplete for token input. 
- Fix parent post selector: ensure initial value available, search performed, all results shown. 
- Fix gallery block undo issue.

Props isabel_brison.
Fixes #51640.


git-svn-id: https://develop.svn.wordpress.org/trunk@49324 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-27 09:32:50 +00:00
Riad Benguella
7be4701404 Block Editor: Fix WP_Block_Supports class compatibility with Gutenberg-provided class.
When using WordPress trunk with Gutenberg master, there's an incompatibility causing 
the dynamic block generated classes to be omitted.
This commit refactors the block supports to fix that problem.

Props nosolosw.
Fixes #51606.


git-svn-id: https://develop.svn.wordpress.org/trunk@49310 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-26 08:29:04 +00:00
Sergey Biryukov
111ebad65e Tests: Correct newly introduced @covers tags.
When global functions are covered, they need to be prefixed with `::` (double colon) to distinguish them from class name.

See https://phpunit.readthedocs.io/en/7.0/annotations.html#covers for more details.

Follow-up to [49000], [49171].

Props jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@49305 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-25 00:31:12 +00:00
Timothy Jacobs
1e030c4062 REST API, XML-RPC: Synchronise empty comment content checks.
The REST API and XML-RPC now uses the same detection methodology for empty comment content as `wp_handle_comment_submission()`. Specifically, comments now have their content trimmed and '0' is allowed.

Props jaswrks, rmccue, dd32, rachelbaker, Cawa-93, aduth, TimothyBlynJacobs.
Fixes #43177.


git-svn-id: https://develop.svn.wordpress.org/trunk@49303 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-24 22:44:38 +00:00
Timothy Jacobs
e66f459435 REST API: Don't validate status if it hasn't changed.
In particular, this allows for sending `status=inherit` to an attachment if it's current status is `inherit`. This status would be rejected because it is an "internal" post status which isn't exposed.

As a general rule, a developer should always be able to PUT back a GET response without error.

Props dfenton, pputzer, TimothyBlynJacobs.
Fixes #40399.



git-svn-id: https://develop.svn.wordpress.org/trunk@49302 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-24 16:02:34 +00:00
Timothy Jacobs
b8cdf1be50 REST API: Support generating comment up links to custom posts controllers.
The comments controller now uses the `rest_get_route_for_post` function introduced in WordPress 5.5 to generate the link. This function is filterable to allow for custom controllers to properly define their REST API route.

Props dsifford, TimothyBlynJacobs.
Fixes #44152.


git-svn-id: https://develop.svn.wordpress.org/trunk@49299 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-24 13:18:50 +00:00
Timothy Jacobs
4e0222d529 REST API: Regenerate wp-api-generated.js after [49276].
See #51583.


git-svn-id: https://develop.svn.wordpress.org/trunk@49296 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-24 04:26:46 +00:00
Jonathan Desrosiers
6ec4cc3468 Build/Test Tools: Remove debug text included in [49267].
See #50401.

git-svn-id: https://develop.svn.wordpress.org/trunk@49280 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-22 17:53:47 +00:00
Timothy Jacobs
fe2053f2c1 App Passwords: Support an app_id to uniquely identify instances of an app.
Apps may now optionally include an `app_id` parameter when directing the user to the Authorize Application screen. This allows for instances of an application to be identified and potentially revoked or blocked.

Props TimothyBlynJacobs, georgestephanis.
Fixes #51583.


git-svn-id: https://develop.svn.wordpress.org/trunk@49276 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-22 15:04:23 +00:00
Peter Wilson
9aececb374 XML-RPC: Fix length validation of anonymous commenter's email address.
Fix the first step of validating an anonymous commenters in which the length is checked prior to running regular expressions.

Follow up to [47808].
Fixes #51595.



git-svn-id: https://develop.svn.wordpress.org/trunk@49271 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-22 02:40:06 +00:00
Sergey Biryukov
cfbb2294f9 Build/Test Tools: Only define WP_PLUGIN_DIR in when running core tests.
This takes into account non-core plugins that rely on `WP_PLUGIN_DIR` being set to the expected plugin's directory in `WP_CONTENT_DIR`, or already have the constant defined.

Follow-up to [49236].

Props pierlo.
Fixes #51594.

git-svn-id: https://develop.svn.wordpress.org/trunk@49269 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-22 00:42:51 +00:00
Peter Wilson
5b5eba1b54 Tests: Use shared fixtures in XML-RPC new comment unit tests.
See #51344.



git-svn-id: https://develop.svn.wordpress.org/trunk@49268 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-22 00:17:10 +00:00
Jonathan Desrosiers
91b5e5255e Build/Test Tools: Pass GitHub Action related environment variables to the Docker container.
This ensures that `WP_UnitTestCase::skipOnAutomatedBranches()` has access to these variables so that time sensitive tests can be skipped when appropriate.

This also updates that logic to be more clear.

Follow up to [49264].

Props ocean90, johnbillion.
See #50401, #49050, #47767.

git-svn-id: https://develop.svn.wordpress.org/trunk@49267 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-21 19:55:17 +00:00
Jonathan Desrosiers
87ff38532d Build/Test Tools: Skip some tests when not in the primary branch.
This skips time sensitive tests when GitHub Actions workflows are not being run on `master` branch.

See #50401, #39486.

git-svn-id: https://develop.svn.wordpress.org/trunk@49264 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-21 14:05:39 +00:00
Timothy Jacobs
18c1ab8e89 REST API: Make sure all supported JSON Schema keywords are output in the index.
Previously, only a small subset of keywords were exposed which limited the utility of `OPTIONS` requests.

Props raubvogel, TimothyBlynJacobs.
Fixes #51020.


git-svn-id: https://develop.svn.wordpress.org/trunk@49257 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 20:17:20 +00:00
Sergey Biryukov
fdcff8b475 Comments: Add a filter for top level comments query arguments in comments_template().
Props hellofromTonya, Howdy_McGee, garrett-eclipse, davidbaumwald, thomaslhotta.
Fixes #38074.

git-svn-id: https://develop.svn.wordpress.org/trunk@49256 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 20:09:39 +00:00
Timothy Jacobs
9defd1fabc REST API: Introduce support for batching API requests.
A new route is introduced, `batch/v1`, that accepts a list of API requests to run. Each request runs in sequence, and the responses are returned in the order they've been received.

Optionally, the `require-all-validate` validation mode can be used to first validate each request's parameters and only proceed with processing if each request validates successfully.

By default, the batch size is limited to 25 requests. This can be controlled using the `rest_get_max_batch_size` filter. Clients are strongly encouraged to discover the maximum batch size supported by the server by making an OPTIONS request to the `batch/v1` endpoint and inspecting the described arguments.

Additionally, the two new methods, `match_request_to_handler` and `respond_to_request` introduced in [48947] now have a `protected` visibility as we don't want to expose the inner workings of the `WP_REST_Server::dispatch` API.

Batching is not currently supported for GET requests.

Fixes #50244.
Props andraganescu, zieladam, TimothyBlynJacobs.


git-svn-id: https://develop.svn.wordpress.org/trunk@49252 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 19:08:48 +00:00
Timothy Jacobs
54aa0bc7d1 REST API: Add support for the oneOf and anyOf keywords.
This allows for REST API routes to define more complex validation requirements as JSON Schema instead of procedural validation.

The error code returned from `rest_validate_value_from_schema` for invalid parameter types has been changed from the generic `rest_invalid_param` to the more specific `rest_invalid_type`.

Props yakimun, johnbillion, TimothyBlynJacobs.
Fixes #51025.


git-svn-id: https://develop.svn.wordpress.org/trunk@49246 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 18:22:39 +00:00
Jonathan Desrosiers
2cd6aef680 Emoji: Update Twemoji to version 13.0.1.
This release fixes minor issues with 8 different Emoji and revises the person/woman/man kneeling Emoji to be in a more obvious kneeling position.

🧎

These updates were pushed to a new, `13.0.1` folder on the CDN in [dotorg:16573].

For a full list of changes in this update, see https://github.com/twitter/twemoji/compare/v13.0.0...v13.0.1.

Props hareesh-pillai, otto42, desrosj.
Fixes #51356.

git-svn-id: https://develop.svn.wordpress.org/trunk@49239 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 16:53:43 +00:00
Dominik Schilling
9e83d04f84 I18N: Introduce WP_Textdomain_Registry to store text domains and their language directory paths.
Previously, when using `switch_to_locale()` all current loaded text domains were unloaded and added to the `$l10n_unloaded` global. This prevented the just-in-time loading for text domains after a switch. The just-in-time loading was also only possible if the translations were stored in `WP_LANG_DIR`. Both issues have been fixed.

* Adds `WP_Textdomain_Registry` to keep track of the language directory paths for all plugins and themes.
* Updates all `load_*_textdomain()`  functions to store the path in `WP_Textdomain_Registry`.
* Adds `$reloadable` parameter to `unload_textdomain()` to define whether a text domain can be loaded just-in-time again. This is used by `WP_Locale_Switcher::load_translations()`.
* Extends `_load_textdomain_just_in_time()` to also support text domains of plugins and themes with custom language directories.
* Fixes the incorrect `test_plugin_translation_after_switching_locale_twice()` test which should have catch this issue earlier.
* Adds a new test plugin/theme to test the loading of translations with a custom language directory.
* Deprecates the now unused and private `_get_path_to_translation()` and `_get_path_to_translation_from_lang_dir()` functions.

Props yoavf, swissspidy, dd32, ocean90.
See #26511.
Fixes #39210.

git-svn-id: https://develop.svn.wordpress.org/trunk@49236 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 16:03:58 +00:00
Sergey Biryukov
2defb1ef6c Media: Introduce a filter for wp_get_attachment_image() HTML output.
Props prionkor, antpb, donmhico, audrasjb, Mista-Flo, hellofromTonya.
Fixes #50801.

git-svn-id: https://develop.svn.wordpress.org/trunk@49234 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 15:29:42 +00:00