let markdown_to_html = Builder_web__Utils.Omd.html_of_string
let test_simple () =
let markdown = {|# Hello world|} in
let html = markdown_to_html markdown in
Alcotest.(check string "simple html" "
Hello world
\n" html)
let test_html_script () =
let markdown = {|# |} in
let html = markdown_to_html markdown in
Alcotest.(check string "html script header" "Hello world
\n" html)
let test_preserve_span_content () =
let markdown = {|* My ref
* [See my ref](#myref) for more information|} in
let html = markdown_to_html markdown in
Alcotest.(check string "html span content preserved"
{|
- My ref
- See my ref for more information
|}
html)
let test_remove_script () =
let markdown = {||} in
let html = markdown_to_html markdown in
Alcotest.(check string "html script removed" "" html)
let test_list_with_html_block_and_markdown () =
let markdown = "* Hello, World!
*this is not html*" in
let html = markdown_to_html markdown in
Alcotest.(check string "list with html block and markdown"
(*"\n"*) ""
html)
let test_list_with_inline_html_and_markdown () =
let markdown = "* Hello, World! *this is not html*" in
let html = markdown_to_html markdown in
Alcotest.(check string "list with html block and markdown"
"\n- Hello, World! this is not html\n
\n
\n"
html)
let test_absolute_link () =
let markdown = "[foo](https://foo.com)" in
let html = markdown_to_html markdown in
Alcotest.(check string "absolute link" "foo
\n" html)
let test_relative_link () =
let markdown = "[foo](../foo.jpg)" in
let html = markdown_to_html markdown in
Alcotest.(check string "relative link" "foo
\n" html)
let test_absolute_image () =
let markdown = "" in
let html = markdown_to_html markdown in
Alcotest.(check string "absolute image"
"
\n" html)
let test_absolute_image_no_alt () =
let markdown = "" in
let html = markdown_to_html markdown in
Alcotest.(check string "absolute image"
"
\n" html)
let test_relative_image () =
let markdown = "" in
let html = markdown_to_html markdown in
Alcotest.(check string "relative image" "" html)
let test_absolute_image_script_alt () =
let markdown = "" in
let html = markdown_to_html markdown in
Alcotest.(check string "absolute image with script alt text"
"
\n" html)
let test_fragment_link () =
let markdown = "[fragment](#fragment)" in
let html = markdown_to_html markdown in
Alcotest.(check string "fragment link" "fragment
\n" html)
let markdown_tests = [
Alcotest.test_case "Simple" `Quick test_simple;
Alcotest.test_case "script header" `Quick test_html_script;
Alcotest.test_case "preserve span content" `Quick test_preserve_span_content;
Alcotest.test_case "Remove script" `Quick test_remove_script;
Alcotest.test_case "List with html block and markdown" `Quick test_list_with_html_block_and_markdown;
Alcotest.test_case "List with inline html and markdown" `Quick test_list_with_inline_html_and_markdown;
Alcotest.test_case "absolute link" `Quick test_absolute_link;
Alcotest.test_case "relative link" `Quick test_relative_link;
Alcotest.test_case "absolute image" `Quick test_absolute_image;
Alcotest.test_case "absolute image no alt" `Quick test_absolute_image_no_alt;
Alcotest.test_case "relative image" `Quick test_relative_image;
Alcotest.test_case "absolute image with script alt" `Quick test_absolute_image_script_alt;
Alcotest.test_case "fragment link" `Quick test_fragment_link;
]
let () =
Alcotest.run "Markdown to HTML" [
"markdown", markdown_tests
]