markdown-ppp 2.9.2

Feature-rich Markdown Parsing and Pretty-Printing library
Documentation
use crate::ast::*;
use crate::parser::{parse_markdown, MarkdownParserState};

#[test]
fn code_block_indented1() {
    let doc = parse_markdown(MarkdownParserState::default(), "     a").unwrap();
    assert_eq!(
        doc,
        Document {
            blocks: vec![Block::CodeBlock(CodeBlock {
                kind: CodeBlockKind::Indented,
                literal: " a".to_owned()
            })]
        }
    );
}

#[test]
fn code_block_indented2() {
    let doc = parse_markdown(MarkdownParserState::default(), "     a\n    b").unwrap();
    assert_eq!(
        doc,
        Document {
            blocks: vec![Block::CodeBlock(CodeBlock {
                kind: CodeBlockKind::Indented,
                literal: " a\nb".to_owned()
            })]
        }
    );
}

#[test]
fn code_block_fenced1() {
    let doc = parse_markdown(MarkdownParserState::default(), "```\na\n```").unwrap();
    assert_eq!(
        doc,
        Document {
            blocks: vec![Block::CodeBlock(CodeBlock {
                kind: CodeBlockKind::Fenced { info: None },
                literal: "a".to_owned()
            })]
        }
    );
}

#[test]
fn code_block_fenced2() {
    let doc = parse_markdown(MarkdownParserState::default(), "  `````\na\n`````````").unwrap();
    assert_eq!(
        doc,
        Document {
            blocks: vec![Block::CodeBlock(CodeBlock {
                kind: CodeBlockKind::Fenced { info: None },
                literal: "a".to_owned()
            })]
        }
    );
}

#[test]
fn code_block_fenced3() {
    let doc = parse_markdown(MarkdownParserState::default(), "  ```\n    a\n      b\n```").unwrap();
    assert_eq!(
        doc,
        Document {
            blocks: vec![Block::CodeBlock(CodeBlock {
                kind: CodeBlockKind::Fenced { info: None },
                literal: "  a\n    b".to_owned()
            })]
        }
    );
}

#[test]
fn code_block_fenced4() {
    let doc = parse_markdown(MarkdownParserState::default(), "  ```rust\na\n```").unwrap();
    assert_eq!(
        doc,
        Document {
            blocks: vec![Block::CodeBlock(CodeBlock {
                kind: CodeBlockKind::Fenced {
                    info: Some("rust".to_owned())
                },
                literal: "a".to_owned()
            })]
        }
    );
}