Make WordPress Core

Opened 8 weeks ago

Last modified 4 weeks ago

#60705 new task (blessed)

Test tool and unit test improvements for 6.6

Reported by: sergeybiryukov's profile SergeyBiryukov Owned by:
Milestone: 6.6 Priority: normal
Severity: normal Version:
Component: Build/Test Tools Keywords: has-patch has-unit-tests
Focuses: Cc:

Description

Previously:

This ticket is for various fixes and improvements in PHPUnit tests that don't have a more specific ticket, as well as general improvements to the GitHub Actions workflows that run automated testing.

Change History (4)

This ticket was mentioned in PR #5100 on WordPress/wordpress-develop by @johnbillion.


8 weeks ago
#1

  • Keywords has-patch has-unit-tests added

Trac ticket:
https://core.trac.wordpress.org/ticket/60705
https://core.trac.wordpress.org/ticket/59647
https://core.trac.wordpress.org/ticket/58955

This changes several instances of test skipping to test failures, and removes some unnecessary function_exists() checks for compat functions.

If any of the checks in these test aren't satisfied then the test should fail rather than be skipped.

In addition, I removed some multisite test skipping which is redundant as it's handled by the ms-required and ms-excluded test group handling.

Previously:

This ticket was mentioned in PR #5849 on WordPress/wordpress-develop by @hellofromTonya.


8 weeks ago
#2

Reorganizes the hooks tests to align to coding standards and consistency within the test suite.

  • [X] Moves WP_Hooks method tests to into separate directory <GroupName>/<className>/<methodName>.php.
  • [X] Splits the function tests in actions.php and filters.php into separate test classes within the tests/hooks/ directory.
  • [ ] Add assertion failure message to each instance where there are more than 1 assertion in the test method.

Trac ticket:
https://core.trac.wordpress.org/ticket/60705
https://core.trac.wordpress.org/ticket/59647

#3 @SergeyBiryukov
5 weeks ago

In 57861:

Tests: Remove unnecessary use of utf8_encode() in KSES tests.

One of the tests for the wp_kses_xml_named_entities() function used utf8_encode( chr( 160 ) ) to set an expectation of a Unicode character for a non-breaking space.

It is understandable that this expectation was previously set this way, as it is not possible for a developer to distinguish between a breaking space and a non-breaking space visually, so the chances of the test accidentally breaking on an incorrect save when the plain Unicode character would be used, was high.

However, the utf8_encode() function is deprecated as of PHP 8.2, and its use needs to be removed from the WP codebase.

PHP 7.0 has introduced Unicode escape sequences, which allows to create a text string using Unicode characters referenced by their codepoint. By switching the test case to provide the test expectation using a Unicode escape sequence, we remove the use of the deprecated PHP function and still preserve the safeguard against the test accidentally breaking.

Follow-up to [52229].

Props jrf, afercia, poena, SergeyBiryukov.
See #55603, #60705.

#4 @SergeyBiryukov
4 weeks ago

In 57892:

Tests: Use an existing user fixture in the test for logging in with an email address.

Creating a new user is redundant here, the fixture shared by other tests can be used instead.

Follow-up to [36617].

See #60705.

Note: See TracTickets for help on using tickets.