markdown-script-sanitization.jsx 1.3 KB

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