| Index: remoting/webapp/unittests/base_unittest.js
|
| diff --git a/remoting/webapp/unittests/base_unittest.js b/remoting/webapp/unittests/base_unittest.js
|
| index c36c6acad4254dca35fcf7affb8194799e603138..a002bdf69b60d1719eb4baad737b34afa9834584 100644
|
| --- a/remoting/webapp/unittests/base_unittest.js
|
| +++ b/remoting/webapp/unittests/base_unittest.js
|
| @@ -232,4 +232,45 @@ test('removeEventListener() should work even if the listener ' +
|
| sinon.assert.calledOnce(sink.listener);
|
| });
|
|
|
| +test('encodeUtf8() can encode UTF8 strings', function() {
|
| + function toJsArray(arrayBuffer) {
|
| + var result = [];
|
| + var array = new Uint8Array(arrayBuffer);
|
| + for (var i = 0; i < array.length; ++i) {
|
| + result.push(array[i]);
|
| + }
|
| + return result;
|
| + }
|
| +
|
| + // ASCII.
|
| + QUnit.deepEqual(toJsArray(base.encodeUtf8("ABC")), [0x41, 0x42, 0x43]);
|
| +
|
| + // Some arbitrary characters from the basic Unicode plane.
|
| + QUnit.deepEqual(
|
| + toJsArray(base.encodeUtf8("挂Ѓф")),
|
| + [/* 挂 */ 0xE6, 0x8C, 0x82, /* Ѓ */ 0xD0, 0x83, /* ф */ 0xD1, 0x84]);
|
| +
|
| + // Unicode surrogate pair for U+1F603.
|
| + QUnit.deepEqual(toJsArray(base.encodeUtf8("😃")),
|
| + [0xF0, 0x9F, 0x98, 0x83]);
|
| +});
|
| +
|
| +test('decodeUtf8() can decode UTF8 strings', function() {
|
| + // ASCII.
|
| + QUnit.equal(base.decodeUtf8(new Uint8Array([0x41, 0x42, 0x43]).buffer),
|
| + "ABC");
|
| +
|
| + // Some arbitrary characters from the basic Unicode plane.
|
| + QUnit.equal(
|
| + base.decodeUtf8(
|
| + new Uint8Array([/* 挂 */ 0xE6, 0x8C, 0x82,
|
| + /* Ѓ */ 0xD0, 0x83,
|
| + /* ф */ 0xD1, 0x84]).buffer),
|
| + "挂Ѓф");
|
| +
|
| + // Unicode surrogate pair for U+1F603.
|
| + QUnit.equal(base.decodeUtf8(new Uint8Array([0xF0, 0x9F, 0x98, 0x83]).buffer),
|
| + "😃");
|
| +});
|
| +
|
| })();
|
|
|