aboutsummaryrefslogtreecommitdiff
path: root/node_modules/sax/test/parser-position.js
blob: e4a68b1e9601953321b7b12a414f23d576c37784 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var sax = require("../lib/sax"),
    assert = require("assert")

function testPosition(chunks, expectedEvents) {
  var parser = sax.parser();
  expectedEvents.forEach(function(expectation) {
    parser['on' + expectation[0]] = function() {
      for (var prop in expectation[1]) {
        assert.equal(parser[prop], expectation[1][prop]);
      }
    }
  });
  chunks.forEach(function(chunk) {
    parser.write(chunk);
  });
};

testPosition(['<div>abcdefgh</div>'],
             [ ['opentag',  { position:  5, startTagPosition:  1 }]
             , ['text',     { position: 19, startTagPosition: 14 }]
             , ['closetag', { position: 19, startTagPosition: 14 }]
             ]);

testPosition(['<div>abcde','fgh</div>'],
             [ ['opentag',  { position:  5, startTagPosition:  1 }]
             , ['text',     { position: 19, startTagPosition: 14 }]
             , ['closetag', { position: 19, startTagPosition: 14 }]
             ]);