parser-position.js 951 B

12345678910111213141516171819202122232425262728
  1. var sax = require("../lib/sax"),
  2. assert = require("assert")
  3. function testPosition(chunks, expectedEvents) {
  4. var parser = sax.parser();
  5. expectedEvents.forEach(function(expectation) {
  6. parser['on' + expectation[0]] = function() {
  7. for (var prop in expectation[1]) {
  8. assert.equal(parser[prop], expectation[1][prop]);
  9. }
  10. }
  11. });
  12. chunks.forEach(function(chunk) {
  13. parser.write(chunk);
  14. });
  15. };
  16. testPosition(['<div>abcdefgh</div>'],
  17. [ ['opentag', { position: 5, startTagPosition: 1 }]
  18. , ['text', { position: 19, startTagPosition: 14 }]
  19. , ['closetag', { position: 19, startTagPosition: 14 }]
  20. ]);
  21. testPosition(['<div>abcde','fgh</div>'],
  22. [ ['opentag', { position: 5, startTagPosition: 1 }]
  23. , ['text', { position: 19, startTagPosition: 14 }]
  24. , ['closetag', { position: 19, startTagPosition: 14 }]
  25. ]);