diff options
author | 2016-11-15 09:29:46 -0800 | |
---|---|---|
committer | 2016-11-15 09:29:46 -0800 | |
commit | c6f3d700b90cd51328c8b5f6c144789ca237e771 (patch) | |
tree | 13dd68fb6aa1dcc412a4e9d50e082986f1c897a2 /js/binary/decoder_test.js | |
parent | 6e93fa41c4f8666ee7ccd65026c9b7078bf0309a (diff) | |
parent | bd850a25f51dfb662a761473c151c016c815bcb5 (diff) |
Merge pull request #1907 from evokly/js-utf8-fix
JS: Fix for high utf-8 codepoints.
Diffstat (limited to 'js/binary/decoder_test.js')
-rw-r--r-- | js/binary/decoder_test.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/js/binary/decoder_test.js b/js/binary/decoder_test.js index ac312648..9f947b99 100644 --- a/js/binary/decoder_test.js +++ b/js/binary/decoder_test.js @@ -209,7 +209,30 @@ describe('binaryDecoderTest', function() { assertEquals(hashC, decoder.readFixedHash64()); assertEquals(hashD, decoder.readFixedHash64()); }); + + /** + * Test encoding and decoding utf-8. + */ + it('testUtf8', function() { + var encoder = new jspb.BinaryEncoder(); + var ascii = "ASCII should work in 3, 2, 1..." + var utf8_two_bytes = "©"; + var utf8_three_bytes = "❄"; + var utf8_four_bytes = "😁"; + + encoder.writeString(ascii); + encoder.writeString(utf8_two_bytes); + encoder.writeString(utf8_three_bytes); + encoder.writeString(utf8_four_bytes); + + var decoder = jspb.BinaryDecoder.alloc(encoder.end()); + + assertEquals(ascii, decoder.readString(ascii.length)); + assertEquals(utf8_two_bytes, decoder.readString(utf8_two_bytes.length)); + assertEquals(utf8_three_bytes, decoder.readString(utf8_three_bytes.length)); + assertEquals(utf8_four_bytes, decoder.readString(utf8_four_bytes.length)); + }); /** * Verifies that misuse of the decoder class triggers assertions. |