test_inline_bbcode.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from ..parser import parse
  2. def test_bold_bbcode(request_mock, user, snapshot):
  3. text = "Lorem [b]ipsum[/b]!"
  4. result = parse(text, request_mock, user, minify=False)
  5. snapshot.assert_match(result["parsed_text"])
  6. def test_italics_bbcode(request_mock, user, snapshot):
  7. text = "Lorem [i]ipsum[/i]!"
  8. result = parse(text, request_mock, user, minify=False)
  9. snapshot.assert_match(result["parsed_text"])
  10. def test_underline_bbcode(request_mock, user, snapshot):
  11. text = "Lorem [u]ipsum[/u]!"
  12. result = parse(text, request_mock, user, minify=False)
  13. snapshot.assert_match(result["parsed_text"])
  14. def test_inline_bbcode_can_be_mixed_with_markdown(request_mock, user, snapshot):
  15. text = "Lorem [b]**ipsum**[/b]!"
  16. result = parse(text, request_mock, user, minify=False)
  17. snapshot.assert_match(result["parsed_text"])
  18. def test_image_bbcode(request_mock, user, snapshot):
  19. text = "Lorem [img]https://placekitten.com/g/1200/500[/img] ipsum"
  20. result = parse(text, request_mock, user, minify=False)
  21. snapshot.assert_match(result["parsed_text"])
  22. def test_image_bbcode_is_case_insensitive(request_mock, user, snapshot):
  23. text = "Lorem [iMg]https://placekitten.com/g/1200/500[/ImG] ipsum"
  24. result = parse(text, request_mock, user, minify=False)
  25. snapshot.assert_match(result["parsed_text"])
  26. def test_url_bbcode(request_mock, user, snapshot):
  27. text = "Lorem [url]https://placekitten.com/g/1200/500[/url] ipsum"
  28. result = parse(text, request_mock, user, minify=False)
  29. snapshot.assert_match(result["parsed_text"])
  30. def test_url_bbcode_includes_nofollow_and_noopener(request_mock, user, snapshot):
  31. text = "Lorem [url]https://placekitten.com/g/1200/500[/url] ipsum"
  32. result = parse(text, request_mock, user, minify=False)
  33. assert 'rel="nofollow noopener"' in result["parsed_text"]
  34. def test_url_bbcode_with_link_text(request_mock, user, snapshot):
  35. text = "Lorem [url=https://placekitten.com/g/1200/500]dolor[/url] ipsum"
  36. result = parse(text, request_mock, user, minify=False)
  37. snapshot.assert_match(result["parsed_text"])
  38. def test_url_bbcode_with_long_link_text(request_mock, user, snapshot):
  39. text = "Lorem [url=https://placekitten.com/g/1200/500]dolor met[/url] ipsum"
  40. result = parse(text, request_mock, user, minify=False)
  41. snapshot.assert_match(result["parsed_text"])
  42. def test_url_bbcode_with_quotes_and_link_text(request_mock, user, snapshot):
  43. text = 'Lorem [url="https://placekitten.com/g/1200/500"]dolor[/url] ipsum'
  44. result = parse(text, request_mock, user, minify=False)
  45. snapshot.assert_match(result["parsed_text"])
  46. def test_url_bbcode_with_quotes_and_long_link_text(request_mock, user, snapshot):
  47. text = 'Lorem [url="https://placekitten.com/g/1200/500"]dolor met[/url] ipsum'
  48. result = parse(text, request_mock, user, minify=False)
  49. snapshot.assert_match(result["parsed_text"])