# coding: utf-8 require 'helper' class TestTags < Test::Unit::TestCase def create_post(content, override = {}, converter_class = Jekyll::MarkdownConverter) stub(Jekyll).configuration do Jekyll::DEFAULTS.merge({'pygments' => true}).merge(override) end site = Site.new(Jekyll.configuration) info = { :filters => [Jekyll::Filters], :registers => { :site => site } } @converter = site.converters.find { |c| c.class == converter_class } payload = { "pygments_prefix" => @converter.pygments_prefix, "pygments_suffix" => @converter.pygments_suffix } @result = Liquid::Template.parse(content).render(payload, info) @result = @converter.convert(@result) end def fill_post(code, override = {}) content = <test\n}, @result end end context "post content has highlight with file reference" do setup do fill_post("./jekyll.gemspec") end should "not embed the file" do assert_match %{
./jekyll.gemspec\n
}, @result end end context "post content has highlight tag with UTF character" do setup do fill_post("Æ") end should "render markdown with pygments line handling" do assert_match %{
Æ\n
}, @result end end context "simple post with markdown and pre tags" do setup do @content = <
}, @result end end context "using Maruku" do setup do create_post(@content) end should "parse correctly" do assert_match %r{FIGHT!}, @result assert_match %r{FINISH HIM}, @result end end context "using RDiscount" do setup do create_post(@content, 'markdown' => 'rdiscount') end should "parse correctly" do assert_match %r{FIGHT!}, @result assert_match %r{FINISH HIM}, @result end end context "using Kramdown" do setup do create_post(@content, 'markdown' => 'kramdown') end should "parse correctly" do assert_match %r{FIGHT!}, @result assert_match %r{FINISH HIM}, @result end end context "using Redcarpet" do setup do create_post(@content, 'markdown' => 'redcarpet') end should "parse correctly" do assert_match %r{FIGHT!}, @result assert_match %r{FINISH HIM}, @result end end end end