# frozen_string_literal: true require 'test_helper' class TestVariousTocHtml < Minitest::Test TEST_HTML_1 = <<-HTML

h1

h3

h6
HTML TEST_HTML_2 = <<-HTML

h1

h3

h2

h6
HTML TEST_HTML_3 = <<-HTML
h6
h5

h4

h3

h2

h1

HTML TEST_HTML_4 = <<-HTML

h1

h3

h2

h4

h5
HTML NO_TOC_HTML = <<-HTML

h1

no_toc h1

h2

no_toc h2

h3

no_toc h3

h4

no_toc h4

HTML TEST_JAPANESE_HTML = <<-HTML

HTML def test_nested_toc parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_1) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML actual = doc.css('ul.section-nav').to_s assert_equal(expected, actual) end def test_nested_toc_with_min_and_max parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_1, { "min_level" => 2, "max_level" => 5 }) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML actual = doc.css('ul.section-nav').to_s assert_equal(expected, actual) end def test_complex_nested_toc parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_2) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML actual = doc.css('ul.section-nav').to_s assert_equal(expected, actual) end def test_decremental_headings1 parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_3) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML actual = doc.css('ul.section-nav').to_s assert_equal(expected, actual) end def test_decremental_headings2 parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_4) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML assert_equal(expected, doc.css('ul.section-nav').to_s) end def test_no_toc parser = Jekyll::TableOfContents::Parser.new(NO_TOC_HTML) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML actual = doc.css('ul.section-nav').to_s assert_equal(expected, actual) end def test_japanese_toc parser = Jekyll::TableOfContents::Parser.new(TEST_JAPANESE_HTML) doc = Nokogiri::HTML(parser.toc) expected = <<-HTML HTML actual = doc.css('ul.section-nav').to_s assert_equal(expected, actual) end end