Add some unit tests for TOML integration.

This commit is contained in:
Parker Moore 2013-11-29 23:33:52 -05:00
parent b8bbc6e08b
commit 3b0c8ad654
2 changed files with 14 additions and 3 deletions

View File

@ -0,0 +1,2 @@
baseurl = "/you-beautiful-blog-you"
title = "My magnificent site, wut"

View File

@ -30,7 +30,7 @@ class TestConfiguration < Test::Unit::TestCase
@config = Configuration[{"source" => source_dir}] @config = Configuration[{"source" => source_dir}]
@no_override = {} @no_override = {}
@one_config_file = {"config" => "config.yml"} @one_config_file = {"config" => "config.yml"}
@multiple_files = {"config" => %w[config/site.yml config/deploy.yml configuration.yml]} @multiple_files = {"config" => %w[config/site.yml config/deploy.toml configuration.yml]}
end end
should "always return an array" do should "always return an array" do
@ -45,7 +45,7 @@ class TestConfiguration < Test::Unit::TestCase
assert_equal %w[config.yml], @config.config_files(@one_config_file) assert_equal %w[config.yml], @config.config_files(@one_config_file)
end end
should "return an array of the config files if given many config files" do should "return an array of the config files if given many config files" do
assert_equal %w[config/site.yml config/deploy.yml configuration.yml], @config.config_files(@multiple_files) assert_equal %w[config/site.yml config/deploy.toml configuration.yml], @config.config_files(@multiple_files)
end end
end end
context "#backwards_compatibilize" do context "#backwards_compatibilize" do
@ -131,6 +131,7 @@ class TestConfiguration < Test::Unit::TestCase
@paths = { @paths = {
:default => File.join(Dir.pwd, '_config.yml'), :default => File.join(Dir.pwd, '_config.yml'),
:other => File.join(Dir.pwd, '_config.live.yml'), :other => File.join(Dir.pwd, '_config.live.yml'),
:toml => source_dir('_config.dev.toml'),
:empty => "" :empty => ""
} }
end end
@ -153,12 +154,20 @@ class TestConfiguration < Test::Unit::TestCase
assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({ "config" => @paths[:empty] }) assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({ "config" => @paths[:empty] })
end end
should "successfully load a TOML file" do
Jekyll.logger.log_level = Jekyll::Stevenson::WARN
assert_equal Jekyll::Configuration::DEFAULTS.merge({ "baseurl" => "/you-beautiful-blog-you", "title" => "My magnificent site, wut" }), Jekyll.configuration({ "config" => [@paths[:toml]] })
Jekyll.logger.log_level = Jekyll::Stevenson::INFO
end
should "load multiple config files" do should "load multiple config files" do
mock(YAML).safe_load_file(@paths[:default]) { Hash.new } mock(YAML).safe_load_file(@paths[:default]) { Hash.new }
mock(YAML).safe_load_file(@paths[:other]) { Hash.new } mock(YAML).safe_load_file(@paths[:other]) { Hash.new }
mock(TOML).load_file(@paths[:toml]) { Hash.new }
mock($stdout).puts("Configuration file: #{@paths[:default]}") mock($stdout).puts("Configuration file: #{@paths[:default]}")
mock($stdout).puts("Configuration file: #{@paths[:other]}") mock($stdout).puts("Configuration file: #{@paths[:other]}")
assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({ "config" => [@paths[:default], @paths[:other]] }) mock($stdout).puts("Configuration file: #{@paths[:toml]}")
assert_equal Jekyll::Configuration::DEFAULTS, Jekyll.configuration({ "config" => [@paths[:default], @paths[:other], @paths[:toml]] })
end end
should "load multiple config files and last config should win" do should "load multiple config files and last config should win" do