| 533 | | |
| | 533 | /** |
| | 534 | * @ticket 28786 |
| | 535 | */ |
| | 536 | function test_wp_json_encode() { |
| | 537 | $this->assertEquals( wp_json_encode( 'a' ), '"a"' ); |
| | 538 | $this->assertEquals( wp_json_encode( '这' ), '"\u8fd9"' ); |
| | 539 | |
| | 540 | $old_charsets = $charsets = mb_detect_order(); |
| | 541 | if ( ! in_array( 'EUC-JP', $charsets ) ) { |
| | 542 | $charsets[] = 'EUC-JP'; |
| | 543 | mb_detect_order( $charsets ); |
| | 544 | } |
| | 545 | |
| | 546 | $eucjp = mb_convert_encoding( 'aあb', 'EUC-JP', 'UTF-8' ); |
| | 547 | $utf8 = mb_convert_encoding( $eucjp, 'UTF-8', 'EUC-JP' ); |
| | 548 | |
| | 549 | $this->assertEquals( 'aあb', $utf8 ); |
| | 550 | |
| | 551 | $this->assertEquals( wp_json_encode( $eucjp ), '"a\u3042b"' ); |
| | 552 | |
| | 553 | $this->assertEquals( wp_json_encode( array( 'a' ) ), '["a"]' ); |
| | 554 | |
| | 555 | $object = new stdClass; |
| | 556 | $object->a = 'b'; |
| | 557 | $this->assertEquals( wp_json_encode( $object ), '{"a":"b"}' ); |
| | 558 | |
| | 559 | mb_detect_order( $old_charsets ); |
| | 560 | } |
| | 561 | |
| | 562 | /** |
| | 563 | * @ticket 28786 |
| | 564 | */ |
| | 565 | function test_wp_json_encode_depth() { |
| | 566 | $data = array( array( array( 1, 2, 3 ) ) ); |
| | 567 | $json = wp_json_encode( $data, 0, 1 ); |
| | 568 | $this->assertFalse( $json ); |
| | 569 | |
| | 570 | $data = array( 'あ', array( array( 1, 2, 3 ) ) ); |
| | 571 | $json = wp_json_encode( $data, 0, 1 ); |
| | 572 | $this->assertFalse( $json ); |
| | 573 | } |