Files
wordpress-develop/tests/phpunit/tests/option/registration.php
Sergey Biryukov 164b22cf6a Tests: First pass at using assertSame() instead of assertEquals() in most of the unit tests.
This ensures that not only the return values match the expected results, but also that their type is the same.

Going forward, stricter type checking by using `assertSame()` should generally be preferred to `assertEquals()` where appropriate, to make the tests more reliable.

Props johnbillion, jrf, SergeyBiryukov.
See #38266.

git-svn-id: https://develop.svn.wordpress.org/trunk@48937 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-02 00:35:36 +00:00

125 lines
3.1 KiB
PHP

<?php
/**
* @group option
*/
class Tests_Option_Registration extends WP_UnitTestCase {
public function test_register() {
register_setting( 'test_group', 'test_option' );
$registered = get_registered_settings();
$this->assertArrayHasKey( 'test_option', $registered );
$args = $registered['test_option'];
$this->assertSame( 'test_group', $args['group'] );
// Check defaults.
$this->assertSame( 'string', $args['type'] );
$this->assertFalse( $args['show_in_rest'] );
$this->assertSame( '', $args['description'] );
}
public function test_register_with_callback() {
register_setting( 'test_group', 'test_option', array( $this, 'filter_registered_setting' ) );
$filtered = apply_filters( 'sanitize_option_test_option', 'smart', 'test_option', 'smart' );
$this->assertSame( 'S-M-R-T', $filtered );
}
public function test_register_with_array() {
register_setting(
'test_group',
'test_option',
array(
'sanitize_callback' => array( $this, 'filter_registered_setting' ),
)
);
$filtered = apply_filters( 'sanitize_option_test_option', 'smart', 'test_option', 'smart' );
$this->assertSame( 'S-M-R-T', $filtered );
}
public function filter_registered_setting() {
return 'S-M-R-T';
}
/**
* @ticket 38176
*/
public function test_register_with_default() {
register_setting(
'test_group',
'test_default',
array(
'default' => 'Got that Viper with them rally stripes',
)
);
$this->assertSame( 'Got that Viper with them rally stripes', get_option( 'test_default' ) );
}
/**
* @ticket 38176
*/
public function test_register_with_default_override() {
register_setting(
'test_group',
'test_default',
array(
'default' => 'Got that Viper with them rally stripes',
)
);
// This set of tests/references (and a previous version) are in support of Viper007Bond.
// His Viper doesn't have rally stripes, but for the sake of the Big Tymers, we'll go with it.
$this->assertSame( 'We the #1 Stunnas', get_option( 'test_default', 'We the #1 Stunnas' ) );
}
/**
* @ticket 38930
*/
public function test_add_option_with_no_options_cache() {
register_setting(
'test_group',
'test_default',
array(
'default' => 'My Default :)',
)
);
wp_cache_delete( 'notoptions', 'options' );
$this->assertTrue( add_option( 'test_default', 'hello' ) );
$this->assertSame( 'hello', get_option( 'test_default' ) );
}
/**
* @expectedDeprecated register_setting
*/
public function test_register_deprecated_group_misc() {
register_setting( 'misc', 'test_option' );
}
/**
* @expectedDeprecated register_setting
*/
public function test_register_deprecated_group_privacy() {
register_setting( 'privacy', 'test_option' );
}
/**
* @ticket 43207
*/
public function test_unregister_setting_removes_default() {
register_setting(
'test_group',
'test_default',
array(
'default' => 'Got that Viper with them rally stripes',
)
);
unregister_setting( 'test_group', 'test_default' );
$this->assertFalse( has_filter( 'default_option_test_default', 'filter_default_option' ) );
}
}