4061 Commits

Author SHA1 Message Date
David Baumwald
a58e7e7ca8 Build/Test Tools: Cleanup link-manager.zip after REST API tests are finished.
Introduced in [48242], the `link-manager` plugin is copied from `DIR_TESTDATA/plugins` to `DIR_TESTDATA` during the REST API unit tests, but was not cleaned up afterward.  This created a "dirty" local working copy.  This change `unlink`s the copied plugin from `DIR_TESTDATA` after unit tests are completed.

Props johnbillion, TimothyBlynJacobs, desrosj, rachelbaker.
Fixes #52579.

git-svn-id: https://develop.svn.wordpress.org/trunk@50633 602fd350-edb4-49c9-b593-d223f7449a82
2021-04-01 20:39:56 +00:00
Aaron Jorbin
dbb719f8b4 Build/Test & External Libraries : Fix jQuery deprecation.
jQuery.isArray is deprecated. Array.isArray is safe and used in other parts of the code base.

See: #51812


git-svn-id: https://develop.svn.wordpress.org/trunk@50627 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-31 20:27:06 +00:00
Sergey Biryukov
722ce44ead Docs: Add documentation for the ::setup_export_contents_test method used in personal data export tests.
Follow-up to [50613].

Props hellofromTonya.
See #51423.

git-svn-id: https://develop.svn.wordpress.org/trunk@50616 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-30 14:22:48 +00:00
Sergey Biryukov
1dafd53d20 Code Modernization: Check if the _export_data_grouped post meta is an array when generating a personal data export file.
This avoids a fatal error on PHP 8 in `wp_privacy_generate_personal_data_export_file()` if the `_export_data_grouped` post meta exists but is not an array.

Additionally, refactor unit tests for the function to:
* Reduce redundant code
* Switch to data provider
* Test on the full HTML output instead of select pieces of the output
* Expand unhappy path coverage

Follow-up to [43012], [44786], [47146], [47278].

Props hellofromTonya, jrf, xknown.
See #51423.

git-svn-id: https://develop.svn.wordpress.org/trunk@50613 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-29 19:35:36 +00:00
Sergey Biryukov
74162c8c39 Build/Test Tools: Remove explicit puppeteer dependency.
This was added in [48177] to fix an issue where Puppeteer was not being installed correctly as a dependency of `@wordpress/wp-scripts`. This has been fixed, so this explicit dependency can be removed.

Props isabel_brison, desrosj, SergeyBiryukov.
Fixes #52843.

git-svn-id: https://develop.svn.wordpress.org/trunk@50612 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-29 18:05:47 +00:00
Sergey Biryukov
1b5f02c558 Docs: Spell "non-existent" in a consistent way.
See #52628.

git-svn-id: https://develop.svn.wordpress.org/trunk@50610 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-27 13:32:55 +00:00
Jonathan Desrosiers
6113803d12 Build/Test Tools: Fix code coverage reporting to generate report from src.
Since [50441-50442] switched the test workflows to run from `src` instead of `build`, code coverage reporting has stopped working. This was caused by the code coverage configuration continuing to reference `build`. This corrects the configuration so coverage reporting can resume.

This change also introduces the `workflow_dispatch` event to the workflow, which will allow committers to manually run the workflow when desired. For example, to confirm changes to the test suite do not break reporting.

This also adds the `phpunit.xml.dist` and `tests/phpunit/multisite.xml` files to the `paths` list. Since these files are responsible for configuring the test suite and code coverage reporting, any changes to them should verify that no problems were introduced.

Props jrf, johnbillion.
Fixes #52786. See #51734.

git-svn-id: https://develop.svn.wordpress.org/trunk@50592 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-26 13:23:52 +00:00
Peter Wilson
e2fff3fddc REST API: Prevent database error when deleting meta data.
Add a check to `WP_REST_Meta_Fields::delete_meta_value()` ensuring meta data is set before attempting to delete it from the database. If the data does not exist, the delete is considered successful as the data matches the desired state.

Props BrechtVds, goaroundagain, TimothyBlynJacobs.
Fixes #52787.


git-svn-id: https://develop.svn.wordpress.org/trunk@50567 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-23 23:34:59 +00:00
Peter Wilson
6388364fec Robots: Remove contradictory directive check in wp_robots().
Removes the mutually exclusive directives check in `wp_robots()`, ie allow both `follow` and `nofollow` to be specified and for `archive` and `noarchive` to be specified.

This fixes a bug in which WordPress would defer to the most permissive over the least permissive. When contradictory instructions are included, WordPress will defer to the search engine's or archivist's resolution policy: generally this is to observe the least, not most permissive.

Props Cybr, flixos90.
Fixes #52713.



git-svn-id: https://develop.svn.wordpress.org/trunk@50566 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-23 23:00:03 +00:00
Sergey Biryukov
accdb47ffb Taxonomy: Use a consistent check for the $rewrite['hierarchical'] parameter.
This avoids a "Trying to access array offset on value of type bool" PHP warning in `get_term_link()` if the `$rewrite` parameter of `register_taxonomy()` is set as `false`.

Props Tkama, SergeyBiryukov.
Fixes #52882.

git-svn-id: https://develop.svn.wordpress.org/trunk@50565 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-23 13:53:50 +00:00
Sergey Biryukov
133b6a9f91 Tests: Move the get_current_commenter() method next to the test it's used in.
Follow-up to [48133].

See #52625.

git-svn-id: https://develop.svn.wordpress.org/trunk@50559 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-21 12:53:24 +00:00
Jonathan Desrosiers
afbcd1bd63 Build/Test Tools: Revert [50540].
The E2E workflow is failing after this change. Reverting to to investigate further.

Unprops desrosj.
See #52843.

git-svn-id: https://develop.svn.wordpress.org/trunk@50542 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-18 14:33:12 +00:00
Jonathan Desrosiers
6447fcc8a6 Build/Test Tools: Remove explicit puppeteer dependency.
This was added in [48177] to fix an issue where Puppeteer was not being installed correctly as a dependency of `@wordpress/wp-scripts`. This has been fixed, so this explicit dependency can be removed.

Props isabel_brison.
Fixes #52843.

git-svn-id: https://develop.svn.wordpress.org/trunk@50540 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-18 12:42:28 +00:00
Sergey Biryukov
d984b548c8 Tests: Correct some newly introduced @covers tags.
Follow-up to [50289], [50344].

Props jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@50537 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-16 18:44:40 +00:00
Greg Ziółkowski
380d0445e8 Editor: Make block type aware of variations
Currently block variations are only defined on the client. In some cases, creating block variations on the server can be very useful, especially when needed data is not exposed in the REST APIs.

Related to https://github.com/WordPress/gutenberg/pull/29095.

Props: gwwar, timothyblynjacobs.
Fixes: #52688.



git-svn-id: https://develop.svn.wordpress.org/trunk@50527 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-12 13:33:21 +00:00
John Blackbourn
26772874ce Build/Test Tools: Ensure the test_php_and_js_shortcode_attribute_regexes_match() test can run when testing using either the src or build directory.
Props alexstine, desrosj

See #51734


git-svn-id: https://develop.svn.wordpress.org/trunk@50501 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-05 15:26:22 +00:00
Robert Anderson
0db14900ff Editor: Update @wordpress npm packages
Update @wordpress npm packages to the latest published versions. This includes
block editor bug fixes for WordPress 5.7 RC 3.

See #52718.


git-svn-id: https://develop.svn.wordpress.org/trunk@50496 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-05 04:08:33 +00:00
Sergey Biryukov
5cfc632581 Docs: Update inline comments in some test files per the documentation standards.
See #52628.

git-svn-id: https://develop.svn.wordpress.org/trunk@50491 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-04 10:11:38 +00:00
Peter Wilson
f2779be7f0 Roles/Caps: Return same result from current_user_can and user_can().
Ensure `current_user_can()` and `user_can()` return the same results for logged out users. For core capabilities this changes `user_can( 0, 'exist' )` to return `true` rather than `false` in line with `current_user_can( 'exist' )` for logged out users.

Convert `current_user_can()` and `current_user_can_for_blog()` to wrapper functions ultimately calling `user_can()`.

Add anonymous user to primitive capability checks as appropriate. Convert `Tests_User_Capabilities::test_other_caps_for_all_roles()` to use a data provider and add tests to check whether user exists in the database (`WP_User::exists()`) as that intentionally differs from the `exist` capability.

Props jjj, johnbillion, peterwilsoncc, SergeyBiryukov, TimothyBlynJacobs.
Fixes #52076.



git-svn-id: https://develop.svn.wordpress.org/trunk@50490 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-04 00:12:55 +00:00
Sergey Biryukov
4349463f32 Docs: Update documentation in some WP_REST_Request tests per the documentation standards.
Follow-up to [49329].

See #52628.

git-svn-id: https://develop.svn.wordpress.org/trunk@50484 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-03 19:24:44 +00:00
Sergey Biryukov
fe875e424a Security, Site Health: Do not store HTTPS request error messages in an option.
This changes the logic in `update_https_detection_errors()` to never store error messages from the actual request since they could use a different encoding, which would make storing them in an option potentially fail, leading WordPress to then falsely assume that HTTPS is supported.

While this doesn't actually fix the encoding issue, it is not crucial to do so anyway, since these messages are not used anywhere. A simple differentiation between whether the overall HTTPS request or only the SSL verification failed should be sufficient for the purpose of this function.

Props flixos90, tmatsuur, lukecarbis.
Fixes #52484.

git-svn-id: https://develop.svn.wordpress.org/trunk@50471 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-02 15:06:34 +00:00
John Blackbourn
2ef42cb78c Build/Test Tools: Remove redundant teardown functionality from individual tests which is already covered in the base teardown method.
See #52625


git-svn-id: https://develop.svn.wordpress.org/trunk@50463 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-01 18:42:49 +00:00
Sergey Biryukov
f0ba66d324 Tests: Rename classes in phpunit/tests/l10n/ per the naming conventions.
https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/#naming-and-organization

Follow-up to [47780], [48911], [49327], [50291], [50292], [50342], [50452], [50453].

See #52625.

git-svn-id: https://develop.svn.wordpress.org/trunk@50456 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-28 17:22:27 +00:00
Sergey Biryukov
49e76f4793 Tests: Add missing @covers tags for files in phpunit/tests/load/.
Props sephsekla, jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@50455 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-28 17:12:03 +00:00
Sergey Biryukov
9fd3f595b1 Tests: Add missing @covers tags for files in phpunit/tests/link/.
Props sephsekla, jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@50454 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-28 17:09:39 +00:00
Sergey Biryukov
ca49eb764b Tests: Rename classes in phpunit/tests/load/ per the naming conventions.
https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/#naming-and-organization

Follow-up to [47780], [48911], [49327], [50291], [50292], [50342], [50452].

See #52625.

git-svn-id: https://develop.svn.wordpress.org/trunk@50453 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-28 13:42:01 +00:00
Sergey Biryukov
29fef12e78 Tests: Rename some classes in phpunit/tests/link/ per the naming conventions.
https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/#naming-and-organization

Follow-up to [47780], [48911], [49327], [50291], [50292], [50342].

See #52625.

git-svn-id: https://develop.svn.wordpress.org/trunk@50452 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-28 13:39:07 +00:00
John Blackbourn
055deeabff Build/Test Tools: Fix and standardise calls to the tearDown() method in the test suite.
The parent method should be called after any test-specific teardown.

See #52625


git-svn-id: https://develop.svn.wordpress.org/trunk@50450 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-27 17:08:26 +00:00
John Blackbourn
3542c3b4c0 Build/Test Tools: Fix and standardise calls to the setUp() and setUpBeforeClass() methods in the test suite.
The parent methods should always be called before any test-specific functionality is set up, unless there is a specific and documented reason.

See #52625


git-svn-id: https://develop.svn.wordpress.org/trunk@50449 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-27 16:54:52 +00:00
John Blackbourn
22e72cbdf2 Build/Test Tools: Add some more tests that perform HTTP requests to the external-http test group.
See #52625


git-svn-id: https://develop.svn.wordpress.org/trunk@50448 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-27 14:36:22 +00:00
John Blackbourn
7fa70bcb02 Build/Test Tools: Increase the reliability of backing up the mu-plugins directory during tests.
Fixes #51735


git-svn-id: https://develop.svn.wordpress.org/trunk@50443 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-26 14:37:47 +00:00
John Blackbourn
4ab922d224 Build/Test Tools: Switch back to running the PHPUnit test suite against the src directory instead of build.
Some PHPUnit tests were concerned with the state of files in the `build` directory. In order to allow the tests to run without requiring a build to be run first, these have been moved into assertions that run after the build step (and therefore cause it to fail if they do not pass), or into QUnit tests as necessary.

Various other PHPUnit tests implictly depend on built JavaScript files being present. These files are now touched during the test setup to avoid PHP warnings if the `build` files are not present.

The `wp-tests-config-sample.php` file and the GitHub Actions configuration have also been changed so `ABSPATH` uses `src` instead of `build`, therefore allowing the PHPUnit tests to be run without a build having to be run first. This means all new local installations of WordPress will use `src` for PHPUnit testing. If you would like to switch your existing installation over then change the location of `ABSPATH` in `wp-tests-config.php` to point to `src` instead of `build`.

Props peterwilsoncc, iandunn, gziolo, desroj, johnbillion

Fixes #51734
See #45863


git-svn-id: https://develop.svn.wordpress.org/trunk@50441 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-26 14:07:53 +00:00
Sergey Biryukov
274bc8b0ec Tests: Reset current screen after setting it to dashboard in add_submenu_page() tests.
This avoids polluting other tests and allows the `ms-excluded` test group to successfully run on its own.

Props johnbillion, SergeyBiryukov.
See #52607.

git-svn-id: https://develop.svn.wordpress.org/trunk@50433 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-25 11:10:46 +00:00
Peter Wilson
db9c95a056 Security: move Content-Security-Policy script loaders.
Move `wp_get_script_tag()`, `wp_print_script_tag()`, `wp_print_inline_script_tag()` and `wp_get_inline_script_tag()` functions from `functions.php` to `script-loader.php`.

Relocate related tests to `dependencies` sub-directory.

Follow up to [50167].
Props adamsilverstein, hellofromTonya, SergeyBiryukov.
Fixes #39941.


git-svn-id: https://develop.svn.wordpress.org/trunk@50409 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-23 01:58:21 +00:00
Peter Wilson
50639dbad6 Script Loader: Prevent wp_localize_script() warnings.
Prevent `wp_localize_script()` (via `WP_Scripts::localize()`) throwing warnings in PHP 8 when the translation data is passed as a string. This maintains backward compatibility with earlier versions of PHP.

Introduce a `_doing_it_wrong()` notice to `WP_Scripts::localize()` if the translation data is not passed as an array.

Props jrf, peterwilsoncc, SergeyBiryukov.
Fixes #52534.


git-svn-id: https://develop.svn.wordpress.org/trunk@50408 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-22 23:21:56 +00:00
Sergey Biryukov
6479ea9af8 Embeds: Allow posts with a public custom post status to be embedded.
Previously, only posts with the `publish` status could be embedded.

Props goaroundagain, peterwilsoncc, poena.
Fixes #47574.

git-svn-id: https://develop.svn.wordpress.org/trunk@50401 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-22 13:21:26 +00:00
John Blackbourn
66504ce36e Posts, Post Types: Rename the new post parent conditional tag functions for clarity.
* `get_parent_post()` becomes `get_post_parent()`
* `has_parent_post()` becomes `has_post_parent()`

Props johnjamesjacoby, SergeyBiryukov, lukecarbis, peterwilsoncc

Fixes #33045


git-svn-id: https://develop.svn.wordpress.org/trunk@50396 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-20 17:43:55 +00:00
John Blackbourn
3f705da1f2 Cron API: Add a missing $wp_error parameter to the pre_reschedule_event filter.
Props tmatsuur, mukesh27

Fixes #52572
See #49961


git-svn-id: https://develop.svn.wordpress.org/trunk@50394 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-20 12:09:45 +00:00
Sergey Biryukov
77a7160821 Tests: Fix typo in one of wp_resource_hints() test method names.
Add `@ticket` reference.

Follow-up to [38100].

See #51802.

git-svn-id: https://develop.svn.wordpress.org/trunk@50392 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-20 09:52:14 +00:00
Felix Arntz
c8bbd79d2d Security: Fix bug in wp_is_local_html_output().
Prior to this changeset, the check for the correct RSD link output was relying on a specific protocol, although it needs to accept both the HTTP and HTTPS version of the URL.

Props TimothyBlynJacobs.
Fixes #52542. See #47577.


git-svn-id: https://develop.svn.wordpress.org/trunk@50391 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-19 21:11:02 +00:00
Sergey Biryukov
d8da8a3619 Tests: Rename stick_post() and unstick_post() tests for a bit more clarity.
Add missing DocBlock for `test_unstick_post_updates_option()`.

Follow-up to [50380].

See #52007.

git-svn-id: https://develop.svn.wordpress.org/trunk@50384 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-18 12:02:42 +00:00
Peter Wilson
d79722b09f Editor: Additional tests for reusable blocks.
Ensure that subsequent renders of a reusable block will render correctly and that recursively inserting a reusable block into itself does not cause an internal server (500) error.

Props bernhard-reiter, SergeyBiryukov.
Fixes #52364.



git-svn-id: https://develop.svn.wordpress.org/trunk@50382 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-18 01:11:18 +00:00
Peter Wilson
50af962653 Posts/Post Types: Prevent duplicates in sticky posts option.
In `unstick_post()` if a post ID is duplicated in the `sticky_posts` option remove all instances.

In both `stick_post()` and `unstick_post()` check for duplicate IDs already stored in the `sticky_post` option and remove them if the option is updated.

Props rahmohn, archon810.
Fixes #52007.


git-svn-id: https://develop.svn.wordpress.org/trunk@50380 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-17 22:56:34 +00:00
John Blackbourn
910c2db68a Comments: Revert the introduction of the opt-in comment approval notification feature.
This reverts the following commits: [50113], [50112], [50109].

See #33717


git-svn-id: https://develop.svn.wordpress.org/trunk@50375 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-17 13:06:43 +00:00
Peter Wilson
f400eb5ab9 General: Add noindex robots meta tag to search results.
Prevent search engines indexing internal search results to protect against reflected web spam attacks.

Props abagtcs, audrasjb, ayeshrajans, burtrw, johnbillion, jonoaldersonwp, peterwilsoncc, poena, sabernhardt, xkon.
Fixes #52457


git-svn-id: https://develop.svn.wordpress.org/trunk@50370 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-16 23:36:44 +00:00
John Blackbourn
22618cef9a Feeds: Fix the URL returned by get_feed_link() when pretty permalinks are not in use.
Props hauvong, peterwilsoncc, SergeyBiryukov

Fixes #51839


git-svn-id: https://develop.svn.wordpress.org/trunk@50354 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-16 17:32:58 +00:00
Sergey Biryukov
e50f46d49a Tests: Rename two classes in phpunit/tests/http/ to match the function names.
See #51802.

git-svn-id: https://develop.svn.wordpress.org/trunk@50345 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-15 14:05:42 +00:00
Sergey Biryukov
4e4b4de3be Tests: Add missing @covers tags for files in phpunit/tests/http/.
Props patopaiar, jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@50344 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-15 14:00:02 +00:00
Sergey Biryukov
a17ae3dc0f Tests: Rename classes in phpunit/tests/hooks/ per the naming conventions.
https://make.wordpress.org/core/handbook/testing/automated-testing/writing-phpunit-tests/#naming-and-organization

Follow-up to [47780], [48911], [49327], [50291], [50292].
See #51802.

git-svn-id: https://develop.svn.wordpress.org/trunk@50342 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-14 12:20:34 +00:00
Sergey Biryukov
8d1dfb6bcf Tests: Add missing @covers tags for files in phpunit/tests/hooks/.
Props patopaiar, jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@50341 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-14 12:09:25 +00:00