mirror of
https://github.com/jekyll/jekyll.git
synced 2026-02-01 10:15:03 -05:00
The YAML spec permits blocks to end with three dots (...) in addition to three dashes (---): http://www.yaml.org/spec/1.2/spec.html#id2760395. Some programs that work with Jekyll (e.g., Pandoc) prefer the dots to dashes. This commit permits the YAML metadata block to end with either dots or dashes. It includes tests. Signed-off-by: Parker Moore <parkrmoore@gmail.com>
97 lines
2.8 KiB
Ruby
97 lines
2.8 KiB
Ruby
require 'helper'
|
|
|
|
class TestGeneratedSite < Test::Unit::TestCase
|
|
context "generated sites" do
|
|
setup do
|
|
clear_dest
|
|
stub(Jekyll).configuration do
|
|
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir})
|
|
end
|
|
|
|
@site = Site.new(Jekyll.configuration)
|
|
@site.process
|
|
@index = File.read(dest_dir('index.html'))
|
|
end
|
|
|
|
should "ensure post count is as expected" do
|
|
assert_equal 40, @site.posts.size
|
|
end
|
|
|
|
should "insert site.posts into the index" do
|
|
assert @index.include?("#{@site.posts.size} Posts")
|
|
end
|
|
|
|
should "render latest post's content" do
|
|
assert @index.include?(@site.posts.last.content)
|
|
end
|
|
|
|
should "hide unpublished posts" do
|
|
published = Dir[dest_dir('publish_test/2008/02/02/*.html')].map {|f| File.basename(f)}
|
|
|
|
assert_equal 1, published.size
|
|
assert_equal "published.html", published.first
|
|
end
|
|
|
|
should "hide unpublished page" do
|
|
assert !File.exists?(dest_dir('/unpublished.html'))
|
|
end
|
|
|
|
should "not copy _posts directory" do
|
|
assert !File.exist?(dest_dir('_posts'))
|
|
end
|
|
|
|
should "process other static files and generate correct permalinks" do
|
|
assert File.exists?(dest_dir('/about/index.html'))
|
|
assert File.exists?(dest_dir('/contacts.html'))
|
|
end
|
|
|
|
should "print a nice list of static files" do
|
|
expected_output = Regexp.new <<-OUTPUT
|
|
- /css/screen.css last edited at \\d+ with extname .css
|
|
- /products.yml last edited at \\d+ with extname .yml
|
|
- /symlink-test/symlinked-dir/screen.css last edited at \\d+ with extname .css
|
|
OUTPUT
|
|
assert_match expected_output, File.read(dest_dir('static_files.html'))
|
|
end
|
|
end
|
|
|
|
context "generating limited posts" do
|
|
setup do
|
|
clear_dest
|
|
stub(Jekyll).configuration do
|
|
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 5})
|
|
end
|
|
|
|
@site = Site.new(Jekyll.configuration)
|
|
@site.process
|
|
@index = File.read(dest_dir('index.html'))
|
|
end
|
|
|
|
should "generate only the specified number of posts" do
|
|
assert_equal 5, @site.posts.size
|
|
end
|
|
|
|
should "ensure limit posts is 0 or more" do
|
|
assert_raise ArgumentError do
|
|
clear_dest
|
|
stub(Jekyll).configuration do
|
|
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => -1})
|
|
end
|
|
|
|
@site = Site.new(Jekyll.configuration)
|
|
end
|
|
end
|
|
|
|
should "acceptable limit post is 0" do
|
|
assert_nothing_raised ArgumentError do
|
|
clear_dest
|
|
stub(Jekyll).configuration do
|
|
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'limit_posts' => 0})
|
|
end
|
|
|
|
@site = Site.new(Jekyll.configuration)
|
|
end
|
|
end
|
|
end
|
|
end
|