Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(107)

Unified Diff: remoting/webapp/unittests/base_unittest.js

Issue 514343002: XMPP implementation in JavaScript. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/webapp/js_proto/dom_proto.js ('k') | remoting/webapp/unittests/xmpp_connection_unittest.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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),
+ "😃");
+});
+
})();
« no previous file with comments | « remoting/webapp/js_proto/dom_proto.js ('k') | remoting/webapp/unittests/xmpp_connection_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698