Ejemplo n.º 1
0
  suite.test('Fix orphan LI elements', function () {
    let parser;

    parser = DomParser({}, schema);
    root = parser.parse('<ul><li>a</li></ul><li>b</li>');
    LegacyUnit.equal(serializer.serialize(root), '<ul><li>a</li><li>b</li></ul>', 'LI moved to previous sibling UL');

    parser = DomParser({}, schema);
    root = parser.parse('<li>a</li><ul><li>b</li></ul>');
    LegacyUnit.equal(serializer.serialize(root), '<ul><li>a</li><li>b</li></ul>', 'LI moved to next sibling UL');

    parser = DomParser({}, schema);
    root = parser.parse('<li>a</li>');
    LegacyUnit.equal(serializer.serialize(root), '<ul><li>a</li></ul>', 'LI wrapped in new UL');
  });
Ejemplo n.º 2
0
 suite.test('Remove empty nodes', function () {
   parser = DomParser({}, Schema({ valid_elements: '-p,-span[id]' }));
   root = parser.parse(
     '<p>a<span></span><span> </span><span id="x">b</span><span id="y"></span></p><p></p><p><span></span></p><p> </p>'
   );
   LegacyUnit.equal(serializer.serialize(root), '<p>a <span id="x">b</span><span id="y"></span></p>');
 });
Ejemplo n.º 3
0
  suite.test('addAttributeFilter multiple', function () {
    let parser;
    const results: any = {};

    parser = DomParser({});
    parser.addAttributeFilter('src,href', function (nodes, name, args) {
      results[name] = { nodes, name, args };
    });
    parser.parse('<b><a href="1.gif">a</a><img src="1.gif" />b<img src="1.gif" /><a href="2.gif">c</a></b>');

    LegacyUnit.deepEqual(results.src.args, {}, 'Parser args');
    LegacyUnit.equal(results.src.name, 'src', 'Parser filter result name');
    LegacyUnit.equal(results.src.nodes.length, 2, 'Parser filter result node');
    LegacyUnit.equal(results.src.nodes[0].name, 'img', 'Parser filter result node(0) name');
    LegacyUnit.equal(results.src.nodes[0].attr('src'), '1.gif', 'Parser filter result node(0) attr');
    LegacyUnit.equal(results.src.nodes[1].name, 'img', 'Parser filter result node(1) name');
    LegacyUnit.equal(results.src.nodes[1].attr('src'), '1.gif', 'Parser filter result node(1) attr');
    LegacyUnit.deepEqual(results.href.args, {}, 'Parser args');
    LegacyUnit.equal(results.href.name, 'href', 'Parser filter result name');
    LegacyUnit.equal(results.href.nodes.length, 2, 'Parser filter result node');
    LegacyUnit.equal(results.href.nodes[0].name, 'a', 'Parser filter result node(0) name');
    LegacyUnit.equal(results.href.nodes[0].attr('href'), '1.gif', 'Parser filter result node(0) attr');
    LegacyUnit.equal(results.href.nodes[1].name, 'a', 'Parser filter result node(1) name');
    LegacyUnit.equal(results.href.nodes[1].attr('href'), '2.gif', 'Parser filter result node(1) attr');
  });
Ejemplo n.º 4
0
 suite.test('Pad empty with br', function () {
   const schema = Schema();
   const parser = DomParser({ padd_empty_with_br: true }, schema);
   const serializer = Serializer({ }, schema);
   const root = parser.parse('<p>a</p><p></p>');
   LegacyUnit.equal(serializer.serialize(root), '<p>a</p><p><br /></p>');
 });
Ejemplo n.º 5
0
  suite.test('addNodeFilter multiple names', function () {
    let parser;
    const results = {};

    parser = DomParser({}, schema);
    parser.addNodeFilter('#comment,#text', function (nodes, name, args) {
      results[name] = { nodes, name, args };
    });
    parser.parse('text1<!--text1-->text2<!--text2-->');

    LegacyUnit.deepEqual(results['#comment'].args, {}, 'Parser args');
    LegacyUnit.equal(results['#comment'].name, '#comment', 'Parser filter result name');
    LegacyUnit.equal(results['#comment'].nodes.length, 2, 'Parser filter result node');
    LegacyUnit.equal(results['#comment'].nodes[0].name, '#comment', 'Parser filter result node(0) name');
    LegacyUnit.equal(results['#comment'].nodes[0].value, 'text1', 'Parser filter result node(0) value');
    LegacyUnit.equal(results['#comment'].nodes[1].name, '#comment', 'Parser filter result node(1) name');
    LegacyUnit.equal(results['#comment'].nodes[1].value, 'text2', 'Parser filter result node(1) value');
    LegacyUnit.deepEqual(results['#text'].args, {}, 'Parser args');
    LegacyUnit.equal(results['#text'].name, '#text', 'Parser filter result name');
    LegacyUnit.equal(results['#text'].nodes.length, 2, 'Parser filter result node');
    LegacyUnit.equal(results['#text'].nodes[0].name, '#text', 'Parser filter result node(0) name');
    LegacyUnit.equal(results['#text'].nodes[0].value, 'text1', 'Parser filter result node(0) value');
    LegacyUnit.equal(results['#text'].nodes[1].name, '#text', 'Parser filter result node(1) name');
    LegacyUnit.equal(results['#text'].nodes[1].value, 'text2', 'Parser filter result node(1) value');
  });
Ejemplo n.º 6
0
const parseHeader = function (head: string) {
  // Parse the contents with a DOM parser
  return DomParser({
    validate: false,
    root_name: '#document'
  }).parse(head);
};
Ejemplo n.º 7
0
  suite.test('Remove br in invalid parent bug', function () {
    let parser, root;
    const schema = Schema({ valid_elements: 'br' });

    parser = DomParser({ remove_trailing_brs: true }, schema);
    root = parser.parse('<br>');
    LegacyUnit.equal(serializer.serialize(root), '', 'Remove traling br elements.');
  });
Ejemplo n.º 8
0
  suite.test('Invalid inline element with space before', function () {
    let parser, root;
    const schema = Schema();

    parser = DomParser({}, schema);
    root = parser.parse('<p><span>1</span> <strong>2</strong></p>');
    LegacyUnit.equal(serializer.serialize(root), '<p>1 <strong>2</strong></p>');
  });
Ejemplo n.º 9
0
  suite.test('Valid classes', function () {
    let parser, root;
    const schema = Schema({ valid_classes: 'classA classB' });

    parser = DomParser({}, schema);
    root = parser.parse('<p class="classA classB classC">a</p>');
    LegacyUnit.equal(serializer.serialize(root), '<p class="classA classB">a</p>');
  });
Ejemplo n.º 10
0
  suite.test('Pad empty list blocks', function () {
    let parser, root;
    const schema = Schema();

    parser = DomParser({}, schema);
    root = parser.parse('<ul><li></li></ul><ul><li> </li></ul>');
    LegacyUnit.equal(serializer.serialize(root), '<ul><li>\u00a0</li></ul><ul><li>\u00a0</li></ul>');
  });