Commit Graph

3634 Commits

Author SHA1 Message Date
Adam Silverstein
4f3c9c1f30 Users: prevent saving empty passwords, trim space from password ends on save.
Fix an issue where users could save a password with only spaces, or spaces at the beginning or end of their password, preventing them from logging in.

Props ronakganatra, 1naveengiri, ajensen, oolleegg55, bookdude13, nrqsnchz, aristath.
Fixes #42766.



git-svn-id: https://develop.svn.wordpress.org/trunk@49118 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-10 16:49:35 +00:00
Sergey Biryukov
ac0e283045 Tests: Update third-party video URLs in unit tests with more permanent videos.
This brings some consistency to the YouTube and Vimeo URLs used for tests:

* For YouTube, use the video of WordPress 5.0 release.
* For Vimeo, use one of the official test videos.

Props garrett-eclipse, dd32.
Fixes #51487. See #meta5467.

git-svn-id: https://develop.svn.wordpress.org/trunk@49117 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-10 01:37:18 +00:00
John Blackbourn
df7554985d General: Introduce the ability to merge multiple WP_Error objects into one another, and to store more than one item of data for an error.
This allows multiple errors to be instantiated independently but collected into one without having to manually combine their properties.

Props rmccue, dlh, TimothyBlynJacobs

Fixes #38777


git-svn-id: https://develop.svn.wordpress.org/trunk@49115 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-09 22:20:50 +00:00
Sergey Biryukov
4917ae2ccf Tests: Use consistent wording for the $position parameter in add_submenu_page() tests.
This replaces the instances of `$priority` with `$position`, to match the actual parameter name and avoid confusion.

Follow-up to [46197].

See #51344, #39776.

git-svn-id: https://develop.svn.wordpress.org/trunk@49112 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-09 13:27:50 +00:00
TimothyBlynJacobs
1856d0fe2a REST API: Introduce Application Passwords for API authentication.
In WordPress 4.4 the REST API was first introduced. A few releases later in WordPress 4.7, the Content API endpoints were added, paving the way for Gutenberg and countless in-site experiences. In the intervening years, numerous plugins have built on top of the REST API. Many developers shared a common frustration, the lack of external authentication to the REST API.

This commit introduces Application Passwords to allow users to connect to external applications to their WordPress website. Users can generate individual passwords for each application, allowing for easy revocation and activity monitoring. An authorization flow is introduced to make the connection flow simple for users and application developers.

Application Passwords uses Basic Authentication, and by default is only available over an SSL connection.

Props georgestephanis, kasparsd, timothyblynjacobs, afercia, akkspro, andraganescu, arippberger, aristath, austyfrosty, ayesh, batmoo, bradyvercher, brianhenryie, helen, ipstenu, jeffmatson, jeffpaul, joostdevalk, joshlevinson, kadamwhite, kjbenk, koke, michael-arestad, Otto42, pekz0r, salzano, spacedmonkey, valendesigns.
Fixes #42790.


git-svn-id: https://develop.svn.wordpress.org/trunk@49109 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-08 22:12:02 +00:00
Sergey Biryukov
79703088c4 General: Replace older-style PHP type conversion functions with type casts.
This improves performance, readability, and consistency throughout core.

* `intval()` → `(int)`
* `strval()` → `(string)`
* `floatval()` → `(float)`

Props ayeshrajans.
Fixes #42918.

git-svn-id: https://develop.svn.wordpress.org/trunk@49108 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-08 21:13:57 +00:00
Timothy Jacobs
5b6f5f9f6d REST API: Introduce search term handler.
This allows for clients to search the available terms via the `/wp/v2/search` endpoint by using a `type=term` query parameter.

Fixes #51458.
Props andraganescu, zieladam, noisysocks, TimothyBlynJacobs.


git-svn-id: https://develop.svn.wordpress.org/trunk@49103 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-08 01:30:25 +00:00
Andrew Ozz
9c50d3dda5 Update jQuery step two:
- Add jquery-migrate.js v.3.3.1 to core and load it in debug mode when `SCRIPT_DEBUG` is true.
- Add jquery.min.js, update jquery.js to 3.5.1 non-minified. This should help when debugging.
- Rebuild jQuery UI 1.12.1 and add it to core.
- Fix/adjust tests to match the above changes.

See #50564.

git-svn-id: https://develop.svn.wordpress.org/trunk@49101 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-07 16:31:53 +00:00
Sergey Biryukov
c8ed3ebb30 Privacy: Improve clarity of privacy error strings.
Primarily this adds "user privacy" to the strings for privacy requests, so they are more easily distinguished from other system actions within logs.

Props garrett-eclipse, carike, birgire.
Fixes #51351.

git-svn-id: https://develop.svn.wordpress.org/trunk@49090 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-04 03:21:38 +00:00
Helen Hou-Sandi
0488373778 Tests: Fix a linting error in a test.
See #50679.


git-svn-id: https://develop.svn.wordpress.org/trunk@49085 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-01 21:42:40 +00:00
Helen Hou-Sandi
150d9bd17e Media: Don't unnecessarily check for a valid attachment before getting meta.
This makes `wp_get_attachment_metadata()` run significantly faster. See ticket for benchmarking.

Props Tkama, donmhico.
Fixes #50679.


git-svn-id: https://develop.svn.wordpress.org/trunk@49084 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-01 17:53:38 +00:00
Timothy Jacobs
f60aa51988 REST API: Support the patternProperties JSON Schema keyword.
Props yakimun.
Fixes #51024.


git-svn-id: https://develop.svn.wordpress.org/trunk@49082 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-01 02:47:08 +00:00
Sergey Biryukov
3b75e7d0f0 Tests: Require imagejpeg() function in Ajax media editing tests.
This outputs a proper message if the requirement is not met, instead of an obscure failure further in the test.

These tests rely on multiple resized copies of a test JPEG image being generated and available.

Follow-up to [49010], [49024], [49025], [49045], [49050], [49052].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49069 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-29 14:14:28 +00:00
Timothy Jacobs
dbf692583c REST API: Support the multipleOf JSON Schema keyword.
Props yakimun.
Fixes #51022.


git-svn-id: https://develop.svn.wordpress.org/trunk@49063 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-27 19:01:18 +00:00
Timothy Jacobs
4ad4eeaf7d Add ircs and irc6 to the list of allowed protocols.
This adds support for the secure and ipv6 variants of the already allowed irc protocol.

Props arealnobrainer, markparnell, ctmartin.


git-svn-id: https://develop.svn.wordpress.org/trunk@49055 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-26 21:00:19 +00:00
Timothy Jacobs
d5c2c86bd8 REST API: Support the minProperties and maxProperties JSON Schema keywords.
Props yakimun.
Fixes #51023.


git-svn-id: https://develop.svn.wordpress.org/trunk@49053 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-26 18:18:53 +00:00
Sergey Biryukov
9aa0e0c92b Tests: Require imagejpeg() function in WP_Widget_Media_Image::render_media() test.
This outputs a proper message if the requirement is not met, instead of an obscure failure further in the test.

This test relies on multiple resized copies of a test JPEG image being generated and available.

Follow-up to [49010], [49024], [49025], [49045], [49050].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49052 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-26 14:50:51 +00:00
Sergey Biryukov
e2b74bee82 Tests: Correct assertion in WP_Test_REST_Comments_Controller::check_comment_data().
`author_avatar_urls` should be present in the comment data array keys, not values.

The test only passed accidentally due to `assertContains()` not performing a strict type check.

See #38266, #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@49051 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-26 03:12:21 +00:00
Sergey Biryukov
21eb2f0d98 Tests: Require imagejpeg() function in one more media test.
This outputs a proper message if the requirement is not met, instead of an obscure failure further in the test.

This test relies on multiple resized copies of a test JPEG image being generated and available.

Follow-up to [49010], [49024], [49025], [49045].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49050 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-26 02:32:25 +00:00
Sergey Biryukov
5d1a29deaa Tests: Require imagejpeg() function in some REST API attachments controller tests.
This outputs a proper message if the requirement is not met, instead of an obscure failure further in the test.

These tests rely on multiple resized copies of a test JPEG image being generated and available.

Follow-up to [49010], [49024], [49025], [49045].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49047 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-25 02:21:33 +00:00
Sergey Biryukov
51a7210589 Tests: Correct the check for image sizes in some REST API attachments controller tests.
If the sizes data could not be retrieved, the controller returns an empty object instead of an array.

This makes sure that the value is in fact an array before proceeding, and outputs a proper message in case of failure, instead of an obscure PHP error further in the test.

Follow-up to [49044].

See #50913, #51393.

git-svn-id: https://develop.svn.wordpress.org/trunk@49046 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-25 02:09:32 +00:00
Sergey Biryukov
5730b983b8 Tests: Require imagejpeg() function in some more media tests.
This outputs a proper message if the requirement is not met, instead of an obscure PHP error further in the test.

These tests rely on multiple resized copies of a test JPEG image being generated and available.

Follow-up to [49010], [49024], [49025].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49045 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-25 01:43:19 +00:00
Sergey Biryukov
3bfa4606c7 Tests: Check if image sizes were successfully retrieved in some REST API attachments controller tests.
This outputs a proper message in case of failure, instead of an obscure PHP error further in the test.

Props TimothyBlynJacobs.
See #50913, #51393.

git-svn-id: https://develop.svn.wordpress.org/trunk@49044 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-25 01:29:51 +00:00
Sergey Biryukov
c31a551273 Tests: Backport two changes from PHPUnit 9.3:
* Replace the `Match` interface with `ParametersMatch`, to avoid parse errors due to `match` being a reserved keyword in PHP 8.
* Replace `ReflectionParameter::getClass()` usage, which is deprecated in PHP 8.

This allows tests relying on the `getMockForAbstractClass()` and `getMockBuilder()` methods to run again on PHP 8.

When the test suite is updated for compatibility with PHPUnit 9.x, these overrides can be removed.

Follow-up to [48972].

See #50913, #50902.

git-svn-id: https://develop.svn.wordpress.org/trunk@49037 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-23 13:52:02 +00:00
Sergey Biryukov
7d15225ad0 Users: Check if the user ID passed as selected to wp_dropdown_users() corresponds to an existing user.
This avoids a few PHP notices if the `include_selected` parameter was specified and a non-existing user ID was passed.

Props campusboy1987.
Fixes #51370.

git-svn-id: https://develop.svn.wordpress.org/trunk@49036 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-23 00:25:47 +00:00
Sergey Biryukov
303deffe91 Tests: Use consistent trailing punctuation in fail() messages.
See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49033 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-22 12:32:39 +00:00
Sergey Biryukov
a9ee47c806 Tests: Check if image metadata for a particular size was successfully retrieved in some media tests.
This outputs a proper message in case of failure, instead of an obscure PHP error further in the test.

See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@49032 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-22 12:30:48 +00:00
Sergey Biryukov
e8617468a2 Tests: Fix typo in some markTestSkipped() messages.
See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49030 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-21 20:18:20 +00:00
Sergey Biryukov
310799a268 Tests: Use consistent trailing punctuation in markTestSkipped() messages.
See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49027 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-21 14:05:23 +00:00
Sergey Biryukov
6242c634ee Tests: Convert a few more function_exists() and extension_loaded() checks to @requires annotations.
This better utilizes the PHPUnit native functionality.

Follow-up to [49024].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49025 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-21 13:25:38 +00:00
Sergey Biryukov
b984a64c98 Tests: Convert the checks for imagejpeg() function availability to use the @requires annotation.
This better utilizes the PHPUnit native functionality.

Props ayeshrajans, jrf, johnbillion.
Fixes #50639. See #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49024 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-21 11:34:06 +00:00
Sergey Biryukov
8856579610 Tests: Correctly unset non-supported image editor engines in some image tests.
Follow-up to [49009], [49014].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49018 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 14:13:04 +00:00
Sergey Biryukov
e92ddaa2c3 Tests: Use more specific assertions in Tests_Image_Functions::test_load_directory().
This avoids an error on PHP 8 caused by calling `get_resource_type()` on a string.

See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@49015 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 13:31:08 +00:00
Sergey Biryukov
68b71263f3 Tests: Optimize some image tests to avoid checking for image editor engines availability twice.
Follow-up to [49009].

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49014 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 13:25:07 +00:00
Sergey Biryukov
8493793928 Tests: Consistently require imagejpeg() function in image_make_intermediate_size() tests.
This outputs a proper message if the requirement is not met, instead of an obscure PHP error further in the test.

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49010 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 03:31:46 +00:00
Sergey Biryukov
58385f1402 Tests: Skip some image tests if neither GD nor Imagick image editor engines are supported on the system.
The explicit message brings some consistency with other image editor tests, specifically the ones using the `WP_Image_UnitTestCase` class.

Previously, the tests were marked as "risky" in that scenario, due to performing no assertions.

See #50639, #50640.

git-svn-id: https://develop.svn.wordpress.org/trunk@49009 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 02:45:35 +00:00
Sergey Biryukov
2bfa83d882 Coding Standards: Fix WPCS issue in [49007].
See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@49008 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 01:16:57 +00:00
Sergey Biryukov
cdd15a8f77 Tests: Fix the failures in REST API format keyword validation tests on PHP 8.
The tests ensure that `rest_sanitize_value_from_schema()` and `rest_validate_value_from_schema()` throw an "undefined offset" notice when the required `type` schema keyword is not passed.

In PHP 8, that notice is now a warning, so the tests need to be adjusted accordingly.

Follow-up to [48300], [48993].

See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@49007 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 00:55:07 +00:00
Sergey Biryukov
835e9c48a4 Tests: Add missing @covers tags for files in phpunit/tests/functions/.
Props pbearne, jrf.
See #39265.

git-svn-id: https://develop.svn.wordpress.org/trunk@49006 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 15:52:03 +00:00
Sergey Biryukov
898eb5fc51 Tests: Speed up slashed data tests by reusing some more shared fixtures.
Follow-up to [35249], [49003].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49005 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 11:11:00 +00:00
Sergey Biryukov
4018e92c39 Coding Standards: Give the $id variable in slashed data tests a more descriptive name.
See #50767, #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49004 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 10:53:15 +00:00
Sergey Biryukov
ffc129395c Tests: Speed up slashed data tests by reusing shared fixtures.
Follow-up to [35249].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49003 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 10:34:54 +00:00
Sergey Biryukov
0c5324df3b Tests: Speed up tests for wp_allow_comment() by reusing shared fixtures.
Props frank-klein.
Fixes #51216.

git-svn-id: https://develop.svn.wordpress.org/trunk@49002 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 09:25:55 +00:00
Sergey Biryukov
1ec9dc6fa4 Tests: Simplify the logic in WP_UnitTestCase_Base::setUpBeforeClass() and ::tearDownAfterClass().
See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@49001 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 09:11:23 +00:00
Peter Wilson
1ffdfdaea7 Posts, Post Types: Ensure default terms are added by wp_publish_post().
Transitioning posts from `auto-draft` to `publish` via `wp_publish_post()` could result in published posts without the default category or custom taxonomy default terms.

Props frank-klein, TimothyBlynJacobs, peterwilsoncc.
Fixes #51292.



git-svn-id: https://develop.svn.wordpress.org/trunk@49000 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-19 01:20:48 +00:00
Sergey Biryukov
2f491fba50 Tests: Simplify PluralFormsTest::test_exceptions().
Previously, the test had to use an older pattern for catching the generic `Exception` exceptions for compatibility with PHPUnit 3.6 on PHP 5.2.

Now that WordPress supports PHPUnit 5.4 as the minimum version, the `expectException()` method can be used directly.

Follow-up to [41725], [41730].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@48999 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-18 14:11:11 +00:00
Sergey Biryukov
ba20847ef5 Docs: Update the code example in WP_Ajax_UnitTestCase::dieHandler() DocBlock to use expectException().
Follow-up to [48996], [48997].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@48998 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-18 13:53:31 +00:00
Sergey Biryukov
5164bba5e2 Tests: Switch Ajax tests to use the expectException() method directly, instead of the WP_UnitTestCase_Base::setExpectedException() wrapper.
This brings some consistency with other tests.

Follow-up to [48996].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@48997 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-18 13:48:27 +00:00
Sergey Biryukov
d46af0956d Tests: Consistently use the expectException() method instead of the older @expectedException annotation.
See https://thephp.cc/news/2016/02/questioning-phpunit-best-practices

The method is available since PHPUnit 5.2, and WordPress currently supports PHPUnit 5.4 as the minimum version.

Follow-up to [48993].

See #51344.

git-svn-id: https://develop.svn.wordpress.org/trunk@48996 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-18 13:22:22 +00:00
Sergey Biryukov
bc556578b3 Tests: Fix the failure in test_get_weekday_undefined_index() on PHP 8.
The test ensures that `WP_Locale::get_weekday()` throws an "undefined offset" notice when called with an incorrect `$weekday_number` parameter.

In PHP 8, that notice is now a warning, so the test needs to be adjusted accordingly.

See #50913.

git-svn-id: https://develop.svn.wordpress.org/trunk@48993 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-18 10:56:27 +00:00