<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[51605] trunk/tests/phpunit/includes/abstract-testcase.php: Build/Test Tools: Hard deprecate `WP_UnitTestCase_Base::checkRequirements()`.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/51605">51605</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/51605","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2021-08-12 10:32:24 +0000 (Thu, 12 Aug 2021)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Build/Test Tools: Hard deprecate `WP_UnitTestCase_Base::checkRequirements()`.

The `WP_UnitTestCase_Base::checkRequirements()` method calls the `parent::checkRequirements()` method, but this method became `private` in PHPUnit 7.0 via commit  [https://github.com/sebastianbergmann/phpunit/commit/932238a6a3018cdfac6c2a7d8f1d5d49e65f5dc0 sebastianbergmann/phpunit@932238a].

Aside from that, the `TestCase::getAnnotations()` method which is called next is now also removed in PHPUnit 9.5.

WP core does not use the method anymore, and the method only remains to prevent potentially breaking external integration tests relying on the method. However, in effect, the method is not functional anymore in PHPUnit 7.0+.

Follow-up to [893/tests], [894/tests], [896/tests], [918/tests], <a href="https://core.trac.wordpress.org/changeset/30526">[30526]</a>, <a href="https://core.trac.wordpress.org/changeset/40520">[40520]</a>, <a href="https://core.trac.wordpress.org/changeset/40564">[40564]</a>, <a href="https://core.trac.wordpress.org/changeset/43005">[43005]</a>, <a href="https://core.trac.wordpress.org/changeset/44701">[44701]</a>, [51559-51577].

Props jrf.
See <a href="https://core.trac.wordpress.org/ticket/46149">#46149</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunktestsphpunitincludesabstracttestcasephp">trunk/tests/phpunit/includes/abstract-testcase.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunktestsphpunitincludesabstracttestcasephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/tests/phpunit/includes/abstract-testcase.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/tests/phpunit/includes/abstract-testcase.php        2021-08-11 15:42:06 UTC (rev 51604)
+++ trunk/tests/phpunit/includes/abstract-testcase.php  2021-08-12 10:32:24 UTC (rev 51605)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -888,54 +888,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * This is a custom extension of the PHPUnit requirements handling.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Contains legacy code for skipping tests that are associated with an open Trac ticket.
-        * Core tests no longer support this behaviour.
-        *
</del><span class="cx" style="display: block; padding: 0 10px">          * @since 3.5.0
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * @deprecated 5.9.0 This method has not been functional since PHPUnit 7.0.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        protected function checkRequirements() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                parent::checkRequirements();
-
-               $annotations = $this->getAnnotations();
-
-               $groups = array();
-               if ( ! empty( $annotations['class']['group'] ) ) {
-                       $groups = array_merge( $groups, $annotations['class']['group'] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         // For PHPUnit 5/6, as we're overloading a public PHPUnit native method in those versions.
+               if ( is_callable( 'PHPUnit\Framework\TestCase', 'checkRequirements' ) ) {
+                       parent::checkRequirements();
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                if ( ! empty( $annotations['method']['group'] ) ) {
-                       $groups = array_merge( $groups, $annotations['method']['group'] );
-               }
-
-               if ( ! empty( $groups ) ) {
-                       if ( in_array( 'ms-required', $groups, true ) ) {
-                               $this->skipWithoutMultisite();
-                       }
-
-                       if ( in_array( 'ms-excluded', $groups, true ) ) {
-                               $this->skipWithMultisite();
-                       }
-               }
-
-               // Core tests no longer check against open Trac tickets,
-               // but others using WP_UnitTestCase may do so.
-               if ( defined( 'WP_RUN_CORE_TESTS' ) && WP_RUN_CORE_TESTS ) {
-                       return;
-               }
-
-               if ( WP_TESTS_FORCE_KNOWN_BUGS ) {
-                       return;
-               }
-               $tickets = PHPUnit_Util_Test::getTickets( get_class( $this ), $this->getName( false ) );
-               foreach ( $tickets as $ticket ) {
-                       if ( is_numeric( $ticket ) ) {
-                               $this->knownWPBug( $ticket );
-                       } elseif ( 0 === strpos( $ticket, 'Plugin' ) ) {
-                               $ticket = substr( $ticket, 6 );
-                               if ( $ticket && is_numeric( $ticket ) ) {
-                                       $this->knownPluginBug( $ticket );
-                               }
-                       }
-               }
</del><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -958,7 +918,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Skips the current test if there is an open Unit Test Trac ticket associated with it.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 3.5.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         *
</del><span class="cx" style="display: block; padding: 0 10px">          * @deprecated No longer used since the Unit Test Trac was merged into the Core Trac.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param int $ticket_id Ticket number.
</span></span></pre>
</div>
</div>

</body>
</html>