Skip to content

Conversation

CrochetFeve0251
Copy link

@CrochetFeve0251 CrochetFeve0251 commented Sep 30, 2022

Added missing _deprecated_function call in deprecated functions missing it.

Trac ticket: https://core.trac.wordpress.org/ticket/56589


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

Comment on lines +10 to +13
protected $expected_deprecated = array(
'wp_slash_strings_only',
'addslashes_strings_only',
);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jrfnl, @hellofromtonya All but one of the test methods in this class will expect deprecation notices for these functions.

By defining them here, it means that $this->expected_deprecated = array() can be called in the one test that doesn't expect these deprecation notices to occur, and doesn't apply to later tests in the class.

While this makes sense, I haven't seen this approach used in Core's test suite before, so I'm pinging for your thoughts. Note: This is also done in another file in this PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just my two pennies:

I'm not keen on this as it obfuscates what's going on and effectively "hides" that the deprecation is being expected and tested for every single function (save one).

While it works, it requires a deep understanding of the test suite framework to understand what's going on, which makes these tests error prone going forward.

Copy link
Member

@jrfnl jrfnl Dec 5, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a frustrated side-note (not to be actioned in this PR): why the heck is this even possible and why is the $expected_deprecated property in the WP_UnitTestCase_Base class protected instead of private ???

Copy link
Contributor

@costdev costdev Dec 6, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @jrfnl! I agree - While more verbose to add this to each of the related test methods:

* @expectedDeprecated wp_slash_strings_only
* @expectedDeprecated addslashes_strings_only

(cont.) it maintains consistency with the rest of the test suite, and makes it easier to read each test method in isolation and know exactly what should be expected without needing to review the rest of the test class.

As a frustrated side-note (not to be actioned in this PR): why the heck is this even possible and why is the $expected_deprecated property in the WP_UnitTestCase_Base class protected instead of private ???

Because you're too happy and it's important that codebases drop in these little easter eggs to disrupt the flow. 😂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants