@@ 698-717 (lines=20) @@ | ||
695 | /** |
|
696 | * @ticket 28786 |
|
697 | */ |
|
698 | function test_wp_json_encode_non_utf8() { |
|
699 | if ( ! function_exists( 'mb_detect_order' ) ) { |
|
700 | $this->markTestSkipped( 'mbstring extension not available.' ); |
|
701 | } |
|
702 | ||
703 | $old_charsets = $charsets = mb_detect_order(); |
|
704 | if ( ! in_array( 'EUC-JP', $charsets ) ) { |
|
705 | $charsets[] = 'EUC-JP'; |
|
706 | mb_detect_order( $charsets ); |
|
707 | } |
|
708 | ||
709 | $eucjp = mb_convert_encoding( 'aあb', 'EUC-JP', 'UTF-8' ); |
|
710 | $utf8 = mb_convert_encoding( $eucjp, 'UTF-8', 'EUC-JP' ); |
|
711 | ||
712 | $this->assertEquals( 'aあb', $utf8 ); |
|
713 | ||
714 | $this->assertEquals( '"a\u3042b"', wp_json_encode( $eucjp ) ); |
|
715 | ||
716 | mb_detect_order( $old_charsets ); |
|
717 | } |
|
718 | ||
719 | /** |
|
720 | * @ticket 28786 |
|
@@ 722-741 (lines=20) @@ | ||
719 | /** |
|
720 | * @ticket 28786 |
|
721 | */ |
|
722 | function test_wp_json_encode_non_utf8_in_array() { |
|
723 | if ( ! function_exists( 'mb_detect_order' ) ) { |
|
724 | $this->markTestSkipped( 'mbstring extension not available.' ); |
|
725 | } |
|
726 | ||
727 | $old_charsets = $charsets = mb_detect_order(); |
|
728 | if ( ! in_array( 'EUC-JP', $charsets ) ) { |
|
729 | $charsets[] = 'EUC-JP'; |
|
730 | mb_detect_order( $charsets ); |
|
731 | } |
|
732 | ||
733 | $eucjp = mb_convert_encoding( 'aあb', 'EUC-JP', 'UTF-8' ); |
|
734 | $utf8 = mb_convert_encoding( $eucjp, 'UTF-8', 'EUC-JP' ); |
|
735 | ||
736 | $this->assertEquals( 'aあb', $utf8 ); |
|
737 | ||
738 | $this->assertEquals( '["c","a\u3042b"]', wp_json_encode( array( 'c', $eucjp ) ) ); |
|
739 | ||
740 | mb_detect_order( $old_charsets ); |
|
741 | } |
|
742 | ||
743 | /** |
|
744 | * @ticket 28786 |