Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

37 righe
1.4 KiB

  1. /* eslint-env mocha */
  2. import React from "react"
  3. import expect from "expect"
  4. import { render } from "enzyme"
  5. import Markdown from "components/providers/markdown"
  6. import { Markdown as OAS3Markdown } from "corePlugins/oas3/wrap-components/markdown.js"
  7. describe("Markdown Script Sanitization", function() {
  8. describe("Swagger 2.0", function() {
  9. it("sanitizes <script> elements", function() {
  10. const str = `script <script>alert(1)</script>`
  11. const el = render(<Markdown source={str} />)
  12. expect(el.html()).toEqual(`<div class="markdown"><p>script </p>\n</div>`)
  13. })
  14. it("sanitizes <img> elements", function() {
  15. const str = `<img src=x onerror="alert('img-in-description')">`
  16. const el = render(<Markdown source={str} />)
  17. expect(el.html()).toEqual(`<div class="markdown"><p><img src="x"></p>\n</div>`)
  18. })
  19. })
  20. describe("OAS 3", function() {
  21. it("sanitizes <script> elements", function() {
  22. const str = `script <script>alert(1)</script>`
  23. const el = render(<OAS3Markdown source={str} />)
  24. expect(el.html()).toEqual(`<div class="renderedMarkdown"><div><p>script </p></div></div>`)
  25. })
  26. it("sanitizes <img> elements", function() {
  27. const str = `<img src=x onerror="alert('img-in-description')">`
  28. const el = render(<OAS3Markdown source={str} />)
  29. expect(el.html()).toEqual(`<div class="renderedMarkdown"><div><img src="x"></div></div>`)
  30. })
  31. })
  32. })