UNPKG

sax

Version:

An evented streaming XML parser in JavaScript

45 lines (40 loc) 1.27 kB
// BOM at the very begining of the stream should be ignored require(__dirname).test({ xml: '\uFEFF<P></P>', expect: [ ['opentag', {'name':'P', attributes:{}, isSelfClosing: false}], ['closetag', 'P'] ] }); // In all other places it should be consumed require(__dirname).test({ xml: '\uFEFF<P BOM="\uFEFF">\uFEFFStarts and ends with BOM\uFEFF</P>', expect: [ ['attribute', {'name':'BOM', 'value':'\uFEFF'}], ['opentag', {'name':'P', attributes:{'BOM':'\uFEFF'}, isSelfClosing: false}], ['text', '\uFEFFStarts and ends with BOM\uFEFF'], ['closetag', 'P'] ] }); // BOM after a whitespace is an error require(__dirname).test({ xml: ' \uFEFF<P></P>', expect: [ ['error', 'Non-whitespace before first tag.\nLine: 0\nColumn: 2\nChar: \uFEFF'], ['text', '\uFEFF'], ['opentag', {'name': 'P', attributes: {}, isSelfClosing: false}], ['closetag', 'P'], ], strict: true }); // There is only one BOM allowed at the start require(__dirname).test({ xml: '\uFEFF\uFEFF<P></P>', expect: [ ['error', 'Non-whitespace before first tag.\nLine: 0\nColumn: 2\nChar: \uFEFF'], ['text', '\uFEFF'], ['opentag', {'name': 'P', attributes: {}, isSelfClosing: false}], ['closetag', 'P'], ], strict: true });