mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2025-10-16 12:05:38 +00:00
Follow-up to [42971], [45371], [46159], [46175], [47779], [50962], [50964], [51910], [52778]. Props azouamauriac, SergeyBiryukov. See #54725. git-svn-id: https://develop.svn.wordpress.org/trunk@52780 602fd350-edb4-49c9-b593-d223f7449a82
136 lines
2.5 KiB
PHP
136 lines
2.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Tests for the _wp_array_set() function
|
|
*
|
|
* @since 5.8.0
|
|
*
|
|
* @group functions.php
|
|
* @covers ::_wp_array_set
|
|
*/
|
|
class Tests_Functions_wpArraySet extends WP_UnitTestCase {
|
|
|
|
/**
|
|
* Tests _wp_array_set() with invalid parameters.
|
|
*
|
|
* @ticket 53175
|
|
*/
|
|
public function test_wp_array_set_invalid_parameters() {
|
|
$test = 3;
|
|
_wp_array_set( $test, array( 'a' ), 1 );
|
|
$this->assertSame(
|
|
$test,
|
|
3
|
|
);
|
|
|
|
$test_array = array( 'a' => 2 );
|
|
_wp_array_set( $test_array, 'a', 3 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => 2 )
|
|
);
|
|
|
|
$test_array = array( 'a' => 2 );
|
|
_wp_array_set( $test_array, null, 3 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => 2 )
|
|
);
|
|
|
|
$test_array = array( 'a' => 2 );
|
|
_wp_array_set( $test_array, array(), 3 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => 2 )
|
|
);
|
|
|
|
$test_array = array( 'a' => 2 );
|
|
_wp_array_set( $test_array, array( 'a', array() ), 3 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => 2 )
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Tests _wp_array_set() with simple non-subtree path.
|
|
*
|
|
* @ticket 53175
|
|
*/
|
|
public function test_wp_array_set_simple_non_subtree() {
|
|
$test_array = array();
|
|
_wp_array_set( $test_array, array( 'a' ), 1 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => 1 )
|
|
);
|
|
|
|
$test_array = array( 'a' => 2 );
|
|
_wp_array_set( $test_array, array( 'a' ), 3 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => 3 )
|
|
);
|
|
|
|
$test_array = array( 'b' => 1 );
|
|
_wp_array_set( $test_array, array( 'a' ), 3 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array(
|
|
'b' => 1,
|
|
'a' => 3,
|
|
)
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Tests _wp_array_set() with subtree paths.
|
|
*
|
|
* @ticket 53175
|
|
*/
|
|
public function test_wp_array_set_subtree() {
|
|
$test_array = array();
|
|
_wp_array_set( $test_array, array( 'a', 'b', 'c' ), 1 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array( 'a' => array( 'b' => array( 'c' => 1 ) ) )
|
|
);
|
|
|
|
$test_array = array( 'b' => 3 );
|
|
_wp_array_set( $test_array, array( 'a', 'b', 'c' ), 1 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array(
|
|
'b' => 3,
|
|
'a' => array( 'b' => array( 'c' => 1 ) ),
|
|
)
|
|
);
|
|
|
|
$test_array = array(
|
|
'b' => 3,
|
|
'a' => 1,
|
|
);
|
|
_wp_array_set( $test_array, array( 'a', 'b', 'c' ), 1 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array(
|
|
'b' => 3,
|
|
'a' => array( 'b' => array( 'c' => 1 ) ),
|
|
)
|
|
);
|
|
|
|
$test_array = array(
|
|
'b' => 3,
|
|
'a' => array(),
|
|
);
|
|
_wp_array_set( $test_array, array( 'a', 'b', 'c' ), 1 );
|
|
$this->assertSame(
|
|
$test_array,
|
|
array(
|
|
'b' => 3,
|
|
'a' => array( 'b' => array( 'c' => 1 ) ),
|
|
)
|
|
);
|
|
}
|
|
}
|