# -*- encoding: utf-8 -*-
require "spec_helper"
describe Kitabu::TOC::HTML do
def regexp(text)
/#{Regexp.escape(text)}/
end
HTML = <<-HTML
Item 1
Item 1.2
Item 1.1.3
Item 1.1.1.4
Item 1.1.1.1.5
Item 1.1.1.1.1.6
Item 2.1
Item 2.1 again
Internacionalização
HTML
HTML.force_encoding("utf-8")
let(:toc) { described_class.generate(HTML) }
let(:html) { toc.to_html }
let(:content) { toc.content }
it "has no body tag" do
expect(content).not_to match(//)
end
it "generates toc" do
expect(html).to have_tag("div.level1.item-1", regexp("Item 1"))
expect(html).to have_tag("div.level2.item-1-2", regexp("Item 1.2"))
expect(html).to have_tag("div.level3.item-1-1-3", regexp("Item 1.1.3"))
expect(html).to have_tag("div.level4.item-1-1-1-4", regexp("Item 1.1.1.4"))
expect(html).to have_tag("div.level5.item-1-1-1-1-5", regexp("Item 1.1.1.1.5"))
expect(html).to have_tag("div.level6.item-1-1-1-1-1-6", regexp("Item 1.1.1.1.1.6"))
expect(html).to have_tag("div.level2.item-2-1", regexp("Item 2.1"))
expect(html).to have_tag("div.level2.item-2-1-again", regexp("Item 2.1 again"))
expect(html).to have_tag("div.level2.internacionalizacao", regexp("Internacionalização"))
end
it "adds id attribute to content" do
expect(content).to have_tag("h1#item-1", regexp("Item 1"))
expect(content).to have_tag("h2#item-1-2", regexp("Item 1.2"))
expect(content).to have_tag("h3#item-1-1-3", regexp("Item 1.1.3"))
expect(content).to have_tag("h4#item-1-1-1-4", regexp("Item 1.1.1.4"))
expect(content).to have_tag("h5#item-1-1-1-1-5", regexp("Item 1.1.1.1.5"))
expect(content).to have_tag("h6#item-1-1-1-1-1-6", regexp("Item 1.1.1.1.1.6"))
expect(content).to have_tag("h2#item-2-1", regexp("Item 2.1"))
expect(content).to have_tag("h2#item-2-1-again", regexp("Item 2.1 again"))
expect(content).to have_tag("h2#internacionalizacao", regexp("Internacionalização"))
end
end