/**
 * @license
 * Copyright Google LLC All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
import * as xml from '../../../src/i18n/serializers/xml_helper';
{
  describe('XML helper', () => {
    it('should serialize XML declaration', () => {
      expect(xml.serialize([new xml.Declaration({version: '1.0'})]))
          .toEqual('');
    });
    it('should serialize text node', () => {
      expect(xml.serialize([new xml.Text('foo bar')])).toEqual('foo bar');
    });
    it('should escape text nodes', () => {
      expect(xml.serialize([new xml.Text('<>')])).toEqual('<>');
    });
    it('should serialize xml nodes without children', () => {
      expect(xml.serialize([new xml.Tag('el', {foo: 'bar'}, [])])).toEqual('');
    });
    it('should serialize xml nodes with children', () => {
      expect(xml.serialize([
        new xml.Tag('parent', {}, [new xml.Tag('child', {}, [new xml.Text('content')])])
      ])).toEqual('content');
    });
    it('should serialize node lists', () => {
      expect(xml.serialize([
        new xml.Tag('el', {order: '0'}, []),
        new xml.Tag('el', {order: '1'}, []),
      ])).toEqual('');
    });
    it('should escape attribute values', () => {
      expect(xml.serialize([new xml.Tag('el', {foo: '<">'}, [])]))
          .toEqual('');
    });
  });
}