blob: 65cc21c0953c9b6df83cae9c96622d504943f4e3 [file] [log] [blame]
// Copyright 2015 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';
QUnit.module('XmppErrorCache');
/**
* @param {string} stanza
* @param {string} expected
* @param {QUnit.Assert} assert
*/
function runStanzaTest(stanza, expected, assert) {
var monitor = new remoting.XmppErrorCache();
var parser = new DOMParser();
var xml = parser.parseFromString(stanza, 'text/xml');
monitor.processStanza(xml.firstElementChild);
var errorStanza = monitor.getFirstErrorStanza();
assert.equal(errorStanza, expected);
}
QUnit.test('should strip PII from session-initiate.', function(assert) {
var input =
'<iq xmlns="jabber:client" to="foo@google.com/chromotingE5A" ' +
'type="error" id="12747556118995360108" ' +
'from="123@chromoting.gserviceaccount.com/chromoting21B21C01">' +
'<jingle xmlns="urn:xmpp:jingle:1" sid="3953621430175055977" ' +
'action="session-initiate" ' +
'initiator="foo@google.com/chromotingE5A">' +
'<content name="chromoting" creator="initiator">' +
'<description xmlns="google:remoting">' +
'<standard-ice/>' +
'<control transport="mux-stream" version="3"/>' +
'<event transport="mux-stream" version="2"/>' +
'<video transport="stream" version="2" codec="vp9"/>' +
'<video transport="stream" version="2" codec="vp8"/>' +
'<audio transport="mux-stream" version="2" codec="opus"/>' +
'<audio transport="none"/>' +
'<authentication supported-methods="spake2_plain"/>' +
'</description>' +
'<unknown-field-that-contains-pii unknown-attribute="pii">' +
'This is PII' +
'</unknown-field-that-contains-pii>' +
'</content>' +
'</jingle>' +
'<error code="503" type="cancel">' +
'<service-unavailable xmlns="urn:ietf:xml:ns:xmpp-stanzas"/>' +
'</error>' +
'</iq>';
var expected =
'<iq xmlns="jabber:client" to="REDACTED" type="error" ' +
'id="12747556118995360108" from="REDACTED">' +
'<jingle xmlns="urn:xmpp:jingle:1" sid="3953621430175055977" ' +
'action="session-initiate" initiator="REDACTED">' +
'<content name="chromoting" creator="initiator">' +
'<description xmlns="google:remoting">' +
'<standard-ice/>' +
'<control transport="mux-stream" version="3"/>' +
'<event transport="mux-stream" version="2"/>' +
'<video transport="stream" version="2" codec="vp9"/>' +
'<video transport="stream" version="2" codec="vp8"/>' +
'<audio transport="mux-stream" version="2" codec="opus"/>' +
'<audio transport="none"/>' +
'<authentication supported-methods="spake2_plain"/>' +
'</description>' +
'<unknown-field-that-contains-pii unknown-attribute="REDACTED">'+
'REDACTED' +
'</unknown-field-that-contains-pii>' +
'</content>' +
'</jingle>' +
'<error code="503" type="cancel">' +
'<service-unavailable xmlns="urn:ietf:xml:ns:xmpp-stanzas"/>' +
'</error>' +
'</iq>';
runStanzaTest(input, expected, assert);
});
})();