Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
<?php
/**
* WordPress Coding Standard.
*
* @package WPCS\WordPressCodingStandards
* @link https://github.com/WordPress/WordPress-Coding-Standards
* @license https://opensource.org/licenses/MIT MIT
*/

namespace WordPressCS\WordPress\Tests\Helpers\PrintingFunctionsTrait;

use PHPUnit\Framework\TestCase;
use WordPressCS\WordPress\Helpers\PrintingFunctionsTrait;

/**
* Tests for the `PrintingFunctionsTrait::get_printing_functions()` method.
*
* @since 3.4.0
*
* @covers \WordPressCS\WordPress\Helpers\PrintingFunctionsTrait::get_printing_functions
*/
final class GetPrintingFunctionsUnitTest extends TestCase {

/**
* Test class using the PrintingFunctionsTrait for testing purposes.
*
* @var object
*/
private $testClass;

/**
* Set up the test class.
*
* @return void
*/
protected function setUp(): void {
$this->testClass = new class() {
use PrintingFunctionsTrait;
};
}

/**
* Test that get_printing_functions() returns an array containing a known
* built-in printing function.
*
* @return void
*/
public function testGetPrintingFunctionsContainsKnownFunction() {
$result = $this->testClass->get_printing_functions();

$this->assertIsArray( $result );
$this->assertArrayHasKey( 'printf', $result );
$this->assertTrue( $result['printf'] );
}

/**
* Test that get_printing_functions() includes custom printing functions.
*
* @return void
*/
public function testGetPrintingFunctionsIncludesCustomFunctions() {
$defaultCount = count( $this->testClass->get_printing_functions() );
$this->testClass->customPrintingFunctions = array( 'my_custom_print' );

$result = $this->testClass->get_printing_functions();

$this->assertCount( $defaultCount + 1, $result );
$this->assertArrayHasKey( 'my_custom_print', $result );
$this->assertFalse( $result['my_custom_print'] );
}

/**
* Test that get_printing_functions() updates the result when custom
* printing functions are changed.
*
* @return void
*/
public function testGetPrintingFunctionsUpdatesWhenCustomFunctionsChange() {
$this->testClass->customPrintingFunctions = array( 'first_custom' );
$result = $this->testClass->get_printing_functions();
$this->assertArrayHasKey( 'first_custom', $result );
$this->assertFalse( $result['first_custom'] );

$this->testClass->customPrintingFunctions = array( 'second_custom' );
$result = $this->testClass->get_printing_functions();
$this->assertArrayHasKey( 'second_custom', $result );
$this->assertFalse( $result['second_custom'] );
$this->assertArrayNotHasKey( 'first_custom', $result );
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?php
/**
* WordPress Coding Standard.
*
* @package WPCS\WordPressCodingStandards
* @link https://github.com/WordPress/WordPress-Coding-Standards
* @license https://opensource.org/licenses/MIT MIT
*/

namespace WordPressCS\WordPress\Tests\Helpers\PrintingFunctionsTrait;

use PHPUnit\Framework\TestCase;
use WordPressCS\WordPress\Helpers\PrintingFunctionsTrait;

/**
* Tests for the `PrintingFunctionsTrait::is_printing_function()` method.
*
* @since 3.4.0
*
* @covers \WordPressCS\WordPress\Helpers\PrintingFunctionsTrait::is_printing_function
*/
final class IsPrintingFunctionUnitTest extends TestCase {

/**
* Test class using the PrintingFunctionsTrait for testing purposes.
*
* @var object
*/
private static $testClass;

/**
* Set up the test class.
*
* @return void
*/
public static function setUpBeforeClass(): void {
self::$testClass = new class() {
use PrintingFunctionsTrait;
};
}

/**
* Test is_printing_function().
*
* @dataProvider dataIsPrintingFunction
*
* @param string $functionName The function name to test.
* @param bool $expectedResult The expected return value.
*
* @return void
*/
public function testIsPrintingFunction( $functionName, $expectedResult ) {
$this->assertSame(
$expectedResult,
self::$testClass->is_printing_function( $functionName )
);
}

/**
* Data provider.
*
* @see testIsPrintingFunction()
*
* @return array<string, array<string, bool|string>>
*/
public static function dataIsPrintingFunction() {
return array(
'lowercase_name' => array(
'functionName' => 'printf',
'expectedResult' => true,
),
'mixedcase_name' => array(
'functionName' => 'vPrInTf',
'expectedResult' => true,
),
'not_a_printing_function' => array(
'functionName' => 'echo',
'expectedResult' => false,
),
);
}
}
Loading