164b22cf6a
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
61 lines
1.3 KiB
PHP
61 lines
1.3 KiB
PHP
<?php
|
|
class Tests_User_Settings extends WP_UnitTestCase {
|
|
protected $user_id;
|
|
|
|
function setUp() {
|
|
parent::setUp();
|
|
|
|
$this->user_id = self::factory()->user->create(
|
|
array(
|
|
'role' => 'administrator',
|
|
)
|
|
);
|
|
|
|
wp_set_current_user( $this->user_id );
|
|
}
|
|
|
|
function tearDown() {
|
|
unset( $GLOBALS['_updated_user_settings'] );
|
|
|
|
parent::tearDown();
|
|
}
|
|
|
|
function test_set_user_setting() {
|
|
$foo = get_user_setting( 'foo' );
|
|
|
|
$this->assertEmpty( $foo );
|
|
|
|
$this->set_user_setting( 'foo', 'bar' );
|
|
|
|
$this->assertSame( 'bar', get_user_setting( 'foo' ) );
|
|
}
|
|
|
|
function test_set_user_setting_dashes() {
|
|
$foo = get_user_setting( 'foo' );
|
|
|
|
$this->assertEmpty( $foo );
|
|
|
|
$this->set_user_setting( 'foo', 'foo-bar-baz' );
|
|
|
|
$this->assertSame( 'foo-bar-baz', get_user_setting( 'foo' ) );
|
|
}
|
|
|
|
function test_set_user_setting_strip_asterisks() {
|
|
$foo = get_user_setting( 'foo' );
|
|
|
|
$this->assertEmpty( $foo );
|
|
|
|
$this->set_user_setting( 'foo', 'foo*bar*baz' );
|
|
|
|
$this->assertSame( 'foobarbaz', get_user_setting( 'foo' ) );
|
|
}
|
|
|
|
// set_user_setting() bails if `headers_sent()` is true.
|
|
function set_user_setting( $name, $value ) {
|
|
$all_user_settings = get_all_user_settings();
|
|
$all_user_settings[ $name ] = $value;
|
|
|
|
return wp_set_all_user_settings( $all_user_settings );
|
|
}
|
|
}
|