text: // 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
  })
  