98 lines
2.6 KiB
Ruby
98 lines
2.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'minitest/autorun'
|
|
require_relative '../lib/rbmark'
|
|
|
|
# Test Setext Heading parsing compliance with CommonMark v0.31.2
|
|
class TestSetextHeadings < Minitest::Test
|
|
def test_simple_indent
|
|
doc = ::RBMark::DOM::Document.parse(<<~DOC)
|
|
text
|
|
|
|
indented code block
|
|
without space mangling
|
|
|
|
int main() {
|
|
printf("Hello world!\\n");
|
|
}
|
|
DOC
|
|
assert_instance_of(::RBMark::DOM::IndentBlock, doc.children[1])
|
|
end
|
|
|
|
def test_list_item_precedence
|
|
skip # TODO: implement this
|
|
end
|
|
|
|
def test_numbered_list_item_precednce
|
|
skip # TODO: implement this
|
|
end
|
|
|
|
def test_check_indent_contents
|
|
skip # TODO: yet again please implement this at some point thanks
|
|
end
|
|
|
|
def test_long_chunk
|
|
doc = ::RBMark::DOM::Document.parse(<<~DOC)
|
|
text
|
|
|
|
indented code block
|
|
without space mangling
|
|
|
|
int main() {
|
|
printf("Hello world!\\n");
|
|
}
|
|
|
|
|
|
there are many space changes here and blank lines that
|
|
should *NOT* affect the way this is parsed
|
|
DOC
|
|
assert_instance_of(::RBMark::DOM::IndentBlock, doc.children[1])
|
|
end
|
|
|
|
def test_does_not_interrupt_paragraph
|
|
doc = ::RBMark::DOM::Document.parse(<<~DOC)
|
|
Paragraph begins here
|
|
paragraph does the stupid wacky shit that somebody thinks is very funny
|
|
paragraph keeps doing that shit
|
|
DOC
|
|
assert_instance_of(::RBMark::DOM::Paragraph, doc.children[0])
|
|
assert_equal(1, doc.children.length)
|
|
end
|
|
|
|
def test_begins_at_first_sight_of_four_spaces
|
|
doc = ::RBMark::DOM::Document.parse(<<~DOC)
|
|
text
|
|
|
|
This is an indent block
|
|
This is a paragraph
|
|
DOC
|
|
assert_instance_of(::RBMark::DOM::Paragraph, doc.children[0])
|
|
assert_instance_of(::RBMark::DOM::IndentBlock, doc.children[1])
|
|
assert_instance_of(::RBMark::DOM::Paragraph, doc.children[2])
|
|
end
|
|
|
|
def test_interrupts_all_other_blocks
|
|
doc = ::RBMark::DOM::Document.parse(<<~DOC)
|
|
# Heading
|
|
foo
|
|
Heading
|
|
------
|
|
foo
|
|
----
|
|
DOC
|
|
assert_instance_of(::RBMark::DOM::Heading1, doc.children[0])
|
|
assert_instance_of(::RBMark::DOM::IndentBlock, doc.children[1])
|
|
assert_instance_of(::RBMark::DOM::Heading2, doc.children[2])
|
|
assert_instance_of(::RBMark::DOM::IndentBlock, doc.children[3])
|
|
assert_instance_of(::RBMark::DOM::HorizontalRule, doc.children[4])
|
|
end
|
|
|
|
def test_check_blank_lines_contents
|
|
skip # TODO: PLEASE I FUCKING BEG YOU IMPLEMENT THIS
|
|
end
|
|
|
|
def test_check_contents_trailing_spaces
|
|
skip # TODO: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa
|
|
end
|
|
end
|