assertEquals( $expected_character_length, _mb_strlen( $string, 'UTF-8' ) ); } /** * @dataProvider utf8_string_lengths */ function test_mb_strlen_via_regex( $string, $expected_character_length ) { _wp_can_use_pcre_u( false ); $this->assertEquals( $expected_character_length, _mb_strlen( $string, 'UTF-8' ) ); _wp_can_use_pcre_u( 'reset' ); } /** * @dataProvider utf8_string_lengths */ function test_8bit_mb_strlen( $string, $expected_character_length, $expected_byte_length ) { $this->assertEquals( $expected_byte_length, _mb_strlen( $string, '8bit' ) ); } /** * @dataProvider utf8_substrings */ function test_mb_substr( $string, $start, $length, $expected_character_substring ) { $this->assertEquals( $expected_character_substring, _mb_substr( $string, $start, $length, 'UTF-8' ) ); } /** * @dataProvider utf8_substrings */ function test_mb_substr_via_regex( $string, $start, $length, $expected_character_substring ) { _wp_can_use_pcre_u( false ); $this->assertEquals( $expected_character_substring, _mb_substr( $string, $start, $length, 'UTF-8' ) ); _wp_can_use_pcre_u( 'reset' ); } /** * @dataProvider utf8_substrings */ function test_8bit_mb_substr( $string, $start, $length, $expected_character_substring, $expected_byte_substring ) { $this->assertEquals( $expected_byte_substring, _mb_substr( $string, $start, $length, '8bit' ) ); } function test_mb_substr_phpcore(){ /* https://github.com/php/php-src/blob/php-5.6.8/ext/mbstring/tests/mb_substr_basic.phpt */ $string_ascii = 'ABCDEF'; $string_mb = base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvvJfvvJjvvJnjgII='); $this->assertEquals( 'DEF', _mb_substr($string_ascii, 3) ); $this->assertEquals( 'DEF', _mb_substr($string_ascii, 3, 5, 'ISO-8859-1') ); // specific latin-1 as that is the default the core php test opporates under $this->assertEquals( 'peacrOiqng==' , base64_encode( _mb_substr($string_mb, 2, 7, 'latin-1' ) ) ); $this->assertEquals( '6Kqe44OG44Kt44K544OI44Gn44GZ', base64_encode( _mb_substr($string_mb, 2, 7, 'utf-8') ) ); /* https://github.com/php/php-src/blob/php-5.6.8/ext/mbstring/tests/mb_substr_variation1.phpt */ $start = 0; $length = 5; $unset_var = 10; unset ($unset_var); $heredoc = <<assertEquals( $outputs[$iterator] , _mb_substr($input, $start, $length) ); $iterator++; } } function test_hash_hmac_simple() { $this->assertEquals('140d1cb79fa12e2a31f32d35ad0a2723', _hash_hmac('md5', 'simple', 'key')); $this->assertEquals('993003b95758e0ac2eba451a4c5877eb1bb7b92a', _hash_hmac('sha1', 'simple', 'key')); } function test_hash_hmac_padding() { $this->assertEquals('3c1399103807cf12ec38228614416a8c', _hash_hmac('md5', 'simple', '65 character key 65 character key 65 character key 65 character k')); $this->assertEquals('4428826d20003e309d6c2a6515891370daf184ea', _hash_hmac('sha1', 'simple', '65 character key 65 character key 65 character key 65 character k')); } function test_hash_hmac_output() { $this->assertEquals(array( 1 => '140d1cb79fa12e2a31f32d35ad0a2723'), unpack('H32', _hash_hmac('md5', 'simple', 'key', true))); $this->assertEquals(array( 1 => '993003b95758e0ac2eba451a4c5877eb1bb7b92a'), unpack('H40', _hash_hmac('sha1', 'simple', 'key', true))); } function test_json_encode_decode() { require_once( ABSPATH . WPINC . '/class-json.php' ); $json = new Services_JSON(); // Super basic test to verify Services_JSON is intact and working. $this->assertEquals( '["foo"]', $json->encodeUnsafe( array( 'foo' ) ) ); $this->assertEquals( array( 'foo' ), $json->decode( '["foo"]' ) ); } } /* used in test_mb_substr_phpcore */ class classA { public function __toString() { return "Class A object"; } }