mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Since PHPUnit 9.5.10 and 8.5.21, PHP deprecations are no longer converted to exceptions by default (`convertDeprecationsToExceptions="true"` can be configured to enable this).
Reference: [fac02620f6 Do not convert PHP deprecations to exceptions by default]; [https://github.com/sebastianbergmann/phpunit/blob/9.5.10/ChangeLog-9.5.md#9510---2021-09-25 PHPUnit 9.5.10 changelog].
With this change, the test for the `Services_JSON` compat class started failing:
{{{
There was 1 failure:
1) Tests_Compat_jsonEncodeDecode::test_json_encode_decode
Failed asserting that exception of type "PHPUnit\Framework\Error\Deprecated" is thrown.
}}}
This converts the native PHPUnit `::expectDeprecation()` method call in the test to a set of individual WP-specific `::setExpectedDeprecated()` method calls in order to not depend on PHPUnit behavior that is no longer the default.
Additionally, this commit includes support for catching deprecation notices from `_deprecated_file()` function calls to the `WP_UnitTestCase_Base::expectDeprecated()` method.
Follow-up to [46205], [46625], [48996], [51563], [51852], [51871].
Props jrf, netweb, SergeyBiryukov.
See #54183, #54029, #53363.
git-svn-id: https://develop.svn.wordpress.org/trunk@51872 602fd350-edb4-49c9-b593-d223f7449a82
37 lines
1.1 KiB
PHP
37 lines
1.1 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @group compat
|
|
*
|
|
* @covers Services_JSON
|
|
*/
|
|
class Tests_Compat_jsonEncodeDecode extends WP_UnitTestCase {
|
|
|
|
public function test_json_encode_decode() {
|
|
$this->setExpectedDeprecated( 'class-json.php' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::__construct' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::encodeUnsafe' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::_encode' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::reduce_string' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::decode' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::isError' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::strlen8' );
|
|
$this->setExpectedDeprecated( 'Services_JSON::substr8' );
|
|
|
|
require_once ABSPATH . WPINC . '/class-json.php';
|
|
$json = new Services_JSON();
|
|
|
|
// Super basic test to verify Services_JSON is intact and working.
|
|
$this->assertSame(
|
|
'["foo"]',
|
|
$json->encodeUnsafe( array( 'foo' ) ),
|
|
'encodeUnsafe() did not return expected output'
|
|
);
|
|
$this->assertSame(
|
|
array( 'foo' ),
|
|
$json->decode( '["foo"]' ),
|
|
'decode() did not return expected output'
|
|
);
|
|
}
|
|
}
|