mirror of
https://github.com/jekyll/jekyll.git
synced 2026-01-30 01:08:26 -05:00
Textile support was removed from jekyll core in #3319, and most of the tests switched to markdown at that time. This changes the remaining tests to use markdown as well. The vast majority of the test cases were testing things in the file name or front matter, so it doesn't really matter what markup format they use. The one test that was claiming to test that textile was transformed had actually been moved to markdown as well, just not renamed. Fixes #3507
128 lines
4.1 KiB
Ruby
128 lines
4.1 KiB
Ruby
require 'helper'
|
|
|
|
class TestExcerpt < JekyllUnitTest
|
|
def setup_post(file)
|
|
Post.new(@site, source_dir, '', file)
|
|
end
|
|
|
|
def do_render(post)
|
|
layouts = { "default" => Layout.new(@site, source_dir('_layouts'), "simple.html")}
|
|
post.render(layouts, {"site" => {"posts" => []}})
|
|
end
|
|
|
|
context "With extraction disabled" do
|
|
setup do
|
|
clear_dest
|
|
@site = Site.new(site_configuration('excerpt_separator' => ''))
|
|
@post = setup_post("2013-07-22-post-excerpt-with-layout.markdown")
|
|
end
|
|
|
|
should "not be generated" do
|
|
excerpt = @post.send(:extract_excerpt)
|
|
assert_equal true, excerpt.empty?
|
|
end
|
|
end
|
|
|
|
context "An extracted excerpt" do
|
|
setup do
|
|
clear_dest
|
|
@site = Site.new(site_configuration)
|
|
@post = setup_post("2013-07-22-post-excerpt-with-layout.markdown")
|
|
@excerpt = @post.send :extract_excerpt
|
|
end
|
|
|
|
context "#include(string)" do
|
|
|
|
setup do
|
|
@excerpt.output = "Here is a fake output stub"
|
|
end
|
|
|
|
should "return true only if an excerpt output contains a specified string" do
|
|
assert @excerpt.include?("fake output")
|
|
refute @excerpt.include?("real output")
|
|
end
|
|
end
|
|
|
|
context "#id" do
|
|
should "contain the UID for the post" do
|
|
assert_equal @excerpt.id, "#{@post.id}/#excerpt"
|
|
end
|
|
should "return a string" do
|
|
assert_same @post.id.class, String
|
|
end
|
|
end
|
|
|
|
context "#to_s" do
|
|
should "return its content if no output present" do
|
|
assert_equal @excerpt.content, @excerpt.to_s
|
|
end
|
|
|
|
should "return its output if output present" do
|
|
@excerpt.output = "Fake Output"
|
|
assert_equal @excerpt.output, @excerpt.to_s
|
|
end
|
|
end
|
|
|
|
context "#inspect" do
|
|
should "contain the excerpt id as a shorthand string identifier" do
|
|
assert_equal @excerpt.inspect, "<Excerpt: #{@excerpt.id}>"
|
|
end
|
|
|
|
should "return a string" do
|
|
assert_same @post.id.class, String
|
|
end
|
|
end
|
|
|
|
context "#to_liquid" do
|
|
should "contain the proper page data to mimick the post liquid" do
|
|
assert_equal "Post Excerpt with Layout", @excerpt.to_liquid["title"]
|
|
assert_equal "/bar/baz/z_category/mixedcase/2013/07/22/post-excerpt-with-layout.html", @excerpt.to_liquid["url"]
|
|
assert_equal Time.parse("2013-07-22"), @excerpt.to_liquid["date"]
|
|
assert_equal %w[bar baz z_category MixedCase], @excerpt.to_liquid["categories"]
|
|
assert_equal %w[first second third jekyllrb.com], @excerpt.to_liquid["tags"]
|
|
assert_equal "_posts/2013-07-22-post-excerpt-with-layout.markdown", @excerpt.to_liquid["path"]
|
|
end
|
|
|
|
should "consider inheritance" do
|
|
klass = Class.new(Jekyll::Post)
|
|
assert_gets_called = false
|
|
klass.send(:define_method, :assert_gets_called) { assert_gets_called = true }
|
|
klass.const_set(:EXCERPT_ATTRIBUTES_FOR_LIQUID, Jekyll::Post::EXCERPT_ATTRIBUTES_FOR_LIQUID + ['assert_gets_called'])
|
|
post = klass.new(@site, source_dir, '', "2008-02-02-published.markdown")
|
|
Jekyll::Excerpt.new(post).to_liquid
|
|
|
|
assert assert_gets_called, 'assert_gets_called did not get called on post.'
|
|
end
|
|
end
|
|
|
|
context "#content" do
|
|
|
|
context "before render" do
|
|
should "be the first paragraph of the page" do
|
|
assert_equal "First paragraph with [link ref][link].\n\n[link]: http://www.jekyllrb.com/", @excerpt.content
|
|
end
|
|
|
|
should "contain any refs at the bottom of the page" do
|
|
assert @excerpt.content.include?("[link]: http://www.jekyllrb.com/")
|
|
end
|
|
end
|
|
|
|
context "after render" do
|
|
setup do
|
|
@rendered_post = @post.dup
|
|
do_render(@rendered_post)
|
|
@extracted_excerpt = @rendered_post.send :extracted_excerpt
|
|
end
|
|
|
|
should "be the first paragraph of the page" do
|
|
assert_equal "<p>First paragraph with <a href=\"http://www.jekyllrb.com/\">link ref</a>.</p>\n\n", @extracted_excerpt.content
|
|
end
|
|
|
|
should "link properly" do
|
|
assert @extracted_excerpt.content.include?("http://www.jekyllrb.com/")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|