decoderHtmlBrowser.spec.ts 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /**
  2. * @vitest-environment jsdom
  3. */
  4. import { decodeHtmlBrowser } from '../src/decodeHtmlBrowser'
  5. describe('decodeHtmlBrowser', () => {
  6. it('should decode HTML correctly', () => {
  7. expect(decodeHtmlBrowser(' abc 123 ')).toBe(' abc 123 ')
  8. expect(decodeHtmlBrowser('&')).toBe('&')
  9. expect(decodeHtmlBrowser('&')).toBe('&')
  10. expect(decodeHtmlBrowser('&')).toBe('&')
  11. expect(decodeHtmlBrowser('<')).toBe('<')
  12. expect(decodeHtmlBrowser('&lt;')).toBe('<')
  13. expect(decodeHtmlBrowser('&amp;lt;')).toBe('&lt;')
  14. expect(decodeHtmlBrowser('>')).toBe('>')
  15. expect(decodeHtmlBrowser('&gt;')).toBe('>')
  16. expect(decodeHtmlBrowser('&amp;gt;')).toBe('&gt;')
  17. expect(decodeHtmlBrowser('&nbsp;')).toBe('\u00a0')
  18. expect(decodeHtmlBrowser('&quot;')).toBe('"')
  19. expect(decodeHtmlBrowser('&apos;')).toBe("'")
  20. expect(decodeHtmlBrowser('&Eacute;')).toBe('\u00c9')
  21. expect(decodeHtmlBrowser('&#xc9;')).toBe('\u00c9')
  22. expect(decodeHtmlBrowser('&#201;')).toBe('\u00c9')
  23. // #3001 html tags inside attribute values
  24. expect(decodeHtmlBrowser('<strong>Text</strong>', true)).toBe(
  25. '<strong>Text</strong>',
  26. )
  27. expect(decodeHtmlBrowser('<strong>&amp;</strong>', true)).toBe(
  28. '<strong>&</strong>',
  29. )
  30. expect(
  31. decodeHtmlBrowser(
  32. '<strong>&lt;strong&gt;&amp;&lt;/strong&gt;</strong>',
  33. true,
  34. ),
  35. ).toBe('<strong><strong>&</strong></strong>')
  36. expect(decodeHtmlBrowser('"', true)).toBe('"')
  37. expect(decodeHtmlBrowser("'", true)).toBe("'")
  38. })
  39. })