| Index: remoting/webapp/unittests/xmpp_stream_parser_unittest.js
|
| diff --git a/remoting/webapp/unittests/xmpp_stream_parser_unittest.js b/remoting/webapp/unittests/xmpp_stream_parser_unittest.js
|
| deleted file mode 100644
|
| index ec6cc4530a7a9e2568bea9cc7ee12cc270e8de4b..0000000000000000000000000000000000000000
|
| --- a/remoting/webapp/unittests/xmpp_stream_parser_unittest.js
|
| +++ /dev/null
|
| @@ -1,95 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -(function() {
|
| -
|
| -'use strict';
|
| -
|
| -/** @type {Function} */
|
| -var onStanzaStr = null;
|
| -
|
| -/** @type {function(string):void} */
|
| -var onError = function(msg) {};
|
| -
|
| -/** @type {remoting.XmppStreamParser} */
|
| -var parser = null;
|
| -
|
| -module('XmppStreamParser', {
|
| - setup: function() {
|
| - onStanzaStr = sinon.spy();
|
| - onError = /** @type {function(string):void} */ (sinon.spy());
|
| - /** @param {Element} stanza */
|
| - function onStanza(stanza) {
|
| - onStanzaStr(new XMLSerializer().serializeToString(stanza));
|
| - }
|
| - parser = new remoting.XmppStreamParser();
|
| - parser.setCallbacks(onStanza, onError);
|
| - }
|
| -});
|
| -
|
| -
|
| -test('should parse XMPP stream', function() {
|
| - parser.appendData(base.encodeUtf8('<stream><iq>text</iq>'));
|
| - sinon.assert.calledWith(onStanzaStr, '<iq>text</iq>');
|
| -});
|
| -
|
| -test('should handle multiple incoming stanzas', function() {
|
| - parser.appendData(base.encodeUtf8('<stream><iq>text</iq><iq>more text</iq>'));
|
| - sinon.assert.calledWith(onStanzaStr, '<iq>text</iq>');
|
| - sinon.assert.calledWith(onStanzaStr, '<iq>more text</iq>');
|
| -});
|
| -
|
| -test('should ignore whitespace between stanzas', function() {
|
| - parser.appendData(base.encodeUtf8('<stream> <iq>text</iq>'));
|
| - sinon.assert.calledWith(onStanzaStr, '<iq>text</iq>');
|
| -});
|
| -
|
| -test('should assemble messages from small chunks', function() {
|
| - parser.appendData(base.encodeUtf8('<stream><i'));
|
| - parser.appendData(base.encodeUtf8('q>'));
|
| -
|
| - // Split one UTF-8 sequence into two chunks
|
| - var data = base.encodeUtf8('😃');
|
| - parser.appendData(data.slice(0, 2));
|
| - parser.appendData(data.slice(2));
|
| -
|
| - parser.appendData(base.encodeUtf8('</iq>'));
|
| -
|
| - sinon.assert.calledWith(onStanzaStr, '<iq>😃</iq>');
|
| -});
|
| -
|
| -test('should stop parsing on errors', function() {
|
| - parser.appendData(base.encodeUtf8('<stream>error<iq>text</iq>'));
|
| - sinon.assert.calledWith(onError);
|
| - sinon.assert.notCalled(onStanzaStr);
|
| -});
|
| -
|
| -test('should fail on invalid stream header', function() {
|
| - parser.appendData(base.encodeUtf8('<stream p=\'>'));
|
| - sinon.assert.calledWith(onError);
|
| -});
|
| -
|
| -test('should fail on loose text', function() {
|
| - parser.appendData(base.encodeUtf8('stream'));
|
| - sinon.assert.calledWith(onError);
|
| -});
|
| -
|
| -test('should fail on loose text with incomplete UTF-8 sequences', function() {
|
| - var buffer = base.encodeUtf8('<stream>Ñ„')
|
| - // Crop last byte.
|
| - buffer = buffer.slice(0, buffer.byteLength - 1);
|
| - parser.appendData(buffer);
|
| - sinon.assert.calledWith(onError);
|
| -});
|
| -
|
| -test('should fail on incomplete UTF-8 sequences', function() {
|
| - var buffer = base.encodeUtf8('<stream><iq>Ñ„')
|
| - // Crop last byte.
|
| - buffer = buffer.slice(0, buffer.byteLength - 1);
|
| - parser.appendData(buffer);
|
| - parser.appendData(base.encodeUtf8('</iq>'));
|
| - sinon.assert.calledWith(onError);
|
| -});
|
| -
|
| -})();
|
|
|