wordpress-develop/tests/phpunit/tests/functions/wpNonceField.php
Jb Audras a904cf42f8 Build/Test Tools: Add tests for wp_nonce_field() and wp_referer_field().
This changeset adds missing unit tests for these two functions.

Props pbearne, costdev, audrasjb.
Fixes #55578.


git-svn-id: https://develop.svn.wordpress.org/trunk@54420 602fd350-edb4-49c9-b593-d223f7449a82
2022-10-07 22:17:06 +00:00

78 lines
2.4 KiB
PHP

<?php
/**
* Tests for the wp_nonce_field() function.
*
* @since 6.1.0
*
* @group functions.php
* @covers ::wp_nonce_field
*/
class Tests_Functions_wpNonceField extends WP_UnitTestCase {
/**
* @ticket 55578
*/
public function test_wp_nonce_field() {
wp_nonce_field();
$this->expectOutputRegex( '#^<input type="hidden" id="_wpnonce" name="_wpnonce" value=".{10}" /><input type="hidden" name="_wp_http_referer" value="" />$#' );
}
/**
* @ticket 55578
*
* @dataProvider data_wp_nonce_field
*
* @param int|string $action Action name.
* @param string $name Nonce name.
* @param bool $referer Whether to set the referer field fior validation.
* @param string $expected_reg_exp The expected regular expression.
*/
public function test_wp_nonce_field_return( $action, $name, $referer, $expected_reg_exp ) {
$this->assertMatchesRegularExpression( $expected_reg_exp, wp_nonce_field( $action, $name, $referer, false ) );
}
/**
* Data provider.
*
* @return array
*/
public function data_wp_nonce_field() {
return array(
'default' => array(
'action' => - 1,
'name' => '_wpnonce',
'referer' => true,
'expected_reg_exp' => '#^<input type="hidden" id="_wpnonce" name="_wpnonce" value=".{10}" /><input type="hidden" name="_wp_http_referer" value="" />$#',
),
'nonce_name' => array(
'action' => - 1,
'name' => 'nonce_name',
'referer' => true,
'expected_reg_exp' => '#^<input type="hidden" id="nonce_name" name="nonce_name" value=".{10}" /><input type="hidden" name="_wp_http_referer" value="" />$#',
),
'action_name' => array(
'action' => 'action_name',
'name' => '_wpnonce',
'referer' => true,
'expected_reg_exp' => '#^<input type="hidden" id="_wpnonce" name="_wpnonce" value="' . wp_create_nonce( 'action_name' ) . '" /><input type="hidden" name="_wp_http_referer" value="" />$#',
),
'no_referer' => array(
'action' => - 1,
'name' => '_wpnonce',
'referer' => false,
'expected_reg_exp' => '#^<input type="hidden" id="_wpnonce" name="_wpnonce" value=".{10}" />$#',
),
'& in name' => array(
'action' => - 1,
'name' => 'a&b',
'referer' => false,
'expected_reg_exp' => '#^<input type="hidden" id="a\&amp;b" name="a\&amp;b" value=".{10}" />$#',
),
);
}
}