| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | 
							- /**
 
-  * @fileoverview Tests for textdecoder.js.
 
-  */
 
- goog.module('protobuf.binary.TextDecoderTest');
 
- goog.setTestOnly();
 
- const {decode, encode} = goog.require('protobuf.binary.textencoding');
 
- describe('Decode does', () => {
 
-   it('return empty string for empty array', () => {
 
-     expect(decode(new DataView(new ArrayBuffer(0)))).toEqual('');
 
-   });
 
-   it('throw on null being passed', () => {
 
-     expect(() => decode(/** @type {!DataView} */ (/** @type {*} */ (null))))
 
-         .toThrow();
 
-   });
 
- });
 
- describe('Encode does', () => {
 
-   it('return empty array for empty string', () => {
 
-     expect(encode('')).toEqual(new Uint8Array(0));
 
-   });
 
-   it('throw on null being passed', () => {
 
-     expect(() => encode(/** @type {string} */ (/** @type {*} */ (null))))
 
-         .toThrow();
 
-   });
 
- });
 
- /** @const {!TextEncoder} */
 
- const textEncoder = new TextEncoder('utf-8');
 
- /**
 
-  * A Pair of string and Uint8Array representing the same data.
 
-  * Each pair has the string value and its utf-8 bytes.
 
-  */
 
- class Pair {
 
-   /**
 
-    * Constructs a pair from a given string.
 
-    * @param {string} s
 
-    * @return {!Pair}
 
-    */
 
-   static fromString(s) {
 
-     return new Pair(s, textEncoder.encode(s).buffer);
 
-   }
 
-   /**
 
-    * Constructs a pair from a given charCode.
 
-    * @param {number} charCode
 
-    * @return {!Pair}
 
-    */
 
-   static fromCharCode(charCode) {
 
-     return Pair.fromString(String.fromCharCode(charCode));
 
-   }
 
-   /**
 
-    * @param {string} stringValue
 
-    * @param {!ArrayBuffer} bytes
 
-    * @private
 
-    */
 
-   constructor(stringValue, bytes) {
 
-     /** @const @private {string} */
 
-     this.stringValue_ = stringValue;
 
-     /** @const @private {!ArrayBuffer} */
 
-     this.bytes_ = bytes;
 
-   }
 
-   /** Ensures that a given pair encodes and decodes round trip*/
 
-   expectPairToMatch() {
 
-     expect(decode(new DataView(this.bytes_))).toEqual(this.stringValue_);
 
-     expect(encode(this.stringValue_)).toEqual(new Uint8Array(this.bytes_));
 
-   }
 
- }
 
- describe('textencoding does', () => {
 
-   it('works for empty string', () => {
 
-     Pair.fromString('').expectPairToMatch();
 
-   });
 
-   it('decode and encode random strings', () => {
 
-     // 1 byte strings
 
-     Pair.fromString('hello').expectPairToMatch();
 
-     Pair.fromString('HELLO1!');
 
-     // 2 byte String
 
-     Pair.fromString('©').expectPairToMatch();
 
-     // 3 byte string
 
-     Pair.fromString('❄').expectPairToMatch();
 
-     // 4 byte string
 
-     Pair.fromString('😁').expectPairToMatch();
 
-   });
 
-   it('decode and encode 1 byte strings', () => {
 
-     for (let i = 0; i < 0x80; i++) {
 
-       Pair.fromCharCode(i).expectPairToMatch();
 
-     }
 
-   });
 
-   it('decode and encode 2 byte strings', () => {
 
-     for (let i = 0xC0; i < 0x7FF; i++) {
 
-       Pair.fromCharCode(i).expectPairToMatch();
 
-     }
 
-   });
 
-   it('decode and encode 3 byte strings', () => {
 
-     for (let i = 0x7FF; i < 0x8FFF; i++) {
 
-       Pair.fromCharCode(i).expectPairToMatch();
 
-     }
 
-   });
 
- });
 
 
  |