Chromium Code Reviews| 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..437006516e6b2ed3790398fac218292cf8f545cf 100644 |
| --- a/remoting/webapp/unittests/base_unittest.js |
| +++ b/remoting/webapp/unittests/base_unittest.js |
| @@ -232,4 +232,42 @@ 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, 209, 132]); |
|
Jamie
2014/08/29 02:14:08
Why not hex for the last two? Also, it might be wo
Sergey Ulanov
2014/08/29 23:40:28
Done.
|
| + |
| + // Unicode surrogate pair for U+1F603. |
| + QUnit.deepEqual(toJsArray(base.encodeUtf8("😃")), |
|
Jamie
2014/08/29 02:14:08
I always felt we needed more smiley faces in our s
Sergey Ulanov
2014/08/29 23:40:28
Acknowledged.
|
| + [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, 209, 132]).buffer), |
| + "挂Ѓф"); |
| + |
| + // Unicode surrogate pair for U+1F603. |
| + QUnit.equal(base.decodeUtf8(new Uint8Array([0xF0, 0x9F, 0x98, 0x83]).buffer), |
| + "😃"); |
| +}); |
| + |
| })(); |