parent
0612542582
commit
9adac3a11e
|
@ -11,6 +11,7 @@ AllCops:
|
||||||
TargetRubyVersion: 2.3
|
TargetRubyVersion: 2.3
|
||||||
Include:
|
Include:
|
||||||
- lib/**/*.rb
|
- lib/**/*.rb
|
||||||
|
- test/**/*.rb
|
||||||
Exclude:
|
Exclude:
|
||||||
- bin/**/*
|
- bin/**/*
|
||||||
- exe/**/*
|
- exe/**/*
|
||||||
|
@ -82,6 +83,9 @@ Metrics/PerceivedComplexity:
|
||||||
Max: 8
|
Max: 8
|
||||||
Naming/FileName:
|
Naming/FileName:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
Naming/HeredocDelimiterNaming:
|
||||||
|
Exclude:
|
||||||
|
- test/**/*.rb
|
||||||
Naming/MemoizedInstanceVariableName:
|
Naming/MemoizedInstanceVariableName:
|
||||||
Exclude:
|
Exclude:
|
||||||
- lib/jekyll/page_without_a_file.rb
|
- lib/jekyll/page_without_a_file.rb
|
||||||
|
@ -104,6 +108,9 @@ Style/Alias:
|
||||||
EnforcedStyle: prefer_alias_method
|
EnforcedStyle: prefer_alias_method
|
||||||
Style/AndOr:
|
Style/AndOr:
|
||||||
Severity: error
|
Severity: error
|
||||||
|
Style/ClassAndModuleChildren:
|
||||||
|
Exclude:
|
||||||
|
- test/**/*.rb
|
||||||
Style/FrozenStringLiteralComment:
|
Style/FrozenStringLiteralComment:
|
||||||
EnforcedStyle: always
|
EnforcedStyle: always
|
||||||
Style/Documentation:
|
Style/Documentation:
|
||||||
|
|
|
@ -111,13 +111,13 @@ class JekyllUnitTest < Minitest::Test
|
||||||
end
|
end
|
||||||
|
|
||||||
def fixture_document(relative_path)
|
def fixture_document(relative_path)
|
||||||
site = fixture_site({
|
site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
site.read
|
site.read
|
||||||
matching_doc = site.collections["methods"].docs.find do |doc|
|
matching_doc = site.collections["methods"].docs.find do |doc|
|
||||||
doc.relative_path == relative_path
|
doc.relative_path == relative_path
|
||||||
|
@ -138,13 +138,13 @@ class JekyllUnitTest < Minitest::Test
|
||||||
end
|
end
|
||||||
|
|
||||||
def site_configuration(overrides = {})
|
def site_configuration(overrides = {})
|
||||||
full_overrides = build_configs(overrides, build_configs({
|
full_overrides = build_configs(overrides, build_configs(
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"incremental" => false,
|
"incremental" => false
|
||||||
}))
|
))
|
||||||
Configuration.from(full_overrides.merge({
|
Configuration.from(full_overrides.merge(
|
||||||
"source" => source_dir,
|
"source" => source_dir
|
||||||
}))
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
def clear_dest
|
def clear_dest
|
||||||
|
@ -197,7 +197,6 @@ class FakeLogger
|
||||||
end
|
end
|
||||||
|
|
||||||
module TestWEBrick
|
module TestWEBrick
|
||||||
|
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def mount_server(&block)
|
def mount_server(&block)
|
||||||
|
@ -235,11 +234,11 @@ module TestWEBrick
|
||||||
end
|
end
|
||||||
|
|
||||||
def document_root_options
|
def document_root_options
|
||||||
WEBrick::Config::FileHandler.merge({
|
WEBrick::Config::FileHandler.merge(
|
||||||
:FancyIndexing => true,
|
:FancyIndexing => true,
|
||||||
:NondisclosureName => [
|
:NondisclosureName => [
|
||||||
".ht*", "~*",
|
".ht*", "~*",
|
||||||
],
|
]
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,7 +9,7 @@ class TestCoffeeScript < JekyllUnitTest
|
||||||
@site = fixture_site
|
@site = fixture_site
|
||||||
@site.process
|
@site.process
|
||||||
@test_coffeescript_file = dest_dir("js/coffeescript.js")
|
@test_coffeescript_file = dest_dir("js/coffeescript.js")
|
||||||
@js_output = <<-JS
|
@js_output = <<~JS
|
||||||
(function() {
|
(function() {
|
||||||
$(function() {
|
$(function() {
|
||||||
var cube, cubes, list, num, square;
|
var cube, cubes, list, num, square;
|
||||||
|
|
|
@ -94,13 +94,13 @@ class TestCollections < JekyllUnitTest
|
||||||
|
|
||||||
context "a collection with permalink" do
|
context "a collection with permalink" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"permalink" => "/awesome/:path/",
|
"permalink" => "/awesome/:path/",
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@collection = @site.collections["methods"]
|
@collection = @site.collections["methods"]
|
||||||
end
|
end
|
||||||
|
@ -112,9 +112,9 @@ class TestCollections < JekyllUnitTest
|
||||||
|
|
||||||
context "with a collection" do
|
context "with a collection" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["methods"],
|
"collections" => ["methods"]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@collection = @site.collections["methods"]
|
@collection = @site.collections["methods"]
|
||||||
end
|
end
|
||||||
|
@ -160,29 +160,29 @@ class TestCollections < JekyllUnitTest
|
||||||
|
|
||||||
context "with a collection with metadata" do
|
context "with a collection with metadata" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"foo" => "bar",
|
"foo" => "bar",
|
||||||
"baz" => "whoo",
|
"baz" => "whoo",
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@collection = @site.collections["methods"]
|
@collection = @site.collections["methods"]
|
||||||
end
|
end
|
||||||
|
|
||||||
should "extract the configuration collection information as metadata" do
|
should "extract the configuration collection information as metadata" do
|
||||||
assert_equal @collection.metadata, { "foo" => "bar", "baz" => "whoo" }
|
assert_equal @collection.metadata, "foo" => "bar", "baz" => "whoo"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "in safe mode" do
|
context "in safe mode" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["methods"],
|
"collections" => ["methods"],
|
||||||
"safe" => true,
|
"safe" => true
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@collection = @site.collections["methods"]
|
@collection = @site.collections["methods"]
|
||||||
end
|
end
|
||||||
|
@ -202,10 +202,10 @@ class TestCollections < JekyllUnitTest
|
||||||
|
|
||||||
context "with dots in the filenames" do
|
context "with dots in the filenames" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["with.dots"],
|
"collections" => ["with.dots"],
|
||||||
"safe" => true,
|
"safe" => true
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@collection = @site.collections["with.dots"]
|
@collection = @site.collections["with.dots"]
|
||||||
end
|
end
|
||||||
|
@ -231,14 +231,14 @@ class TestCollections < JekyllUnitTest
|
||||||
|
|
||||||
context "a collection with included dotfiles" do
|
context "a collection with included dotfiles" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"permalink" => "/awesome/:path/",
|
"permalink" => "/awesome/:path/",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"include" => %w(.htaccess .gitignore),
|
"include" => %w(.htaccess .gitignore)
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@collection = @site.collections["methods"]
|
@collection = @site.collections["methods"]
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,9 @@ class TestCommand < JekyllUnitTest
|
||||||
context "when fatal error occurs" do
|
context "when fatal error occurs" do
|
||||||
should "exit with non-zero error code" do
|
should "exit with non-zero error code" do
|
||||||
site = Object.new
|
site = Object.new
|
||||||
def site.process; raise Jekyll::Errors::FatalException; end
|
def site.process
|
||||||
|
raise Jekyll::Errors::FatalException
|
||||||
|
end
|
||||||
error = assert_raises(SystemExit) { Command.process_site(site) }
|
error = assert_raises(SystemExit) { Command.process_site(site) }
|
||||||
refute_equal 0, error.status
|
refute_equal 0, error.status
|
||||||
end
|
end
|
||||||
|
|
|
@ -5,7 +5,6 @@ require "mercenary"
|
||||||
require "helper"
|
require "helper"
|
||||||
require "httpclient"
|
require "httpclient"
|
||||||
require "openssl"
|
require "openssl"
|
||||||
require "thread"
|
|
||||||
require "tmpdir"
|
require "tmpdir"
|
||||||
|
|
||||||
class TestCommandsServe < JekyllUnitTest
|
class TestCommandsServe < JekyllUnitTest
|
||||||
|
@ -191,14 +190,14 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "use user destinations" do
|
should "use user destinations" do
|
||||||
assert_equal "foo", custom_opts({ "destination" => "foo" })[
|
assert_equal "foo", custom_opts("destination" => "foo")[
|
||||||
:DocumentRoot
|
:DocumentRoot
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
should "use user port" do
|
should "use user port" do
|
||||||
# WHAT?!?!1 Over 9000? That's impossible.
|
# WHAT?!?!1 Over 9000? That's impossible.
|
||||||
assert_equal 9001, custom_opts({ "port" => 9001 })[
|
assert_equal 9001, custom_opts("port" => 9001)[
|
||||||
:Port
|
:Port
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
|
@ -237,21 +236,20 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
expect(Jekyll::Commands::Serve).to receive(:start_up_webrick)
|
expect(Jekyll::Commands::Serve).to receive(:start_up_webrick)
|
||||||
end
|
end
|
||||||
should "set the site url by default to `http://localhost:4000`" do
|
should "set the site url by default to `http://localhost:4000`" do
|
||||||
@merc.execute(:serve, { "watch" => false, "url" => "https://jekyllrb.com/" })
|
@merc.execute(:serve, "watch" => false, "url" => "https://jekyllrb.com/")
|
||||||
|
|
||||||
assert_equal 1, Jekyll.sites.count
|
assert_equal 1, Jekyll.sites.count
|
||||||
assert_equal "http://localhost:4000", Jekyll.sites.first.config["url"]
|
assert_equal "http://localhost:4000", Jekyll.sites.first.config["url"]
|
||||||
end
|
end
|
||||||
|
|
||||||
should "take `host`, `port` and `ssl` into consideration if set" do
|
should "take `host`, `port` and `ssl` into consideration if set" do
|
||||||
@merc.execute(:serve, {
|
@merc.execute(:serve,
|
||||||
"watch" => false,
|
"watch" => false,
|
||||||
"host" => "example.com",
|
"host" => "example.com",
|
||||||
"port" => "9999",
|
"port" => "9999",
|
||||||
"url" => "https://jekyllrb.com/",
|
"url" => "https://jekyllrb.com/",
|
||||||
"ssl_cert" => "foo",
|
"ssl_cert" => "foo",
|
||||||
"ssl_key" => "bar",
|
"ssl_key" => "bar")
|
||||||
})
|
|
||||||
|
|
||||||
assert_equal 1, Jekyll.sites.count
|
assert_equal 1, Jekyll.sites.count
|
||||||
assert_equal "https://example.com:9999", Jekyll.sites.first.config["url"]
|
assert_equal "https://example.com:9999", Jekyll.sites.first.config["url"]
|
||||||
|
@ -262,7 +260,7 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
should "not update the site url" do
|
should "not update the site url" do
|
||||||
expect(Jekyll).to receive(:env).and_return("production")
|
expect(Jekyll).to receive(:env).and_return("production")
|
||||||
expect(Jekyll::Commands::Serve).to receive(:start_up_webrick)
|
expect(Jekyll::Commands::Serve).to receive(:start_up_webrick)
|
||||||
@merc.execute(:serve, { "watch" => false, "url" => "https://jekyllrb.com/" })
|
@merc.execute(:serve, "watch" => false, "url" => "https://jekyllrb.com/")
|
||||||
|
|
||||||
assert_equal 1, Jekyll.sites.count
|
assert_equal 1, Jekyll.sites.count
|
||||||
assert_equal "https://jekyllrb.com/", Jekyll.sites.first.config["url"]
|
assert_equal "https://jekyllrb.com/", Jekyll.sites.first.config["url"]
|
||||||
|
@ -271,7 +269,7 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
|
|
||||||
context "verbose" do
|
context "verbose" do
|
||||||
should "debug when verbose" do
|
should "debug when verbose" do
|
||||||
assert_equal custom_opts({ "verbose" => true })[:Logger].level, 5
|
assert_equal custom_opts("verbose" => true)[:Logger].level, 5
|
||||||
end
|
end
|
||||||
|
|
||||||
should "warn when not verbose" do
|
should "warn when not verbose" do
|
||||||
|
@ -282,15 +280,15 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
context "enabling SSL" do
|
context "enabling SSL" do
|
||||||
should "raise if enabling without key or cert" do
|
should "raise if enabling without key or cert" do
|
||||||
assert_raises RuntimeError do
|
assert_raises RuntimeError do
|
||||||
custom_opts({
|
custom_opts(
|
||||||
"ssl_key" => "foo",
|
"ssl_key" => "foo"
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
assert_raises RuntimeError do
|
assert_raises RuntimeError do
|
||||||
custom_opts({
|
custom_opts(
|
||||||
"ssl_key" => "foo",
|
"ssl_key" => "foo"
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -299,12 +297,12 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
expect(OpenSSL::X509::Certificate).to receive(:new).and_return("c1")
|
expect(OpenSSL::X509::Certificate).to receive(:new).and_return("c1")
|
||||||
allow(File).to receive(:read).and_return("foo")
|
allow(File).to receive(:read).and_return("foo")
|
||||||
|
|
||||||
result = custom_opts({
|
result = custom_opts(
|
||||||
"ssl_cert" => "foo",
|
"ssl_cert" => "foo",
|
||||||
"source" => "bar",
|
"source" => "bar",
|
||||||
"enable_ssl" => true,
|
"enable_ssl" => true,
|
||||||
"ssl_key" => "bar",
|
"ssl_key" => "bar"
|
||||||
})
|
)
|
||||||
|
|
||||||
assert result[:SSLEnable]
|
assert result[:SSLEnable]
|
||||||
assert_equal result[:SSLPrivateKey], "c2"
|
assert_equal result[:SSLPrivateKey], "c2"
|
||||||
|
@ -317,7 +315,7 @@ class TestCommandsServe < JekyllUnitTest
|
||||||
allow(Jekyll::Commands::Serve).to receive(:start_up_webrick)
|
allow(Jekyll::Commands::Serve).to receive(:start_up_webrick)
|
||||||
|
|
||||||
expect(Jekyll).to receive(:configuration).once.and_call_original
|
expect(Jekyll).to receive(:configuration).once.and_call_original
|
||||||
@merc.execute(:serve, { "watch" => false })
|
@merc.execute(:serve, "watch" => false)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,7 @@ class TestConfiguration < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "merge input over defaults" do
|
should "merge input over defaults" do
|
||||||
result = Configuration.from({ "source" => "blah" })
|
result = Configuration.from("source" => "blah")
|
||||||
refute_equal result["source"], Configuration::DEFAULTS["source"]
|
refute_equal result["source"], Configuration::DEFAULTS["source"]
|
||||||
assert_equal result["source"], "blah"
|
assert_equal result["source"], "blah"
|
||||||
end
|
end
|
||||||
|
@ -28,11 +28,9 @@ class TestConfiguration < JekyllUnitTest
|
||||||
result = Configuration.from({})
|
result = Configuration.from({})
|
||||||
assert_equal(
|
assert_equal(
|
||||||
result["collections"],
|
result["collections"],
|
||||||
{
|
|
||||||
"posts" => {
|
"posts" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
||||||
},
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
@ -72,7 +70,7 @@ class TestConfiguration < JekyllUnitTest
|
||||||
assert_instance_of Hash, result["collections"]
|
assert_instance_of Hash, result["collections"]
|
||||||
assert_equal(
|
assert_equal(
|
||||||
result["collections"],
|
result["collections"],
|
||||||
{ "posts" => { "output" => true }, "methods" => {} }
|
"posts" => { "output" => true }, "methods" => {}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -81,17 +79,15 @@ class TestConfiguration < JekyllUnitTest
|
||||||
.add_default_collections
|
.add_default_collections
|
||||||
assert_equal(
|
assert_equal(
|
||||||
result["collections"],
|
result["collections"],
|
||||||
{
|
|
||||||
"posts" => {
|
"posts" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/:categories/:year/:month/:day/:title/",
|
"permalink" => "/:categories/:year/:month/:day/:title/",
|
||||||
},
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
result = Configuration[{ "permalink" => nil, "collections" => {} }]
|
result = Configuration[{ "permalink" => nil, "collections" => {} }]
|
||||||
.add_default_collections
|
.add_default_collections
|
||||||
assert_equal result["collections"], { "posts" => { "output" => true } }
|
assert_equal result["collections"], "posts" => { "output" => true }
|
||||||
end
|
end
|
||||||
|
|
||||||
should "forces posts to output" do
|
should "forces posts to output" do
|
||||||
|
@ -186,7 +182,7 @@ class TestConfiguration < JekyllUnitTest
|
||||||
allow(SafeYAML)
|
allow(SafeYAML)
|
||||||
.to receive(:load_file)
|
.to receive(:load_file)
|
||||||
.with("not_empty.yml")
|
.with("not_empty.yml")
|
||||||
.and_return({ "foo" => "bar", "include" => "", "exclude" => "" })
|
.and_return("foo" => "bar", "include" => "", "exclude" => "")
|
||||||
Jekyll.logger.log_level = :warn
|
Jekyll.logger.log_level = :warn
|
||||||
read_config = @config.read_config_files(["empty.yml", "not_empty.yml"])
|
read_config = @config.read_config_files(["empty.yml", "not_empty.yml"])
|
||||||
Jekyll.logger.log_level = :info
|
Jekyll.logger.log_level = :info
|
||||||
|
@ -305,7 +301,7 @@ class TestConfiguration < JekyllUnitTest
|
||||||
"The configuration file '#{@user_config}' could not be found."
|
"The configuration file '#{@user_config}' could not be found."
|
||||||
))
|
))
|
||||||
assert_raises LoadError do
|
assert_raises LoadError do
|
||||||
Jekyll.configuration({ "config" => [@user_config] })
|
Jekyll.configuration("config" => [@user_config])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -334,14 +330,14 @@ class TestConfiguration < JekyllUnitTest
|
||||||
allow(SafeYAML)
|
allow(SafeYAML)
|
||||||
.to receive(:load_file)
|
.to receive(:load_file)
|
||||||
.with(@paths[:other])
|
.with(@paths[:other])
|
||||||
.and_return({ "baseurl" => "http://example.com" })
|
.and_return("baseurl" => "http://example.com")
|
||||||
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:other]}")
|
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:other]}")
|
||||||
assert_equal \
|
assert_equal \
|
||||||
site_configuration({
|
site_configuration(
|
||||||
"baseurl" => "http://example.com",
|
"baseurl" => "http://example.com",
|
||||||
"config" => @paths[:other],
|
"config" => @paths[:other]
|
||||||
}),
|
),
|
||||||
Jekyll.configuration(test_config.merge({ "config" => @paths[:other] }))
|
Jekyll.configuration(test_config.merge("config" => @paths[:other]))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "load different config if specified with symbol key" do
|
should "load different config if specified with symbol key" do
|
||||||
|
@ -349,33 +345,33 @@ class TestConfiguration < JekyllUnitTest
|
||||||
allow(SafeYAML)
|
allow(SafeYAML)
|
||||||
.to receive(:load_file)
|
.to receive(:load_file)
|
||||||
.with(@paths[:other])
|
.with(@paths[:other])
|
||||||
.and_return({ "baseurl" => "http://example.com" })
|
.and_return("baseurl" => "http://example.com")
|
||||||
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:other]}")
|
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:other]}")
|
||||||
assert_equal \
|
assert_equal \
|
||||||
site_configuration({
|
site_configuration(
|
||||||
"baseurl" => "http://example.com",
|
"baseurl" => "http://example.com",
|
||||||
"config" => @paths[:other],
|
"config" => @paths[:other]
|
||||||
}),
|
),
|
||||||
Jekyll.configuration(test_config.merge({ :config => @paths[:other] }))
|
Jekyll.configuration(test_config.merge(:config => @paths[:other]))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "load default config if path passed is empty" do
|
should "load default config if path passed is empty" do
|
||||||
allow(SafeYAML).to receive(:load_file).with(@paths[:default]).and_return({})
|
allow(SafeYAML).to receive(:load_file).with(@paths[:default]).and_return({})
|
||||||
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:default]}")
|
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:default]}")
|
||||||
assert_equal \
|
assert_equal \
|
||||||
site_configuration({ "config" => [@paths[:empty]] }),
|
site_configuration("config" => [@paths[:empty]]),
|
||||||
Jekyll.configuration(test_config.merge({ "config" => [@paths[:empty]] }))
|
Jekyll.configuration(test_config.merge("config" => [@paths[:empty]]))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "successfully load a TOML file" do
|
should "successfully load a TOML file" do
|
||||||
Jekyll.logger.log_level = :warn
|
Jekyll.logger.log_level = :warn
|
||||||
assert_equal \
|
assert_equal \
|
||||||
site_configuration({
|
site_configuration(
|
||||||
"baseurl" => "/you-beautiful-blog-you",
|
"baseurl" => "/you-beautiful-blog-you",
|
||||||
"title" => "My magnificent site, wut",
|
"title" => "My magnificent site, wut",
|
||||||
"config" => [@paths[:toml]],
|
"config" => [@paths[:toml]]
|
||||||
}),
|
),
|
||||||
Jekyll.configuration(test_config.merge({ "config" => [@paths[:toml]] }))
|
Jekyll.configuration(test_config.merge("config" => [@paths[:toml]]))
|
||||||
Jekyll.logger.log_level = :info
|
Jekyll.logger.log_level = :info
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -389,12 +385,12 @@ class TestConfiguration < JekyllUnitTest
|
||||||
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:other]}")
|
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:other]}")
|
||||||
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:toml]}")
|
allow($stdout).to receive(:puts).with("Configuration file: #{@paths[:toml]}")
|
||||||
assert_equal(
|
assert_equal(
|
||||||
site_configuration({
|
site_configuration(
|
||||||
"config" => [@paths[:default], @paths[:other], @paths[:toml]],
|
"config" => [@paths[:default], @paths[:other], @paths[:toml]]
|
||||||
}),
|
),
|
||||||
Jekyll.configuration(
|
Jekyll.configuration(
|
||||||
test_config.merge(
|
test_config.merge(
|
||||||
{ "config" => [@paths[:default], @paths[:other], @paths[:toml]] }
|
"config" => [@paths[:default], @paths[:other], @paths[:toml]]
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -404,11 +400,11 @@ class TestConfiguration < JekyllUnitTest
|
||||||
allow(SafeYAML)
|
allow(SafeYAML)
|
||||||
.to receive(:load_file)
|
.to receive(:load_file)
|
||||||
.with(@paths[:default])
|
.with(@paths[:default])
|
||||||
.and_return({ "baseurl" => "http://example.dev" })
|
.and_return("baseurl" => "http://example.dev")
|
||||||
allow(SafeYAML)
|
allow(SafeYAML)
|
||||||
.to receive(:load_file)
|
.to receive(:load_file)
|
||||||
.with(@paths[:other])
|
.with(@paths[:other])
|
||||||
.and_return({ "baseurl" => "http://example.com" })
|
.and_return("baseurl" => "http://example.com")
|
||||||
allow($stdout)
|
allow($stdout)
|
||||||
.to receive(:puts)
|
.to receive(:puts)
|
||||||
.with("Configuration file: #{@paths[:default]}")
|
.with("Configuration file: #{@paths[:default]}")
|
||||||
|
@ -416,12 +412,12 @@ class TestConfiguration < JekyllUnitTest
|
||||||
.to receive(:puts)
|
.to receive(:puts)
|
||||||
.with("Configuration file: #{@paths[:other]}")
|
.with("Configuration file: #{@paths[:other]}")
|
||||||
assert_equal \
|
assert_equal \
|
||||||
site_configuration({
|
site_configuration(
|
||||||
"baseurl" => "http://example.com",
|
"baseurl" => "http://example.com",
|
||||||
"config" => [@paths[:default], @paths[:other]],
|
"config" => [@paths[:default], @paths[:other]]
|
||||||
}),
|
),
|
||||||
Jekyll.configuration(
|
Jekyll.configuration(
|
||||||
test_config.merge({ "config" => [@paths[:default], @paths[:other]] })
|
test_config.merge("config" => [@paths[:default], @paths[:other]])
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -437,41 +433,41 @@ class TestConfiguration < JekyllUnitTest
|
||||||
conf = Configuration[default_configuration].tap do |c|
|
conf = Configuration[default_configuration].tap do |c|
|
||||||
c["collections"] = ["docs"]
|
c["collections"] = ["docs"]
|
||||||
end
|
end
|
||||||
assert_equal conf.add_default_collections, conf.merge({
|
assert_equal conf.add_default_collections, conf.merge(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"docs" => {},
|
"docs" => {},
|
||||||
"posts" => {
|
"posts" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "force collections.posts.output = true" do
|
should "force collections.posts.output = true" do
|
||||||
conf = Configuration[default_configuration].tap do |c|
|
conf = Configuration[default_configuration].tap do |c|
|
||||||
c["collections"] = { "posts" => { "output" => false } }
|
c["collections"] = { "posts" => { "output" => false } }
|
||||||
end
|
end
|
||||||
assert_equal conf.add_default_collections, conf.merge({
|
assert_equal conf.add_default_collections, conf.merge(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"posts" => {
|
"posts" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "set collections.posts.permalink if it's not set" do
|
should "set collections.posts.permalink if it's not set" do
|
||||||
conf = Configuration[default_configuration]
|
conf = Configuration[default_configuration]
|
||||||
assert_equal conf.add_default_collections, conf.merge({
|
assert_equal conf.add_default_collections, conf.merge(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"posts" => {
|
"posts" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
"permalink" => "/:categories/:year/:month/:day/:title:output_ext",
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "leave collections.posts.permalink alone if it is set" do
|
should "leave collections.posts.permalink alone if it is set" do
|
||||||
|
@ -481,14 +477,14 @@ class TestConfiguration < JekyllUnitTest
|
||||||
"posts" => { "permalink" => posts_permalink },
|
"posts" => { "permalink" => posts_permalink },
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
assert_equal conf.add_default_collections, conf.merge({
|
assert_equal conf.add_default_collections, conf.merge(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"posts" => {
|
"posts" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => posts_permalink,
|
"permalink" => posts_permalink,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,10 @@ class TestDoctorCommand < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "return success on a valid site/page" do
|
should "return success on a valid site/page" do
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => File.join(source_dir, "/_urls_differ_by_case_valid"),
|
"source" => File.join(source_dir, "/_urls_differ_by_case_valid"),
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir
|
||||||
}))
|
))
|
||||||
@site.process
|
@site.process
|
||||||
output = capture_stderr do
|
output = capture_stderr do
|
||||||
ret = Jekyll::Commands::Doctor.urls_only_differ_by_case(@site)
|
ret = Jekyll::Commands::Doctor.urls_only_differ_by_case(@site)
|
||||||
|
@ -23,10 +23,10 @@ class TestDoctorCommand < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "return warning for pages only differing by case" do
|
should "return warning for pages only differing by case" do
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => File.join(source_dir, "/_urls_differ_by_case_invalid"),
|
"source" => File.join(source_dir, "/_urls_differ_by_case_invalid"),
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir
|
||||||
}))
|
))
|
||||||
@site.process
|
@site.process
|
||||||
output = capture_stderr do
|
output = capture_stderr do
|
||||||
ret = Jekyll::Commands::Doctor.urls_only_differ_by_case(@site)
|
ret = Jekyll::Commands::Doctor.urls_only_differ_by_case(@site)
|
||||||
|
|
|
@ -10,10 +10,9 @@ class TestDocument < JekyllUnitTest
|
||||||
def setup_encoded_document(filename)
|
def setup_encoded_document(filename)
|
||||||
site = fixture_site("collections" => ["encodings"])
|
site = fixture_site("collections" => ["encodings"])
|
||||||
site.process
|
site.process
|
||||||
Document.new(site.in_source_dir(File.join("_encodings", filename)), {
|
Document.new(site.in_source_dir(File.join("_encodings", filename)),
|
||||||
:site => site,
|
:site => site,
|
||||||
:collection => site.collections["encodings"],
|
:collection => site.collections["encodings"]).tap(&:read)
|
||||||
}).tap(&:read)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup_document_with_dates(filename)
|
def setup_document_with_dates(filename)
|
||||||
|
@ -21,19 +20,18 @@ class TestDocument < JekyllUnitTest
|
||||||
site.process
|
site.process
|
||||||
docs = nil
|
docs = nil
|
||||||
with_env("TZ", "UTC") do
|
with_env("TZ", "UTC") do
|
||||||
docs = Document.new(site.in_source_dir(File.join("_dates", filename)), {
|
docs = Document.new(site.in_source_dir(File.join("_dates", filename)),
|
||||||
:site => site,
|
:site => site,
|
||||||
:collection => site.collections["dates"],
|
:collection => site.collections["dates"]).tap(&:read)
|
||||||
}).tap(&:read)
|
|
||||||
end
|
end
|
||||||
docs
|
docs
|
||||||
end
|
end
|
||||||
|
|
||||||
context "a document in a collection" do
|
context "a document in a collection" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["methods"],
|
"collections" => ["methods"]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["methods"].docs.detect do |d|
|
@document = @site.collections["methods"].docs.detect do |d|
|
||||||
d.relative_path == "_methods/configuration.md"
|
d.relative_path == "_methods/configuration.md"
|
||||||
|
@ -112,7 +110,7 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "with YAML ending in three dots" do
|
context "with YAML ending in three dots" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({ "collections" => ["methods"] })
|
@site = fixture_site("collections" => ["methods"])
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["methods"].docs.detect do |d|
|
@document = @site.collections["methods"].docs.detect do |d|
|
||||||
d.relative_path == "_methods/yaml_with_dots.md"
|
d.relative_path == "_methods/yaml_with_dots.md"
|
||||||
|
@ -136,7 +134,7 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document as part of a collection with front matter defaults" do
|
context "a document as part of a collection with front matter defaults" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["slides"],
|
"collections" => ["slides"],
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => { "path" => "", "type" => "slides" },
|
"scope" => { "path" => "", "type" => "slides" },
|
||||||
|
@ -145,8 +143,8 @@ class TestDocument < JekyllUnitTest
|
||||||
"key" => "myval",
|
"key" => "myval",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs.select { |d| d.is_a?(Document) }.first
|
@document = @site.collections["slides"].docs.select { |d| d.is_a?(Document) }.first
|
||||||
end
|
end
|
||||||
|
@ -166,7 +164,7 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document as part of a collection with overridden default values" do
|
context "a document as part of a collection with overridden default values" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["slides"],
|
"collections" => ["slides"],
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => { "path" => "", "type" => "slides" },
|
"scope" => { "path" => "", "type" => "slides" },
|
||||||
|
@ -176,8 +174,8 @@ class TestDocument < JekyllUnitTest
|
||||||
"test2" => "default1",
|
"test2" => "default1",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[1]
|
@document = @site.collections["slides"].docs[1]
|
||||||
end
|
end
|
||||||
|
@ -194,7 +192,7 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document as part of a collection with valid path" do
|
context "a document as part of a collection with valid path" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["slides"],
|
"collections" => ["slides"],
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => { "path" => "_slides", "type" => "slides" },
|
"scope" => { "path" => "_slides", "type" => "slides" },
|
||||||
|
@ -203,8 +201,8 @@ class TestDocument < JekyllUnitTest
|
||||||
"key" => "value123",
|
"key" => "value123",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs.first
|
@document = @site.collections["slides"].docs.first
|
||||||
end
|
end
|
||||||
|
@ -218,7 +216,7 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document as part of a collection with invalid path" do
|
context "a document as part of a collection with invalid path" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["slides"],
|
"collections" => ["slides"],
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => { "path" => "somepath", "type" => "slides" },
|
"scope" => { "path" => "somepath", "type" => "slides" },
|
||||||
|
@ -227,8 +225,8 @@ class TestDocument < JekyllUnitTest
|
||||||
"key" => "myval",
|
"key" => "myval",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs.first
|
@document = @site.collections["slides"].docs.first
|
||||||
end
|
end
|
||||||
|
@ -242,9 +240,9 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with a custom permalink" do
|
context "a document in a collection with a custom permalink" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["slides"],
|
"collections" => ["slides"]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[2]
|
@document = @site.collections["slides"].docs[2]
|
||||||
@dest_file = dest_dir("slide/3/index.html")
|
@dest_file = dest_dir("slide/3/index.html")
|
||||||
|
@ -261,15 +259,15 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with custom filename permalinks" do
|
context "a document in a collection with custom filename permalinks" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/slides/test/:name",
|
"permalink" => "/slides/test/:name",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty"
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[0]
|
@document = @site.collections["slides"].docs[0]
|
||||||
@dest_file = dest_dir("slides/test/example-slide-1.html")
|
@dest_file = dest_dir("slides/test/example-slide-1.html")
|
||||||
|
@ -290,13 +288,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with pretty permalink style" do
|
context "a document in a collection with pretty permalink style" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.permalink_style = :pretty
|
@site.permalink_style = :pretty
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[0]
|
@document = @site.collections["slides"].docs[0]
|
||||||
|
@ -314,13 +312,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with cased file name" do
|
context "a document in a collection with cased file name" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.permalink_style = :pretty
|
@site.permalink_style = :pretty
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[7]
|
@document = @site.collections["slides"].docs[7]
|
||||||
|
@ -334,13 +332,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with cased file name" do
|
context "a document in a collection with cased file name" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[6]
|
@document = @site.collections["slides"].docs[6]
|
||||||
@dest_file = dest_dir("slides/example-slide-7.php")
|
@dest_file = dest_dir("slides/example-slide-7.php")
|
||||||
|
@ -365,14 +363,14 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "documents in a collection with custom title permalinks" do
|
context "documents in a collection with custom title permalinks" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
"permalink" => "/slides/:title",
|
"permalink" => "/slides/:title",
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].docs[3]
|
@document = @site.collections["slides"].docs[3]
|
||||||
@document_without_slug = @site.collections["slides"].docs[4]
|
@document_without_slug = @site.collections["slides"].docs[4]
|
||||||
|
@ -410,9 +408,9 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "document with a permalink with dots & a trailing slash" do
|
context "document with a permalink with dots & a trailing slash" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({ "collections" => {
|
@site = fixture_site("collections" => {
|
||||||
"with.dots" => { "output" => true },
|
"with.dots" => { "output" => true },
|
||||||
}, })
|
})
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["with.dots"].docs.last
|
@document = @site.collections["with.dots"].docs.last
|
||||||
@dest_file = dest_dir("with.dots", "permalink.with.slash.tho", "index.html")
|
@dest_file = dest_dir("with.dots", "permalink.with.slash.tho", "index.html")
|
||||||
|
@ -433,13 +431,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "documents in a collection" do
|
context "documents in a collection" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@files = @site.collections["slides"].docs
|
@files = @site.collections["slides"].docs
|
||||||
end
|
end
|
||||||
|
@ -465,13 +463,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a static file in a collection" do
|
context "a static file in a collection" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"slides" => {
|
"slides" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["slides"].files.find do |doc|
|
@document = @site.collections["slides"].files.find do |doc|
|
||||||
doc.relative_path == "_slides/octojekyll.png"
|
doc.relative_path == "_slides/octojekyll.png"
|
||||||
|
@ -498,13 +496,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with non-alphabetic file name" do
|
context "a document in a collection with non-alphabetic file name" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["methods"].docs.find do |doc|
|
@document = @site.collections["methods"].docs.find do |doc|
|
||||||
doc.relative_path == "_methods/escape-+ #%20[].md"
|
doc.relative_path == "_methods/escape-+ #%20[].md"
|
||||||
|
@ -527,13 +525,13 @@ class TestDocument < JekyllUnitTest
|
||||||
|
|
||||||
context "a document in a collection with dash-separated numeric file name" do
|
context "a document in a collection with dash-separated numeric file name" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
}
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["methods"].docs.find do |doc|
|
@document = @site.collections["methods"].docs.find do |doc|
|
||||||
doc.relative_path == "_methods/3940394-21-9393050-fifif1323-test.md"
|
doc.relative_path == "_methods/3940394-21-9393050-fifif1323-test.md"
|
||||||
|
|
|
@ -17,9 +17,9 @@ end
|
||||||
class TestDrop < JekyllUnitTest
|
class TestDrop < JekyllUnitTest
|
||||||
context "Drops" do
|
context "Drops" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["methods"],
|
"collections" => ["methods"]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["methods"].docs.detect do |d|
|
@document = @site.collections["methods"].docs.detect do |d|
|
||||||
d.relative_path == "_methods/configuration.md"
|
d.relative_path == "_methods/configuration.md"
|
||||||
|
|
|
@ -4,10 +4,9 @@ require "helper"
|
||||||
|
|
||||||
class TestExcerpt < JekyllUnitTest
|
class TestExcerpt < JekyllUnitTest
|
||||||
def setup_post(file)
|
def setup_post(file)
|
||||||
Document.new(@site.in_source_dir(File.join("_posts", file)), {
|
Document.new(@site.in_source_dir(File.join("_posts", file)),
|
||||||
:site => @site,
|
:site => @site,
|
||||||
:collection => @site.posts,
|
:collection => @site.posts).tap(&:read)
|
||||||
}).tap(&:read)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def do_render(document)
|
def do_render(document)
|
||||||
|
|
|
@ -9,7 +9,7 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
def initialize(opts = {})
|
def initialize(opts = {})
|
||||||
@site = Jekyll::Site.new(opts.merge("skip_config_files" => true))
|
@site = Jekyll::Site.new(opts.merge("skip_config_files" => true))
|
||||||
@context = Liquid::Context.new(@site.site_payload, {}, { :site => @site })
|
@context = Liquid::Context.new(@site.site_payload, {}, :site => @site)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -37,12 +37,12 @@ class TestFilters < JekyllUnitTest
|
||||||
context "filters" do
|
context "filters" do
|
||||||
setup do
|
setup do
|
||||||
@sample_time = Time.utc(2013, 3, 27, 11, 22, 33)
|
@sample_time = Time.utc(2013, 3, 27, 11, 22, 33)
|
||||||
@filter = make_filter_mock({
|
@filter = make_filter_mock(
|
||||||
"timezone" => "UTC",
|
"timezone" => "UTC",
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/base",
|
"baseurl" => "/base",
|
||||||
"dont_show_posts_before" => @sample_time,
|
"dont_show_posts_before" => @sample_time
|
||||||
})
|
)
|
||||||
@sample_date = Date.parse("2013-03-02")
|
@sample_date = Date.parse("2013-03-02")
|
||||||
@time_as_string = "September 11, 2001 12:46:30 -0000"
|
@time_as_string = "September 11, 2001 12:46:30 -0000"
|
||||||
@time_as_numeric = 1_399_680_607
|
@time_as_numeric = 1_399_680_607
|
||||||
|
@ -88,7 +88,7 @@ class TestFilters < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "escapes special characters when configured to do so" do
|
should "escapes special characters when configured to do so" do
|
||||||
kramdown = make_filter_mock({ :kramdown => { :entity_output => :symbolic } })
|
kramdown = make_filter_mock(:kramdown => { :entity_output => :symbolic })
|
||||||
assert_equal(
|
assert_equal(
|
||||||
"“This filter’s test…”",
|
"“This filter’s test…”",
|
||||||
kramdown.smartify(%q{"This filter's test..."})
|
kramdown.smartify(%q{"This filter's test..."})
|
||||||
|
@ -406,82 +406,82 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
should "ensure the leading slash for the baseurl" do
|
should "ensure the leading slash for the baseurl" do
|
||||||
page_url = "about/my_favorite_page/"
|
page_url = "about/my_favorite_page/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "base",
|
"baseurl" => "base"
|
||||||
})
|
)
|
||||||
assert_equal "http://example.com/base/#{page_url}", filter.absolute_url(page_url)
|
assert_equal "http://example.com/base/#{page_url}", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "be ok with a blank but present 'url'" do
|
should "be ok with a blank but present 'url'" do
|
||||||
page_url = "about/my_favorite_page/"
|
page_url = "about/my_favorite_page/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "",
|
"url" => "",
|
||||||
"baseurl" => "base",
|
"baseurl" => "base"
|
||||||
})
|
)
|
||||||
assert_equal "/base/#{page_url}", filter.absolute_url(page_url)
|
assert_equal "/base/#{page_url}", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "be ok with a nil 'url'" do
|
should "be ok with a nil 'url'" do
|
||||||
page_url = "about/my_favorite_page/"
|
page_url = "about/my_favorite_page/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => nil,
|
"url" => nil,
|
||||||
"baseurl" => "base",
|
"baseurl" => "base"
|
||||||
})
|
)
|
||||||
assert_equal "/base/#{page_url}", filter.absolute_url(page_url)
|
assert_equal "/base/#{page_url}", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "be ok with a nil 'baseurl'" do
|
should "be ok with a nil 'baseurl'" do
|
||||||
page_url = "about/my_favorite_page/"
|
page_url = "about/my_favorite_page/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => nil,
|
"baseurl" => nil
|
||||||
})
|
)
|
||||||
assert_equal "http://example.com/#{page_url}", filter.absolute_url(page_url)
|
assert_equal "http://example.com/#{page_url}", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not prepend a forward slash if input is empty" do
|
should "not prepend a forward slash if input is empty" do
|
||||||
page_url = ""
|
page_url = ""
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/base",
|
"baseurl" => "/base"
|
||||||
})
|
)
|
||||||
assert_equal "http://example.com/base", filter.absolute_url(page_url)
|
assert_equal "http://example.com/base", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not append a forward slash if input is '/'" do
|
should "not append a forward slash if input is '/'" do
|
||||||
page_url = "/"
|
page_url = "/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/base",
|
"baseurl" => "/base"
|
||||||
})
|
)
|
||||||
assert_equal "http://example.com/base/", filter.absolute_url(page_url)
|
assert_equal "http://example.com/base/", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not append a forward slash if input is '/' and nil 'baseurl'" do
|
should "not append a forward slash if input is '/' and nil 'baseurl'" do
|
||||||
page_url = "/"
|
page_url = "/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => nil,
|
"baseurl" => nil
|
||||||
})
|
)
|
||||||
assert_equal "http://example.com/", filter.absolute_url(page_url)
|
assert_equal "http://example.com/", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not append a forward slash if both input and baseurl are simply '/'" do
|
should "not append a forward slash if both input and baseurl are simply '/'" do
|
||||||
page_url = "/"
|
page_url = "/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/",
|
"baseurl" => "/"
|
||||||
})
|
)
|
||||||
assert_equal "http://example.com/", filter.absolute_url(page_url)
|
assert_equal "http://example.com/", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "normalize international URLs" do
|
should "normalize international URLs" do
|
||||||
page_url = ""
|
page_url = ""
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://ümlaut.example.org/",
|
"url" => "http://ümlaut.example.org/",
|
||||||
"baseurl" => nil,
|
"baseurl" => nil
|
||||||
})
|
)
|
||||||
assert_equal "http://xn--mlaut-jva.example.org/", filter.absolute_url(page_url)
|
assert_equal "http://xn--mlaut-jva.example.org/", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -492,19 +492,19 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
should "transform the input URL to a string" do
|
should "transform the input URL to a string" do
|
||||||
page_url = "/my-page.html"
|
page_url = "/my-page.html"
|
||||||
filter = make_filter_mock({ "url" => Value.new(proc { "http://example.org" }) })
|
filter = make_filter_mock("url" => Value.new(proc { "http://example.org" }))
|
||||||
assert_equal "http://example.org#{page_url}", filter.absolute_url(page_url)
|
assert_equal "http://example.org#{page_url}", filter.absolute_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not raise a TypeError when passed a hash" do
|
should "not raise a TypeError when passed a hash" do
|
||||||
assert @filter.absolute_url({ "foo" => "bar" })
|
assert @filter.absolute_url("foo" => "bar")
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with a document" do
|
context "with a document" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["methods"],
|
"collections" => ["methods"]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@document = @site.collections["methods"].docs.detect do |d|
|
@document = @site.collections["methods"].docs.detect do |d|
|
||||||
d.relative_path == "_methods/configuration.md"
|
d.relative_path == "_methods/configuration.md"
|
||||||
|
@ -531,7 +531,7 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
should "ensure the leading slash for the baseurl" do
|
should "ensure the leading slash for the baseurl" do
|
||||||
page_url = "about/my_favorite_page/"
|
page_url = "about/my_favorite_page/"
|
||||||
filter = make_filter_mock({ "baseurl" => "base" })
|
filter = make_filter_mock("baseurl" => "base")
|
||||||
assert_equal "/base/#{page_url}", filter.relative_url(page_url)
|
assert_equal "/base/#{page_url}", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -542,51 +542,51 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
should "be ok with a nil 'baseurl'" do
|
should "be ok with a nil 'baseurl'" do
|
||||||
page_url = "about/my_favorite_page/"
|
page_url = "about/my_favorite_page/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => nil,
|
"baseurl" => nil
|
||||||
})
|
)
|
||||||
assert_equal "/#{page_url}", filter.relative_url(page_url)
|
assert_equal "/#{page_url}", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not prepend a forward slash if input is empty" do
|
should "not prepend a forward slash if input is empty" do
|
||||||
page_url = ""
|
page_url = ""
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/base",
|
"baseurl" => "/base"
|
||||||
})
|
)
|
||||||
assert_equal "/base", filter.relative_url(page_url)
|
assert_equal "/base", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not prepend a forward slash if baseurl ends with a single '/'" do
|
should "not prepend a forward slash if baseurl ends with a single '/'" do
|
||||||
page_url = "/css/main.css"
|
page_url = "/css/main.css"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/base/",
|
"baseurl" => "/base/"
|
||||||
})
|
)
|
||||||
assert_equal "/base/css/main.css", filter.relative_url(page_url)
|
assert_equal "/base/css/main.css", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not return valid URI if baseurl ends with multiple '/'" do
|
should "not return valid URI if baseurl ends with multiple '/'" do
|
||||||
page_url = "/css/main.css"
|
page_url = "/css/main.css"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/base//",
|
"baseurl" => "/base//"
|
||||||
})
|
)
|
||||||
refute_equal "/base/css/main.css", filter.relative_url(page_url)
|
refute_equal "/base/css/main.css", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not prepend a forward slash if both input and baseurl are simply '/'" do
|
should "not prepend a forward slash if both input and baseurl are simply '/'" do
|
||||||
page_url = "/"
|
page_url = "/"
|
||||||
filter = make_filter_mock({
|
filter = make_filter_mock(
|
||||||
"url" => "http://example.com",
|
"url" => "http://example.com",
|
||||||
"baseurl" => "/",
|
"baseurl" => "/"
|
||||||
})
|
)
|
||||||
assert_equal "/", filter.relative_url(page_url)
|
assert_equal "/", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not return the url by reference" do
|
should "not return the url by reference" do
|
||||||
filter = make_filter_mock({ :baseurl => nil })
|
filter = make_filter_mock(:baseurl => nil)
|
||||||
page = Page.new(filter.site, test_dir("fixtures"), "", "front_matter.erb")
|
page = Page.new(filter.site, test_dir("fixtures"), "", "front_matter.erb")
|
||||||
assert_equal "/front_matter.erb", page.url
|
assert_equal "/front_matter.erb", page.url
|
||||||
url = filter.relative_url(page.url)
|
url = filter.relative_url(page.url)
|
||||||
|
@ -596,7 +596,7 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
should "transform the input baseurl to a string" do
|
should "transform the input baseurl to a string" do
|
||||||
page_url = "/my-page.html"
|
page_url = "/my-page.html"
|
||||||
filter = make_filter_mock({ "baseurl" => Value.new(proc { "/baseurl/" }) })
|
filter = make_filter_mock("baseurl" => Value.new(proc { "/baseurl/" }))
|
||||||
assert_equal "/baseurl#{page_url}", filter.relative_url(page_url)
|
assert_equal "/baseurl#{page_url}", filter.relative_url(page_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -640,7 +640,7 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
context "jsonify filter" do
|
context "jsonify filter" do
|
||||||
should "convert hash to json" do
|
should "convert hash to json" do
|
||||||
assert_equal "{\"age\":18}", @filter.jsonify({ :age => 18 })
|
assert_equal "{\"age\":18}", @filter.jsonify(:age => 18)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "convert array to json" do
|
should "convert array to json" do
|
||||||
|
@ -705,7 +705,7 @@ class TestFilters < JekyllUnitTest
|
||||||
{
|
{
|
||||||
"name" => name,
|
"name" => name,
|
||||||
:v => 1,
|
:v => 1,
|
||||||
:thing => M.new({ :kay => "jewelers" }),
|
:thing => M.new(:kay => "jewelers"),
|
||||||
:stuff => true,
|
:stuff => true,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
@ -1140,7 +1140,7 @@ class TestFilters < JekyllUnitTest
|
||||||
|
|
||||||
context "inspect filter" do
|
context "inspect filter" do
|
||||||
should "return a HTML-escaped string representation of an object" do
|
should "return a HTML-escaped string representation of an object" do
|
||||||
assert_equal "{"<a>"=>1}", @filter.inspect({ "<a>" => 1 })
|
assert_equal "{"<a>"=>1}", @filter.inspect("<a>" => 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
should "quote strings" do
|
should "quote strings" do
|
||||||
|
|
|
@ -5,7 +5,7 @@ require "helper"
|
||||||
class TestFrontMatterDefaults < JekyllUnitTest
|
class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
context "A site with full front matter defaults" do
|
context "A site with full front matter defaults" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
"path" => "contacts",
|
"path" => "contacts",
|
||||||
|
@ -14,8 +14,8 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@output = capture_output { @site.process }
|
@output = capture_output { @site.process }
|
||||||
@affected = @site.pages.find { |page| page.relative_path == "contacts/bar.html" }
|
@affected = @site.pages.find { |page| page.relative_path == "contacts/bar.html" }
|
||||||
@not_affected = @site.pages.find { |page| page.relative_path == "about.html" }
|
@not_affected = @site.pages.find { |page| page.relative_path == "about.html" }
|
||||||
|
@ -33,7 +33,7 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with full front matter defaults (glob)" do
|
context "A site with full front matter defaults (glob)" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
"path" => "contacts/*.html",
|
"path" => "contacts/*.html",
|
||||||
|
@ -42,8 +42,8 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@output = capture_output { @site.process }
|
@output = capture_output { @site.process }
|
||||||
@affected = @site.pages.find { |page| page.relative_path == "contacts/bar.html" }
|
@affected = @site.pages.find { |page| page.relative_path == "contacts/bar.html" }
|
||||||
@not_affected = @site.pages.find { |page| page.relative_path == "about.html" }
|
@not_affected = @site.pages.find { |page| page.relative_path == "about.html" }
|
||||||
|
@ -61,7 +61,7 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter type pages and an extension" do
|
context "A site with front matter type pages and an extension" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
"path" => "index.html",
|
"path" => "index.html",
|
||||||
|
@ -69,8 +69,8 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
|
|
||||||
@site.process
|
@site.process
|
||||||
@affected = @site.pages.find { |page| page.relative_path == "index.html" }
|
@affected = @site.pages.find { |page| page.relative_path == "index.html" }
|
||||||
|
@ -85,7 +85,7 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter defaults with no type" do
|
context "A site with front matter defaults with no type" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
"path" => "win",
|
"path" => "win",
|
||||||
|
@ -93,8 +93,8 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
|
|
||||||
@site.process
|
@site.process
|
||||||
@affected = @site.posts.docs.find { |page| page.relative_path =~ %r!win\/! }
|
@affected = @site.posts.docs.find { |page| page.relative_path =~ %r!win\/! }
|
||||||
|
@ -109,7 +109,7 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter defaults with no path and a deprecated type" do
|
context "A site with front matter defaults with no path and a deprecated type" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
"type" => "page",
|
"type" => "page",
|
||||||
|
@ -117,8 +117,8 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
|
|
||||||
@site.process
|
@site.process
|
||||||
@affected = @site.pages
|
@affected = @site.pages
|
||||||
|
@ -134,7 +134,7 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter defaults with no path" do
|
context "A site with front matter defaults with no path" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
"type" => "pages",
|
"type" => "pages",
|
||||||
|
@ -142,8 +142,8 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@affected = @site.pages
|
@affected = @site.pages
|
||||||
@not_affected = @site.posts.docs
|
@not_affected = @site.posts.docs
|
||||||
|
@ -158,15 +158,15 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter defaults with no path or type" do
|
context "A site with front matter defaults with no path or type" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"scope" => {
|
"scope" => {
|
||||||
},
|
},
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@affected = @site.pages
|
@affected = @site.pages
|
||||||
@not_affected = @site.posts
|
@not_affected = @site.posts
|
||||||
|
@ -180,13 +180,13 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter defaults with no scope" do
|
context "A site with front matter defaults with no scope" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"values" => {
|
"values" => {
|
||||||
"key" => "val",
|
"key" => "val",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@affected = @site.pages
|
@affected = @site.pages
|
||||||
@not_affected = @site.posts
|
@not_affected = @site.posts
|
||||||
|
@ -200,15 +200,15 @@ class TestFrontMatterDefaults < JekyllUnitTest
|
||||||
|
|
||||||
context "A site with front matter defaults with quoted date" do
|
context "A site with front matter defaults with quoted date" do
|
||||||
setup do
|
setup do
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"defaults" => [{
|
"defaults" => [{
|
||||||
"values" => {
|
"values" => {
|
||||||
"date" => "2015-01-01 00:00:01",
|
"date" => "2015-01-01 00:00:01",
|
||||||
},
|
},
|
||||||
},],
|
},]
|
||||||
}))
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not raise error" do
|
should "not raise error" do
|
||||||
|
|
|
@ -70,7 +70,7 @@ class TestGeneratedSite < JekyllUnitTest
|
||||||
time_regexp = "\\d+:\\d+"
|
time_regexp = "\\d+:\\d+"
|
||||||
#
|
#
|
||||||
# adding a pipe character at the beginning preserves formatting with newlines
|
# adding a pipe character at the beginning preserves formatting with newlines
|
||||||
expected_output = Regexp.new <<-OUTPUT
|
expected_output = Regexp.new <<~OUTPUT
|
||||||
| - /css/screen.css last edited at #{time_regexp} with extname .css
|
| - /css/screen.css last edited at #{time_regexp} with extname .css
|
||||||
- /pgp.key last edited at #{time_regexp} with extname .key
|
- /pgp.key last edited at #{time_regexp} with extname .key
|
||||||
- /products.yml last edited at #{time_regexp} with extname .yml
|
- /products.yml last edited at #{time_regexp} with extname .yml
|
||||||
|
|
|
@ -142,7 +142,8 @@ class TestKramdown < JekyllUnitTest
|
||||||
|
|
||||||
should "move coderay to syntax_highlighter_opts" do
|
should "move coderay to syntax_highlighter_opts" do
|
||||||
original = Kramdown::Document.method(:new)
|
original = Kramdown::Document.method(:new)
|
||||||
markdown = Converters::Markdown.new(Utils.deep_merge_hashes(@config, {
|
markdown = Converters::Markdown.new(
|
||||||
|
Utils.deep_merge_hashes(@config,
|
||||||
"higlighter" => nil,
|
"higlighter" => nil,
|
||||||
"markdown" => "kramdown",
|
"markdown" => "kramdown",
|
||||||
"kramdown" => {
|
"kramdown" => {
|
||||||
|
@ -150,8 +151,8 @@ class TestKramdown < JekyllUnitTest
|
||||||
"coderay" => {
|
"coderay" => {
|
||||||
"hello" => "world",
|
"hello" => "world",
|
||||||
},
|
},
|
||||||
},
|
})
|
||||||
}))
|
)
|
||||||
|
|
||||||
expect(Kramdown::Document).to receive(:new) do |arg1, hash|
|
expect(Kramdown::Document).to receive(:new) do |arg1, hash|
|
||||||
assert_equal hash["syntax_highlighter_opts"]["hello"], "world"
|
assert_equal hash["syntax_highlighter_opts"]["hello"], "world"
|
||||||
|
|
|
@ -5,8 +5,8 @@ require "helper"
|
||||||
class TestLayoutReader < JekyllUnitTest
|
class TestLayoutReader < JekyllUnitTest
|
||||||
context "reading layouts" do
|
context "reading layouts" do
|
||||||
setup do
|
setup do
|
||||||
config = Jekyll::Configuration::DEFAULTS.merge({ "source" => source_dir,
|
config = Jekyll::Configuration::DEFAULTS.merge("source" => source_dir,
|
||||||
"destination" => dest_dir, })
|
"destination" => dest_dir)
|
||||||
@site = fixture_site(config)
|
@site = fixture_site(config)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -22,11 +22,11 @@ class TestLiquidExtensions < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "extract the var properly" do
|
should "extract the var properly" do
|
||||||
assert_equal @template.render({ "page" => { "name" => "tobi" } }), "hi tobi"
|
assert_equal @template.render("page" => { "name" => "tobi" }), "hi tobi"
|
||||||
end
|
end
|
||||||
|
|
||||||
should "return the variable name if the value isn't there" do
|
should "return the variable name if the value isn't there" do
|
||||||
assert_equal @template.render({ "page" => { "title" => "tobi" } }), "hi page.name"
|
assert_equal @template.render("page" => { "title" => "tobi" }), "hi page.name"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -22,11 +22,11 @@ class TestPage < JekyllUnitTest
|
||||||
context "A Page" do
|
context "A Page" do
|
||||||
setup do
|
setup do
|
||||||
clear_dest
|
clear_dest
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"skip_config_files" => true,
|
"skip_config_files" => true
|
||||||
}))
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
context "processing pages" do
|
context "processing pages" do
|
||||||
|
|
|
@ -21,11 +21,11 @@ class TestPageWithoutAFile < JekyllUnitTest
|
||||||
context "A PageWithoutAFile" do
|
context "A PageWithoutAFile" do
|
||||||
setup do
|
setup do
|
||||||
clear_dest
|
clear_dest
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"skip_config_files" => true,
|
"skip_config_files" => true
|
||||||
}))
|
))
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with default site configuration" do
|
context "with default site configuration" do
|
||||||
|
|
|
@ -68,9 +68,9 @@ class TestPluginManager < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "require plugin files" do
|
should "require plugin files" do
|
||||||
site = double({ :safe => false,
|
site = double(:safe => false,
|
||||||
:config => { "plugins_dir" => "_plugins" },
|
:config => { "plugins_dir" => "_plugins" },
|
||||||
:in_source_dir => "/tmp/", })
|
:in_source_dir => "/tmp/")
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(Jekyll::External).to receive(:require_with_graceful_fail)
|
expect(Jekyll::External).to receive(:require_with_graceful_fail)
|
||||||
|
@ -80,7 +80,7 @@ class TestPluginManager < JekyllUnitTest
|
||||||
|
|
||||||
context "site is marked as safe" do
|
context "site is marked as safe" do
|
||||||
should "allow plugins if they are whitelisted" do
|
should "allow plugins if they are whitelisted" do
|
||||||
site = double({ :safe => true, :config => { "whitelist" => ["jemoji"] } })
|
site = double(:safe => true, :config => { "whitelist" => ["jemoji"] })
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
assert plugin_manager.plugin_allowed?("jemoji")
|
assert plugin_manager.plugin_allowed?("jemoji")
|
||||||
|
@ -88,7 +88,7 @@ class TestPluginManager < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not require plugin files" do
|
should "not require plugin files" do
|
||||||
site = double({ :safe => true })
|
site = double(:safe => true)
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(Jekyll::External).to_not receive(:require_with_graceful_fail)
|
expect(Jekyll::External).to_not receive(:require_with_graceful_fail)
|
||||||
|
@ -98,12 +98,12 @@ class TestPluginManager < JekyllUnitTest
|
||||||
|
|
||||||
context "plugins_dir is set to the default" do
|
context "plugins_dir is set to the default" do
|
||||||
should "call site's in_source_dir" do
|
should "call site's in_source_dir" do
|
||||||
site = double({
|
site = double(
|
||||||
:config => {
|
:config => {
|
||||||
"plugins_dir" => Jekyll::Configuration::DEFAULTS["plugins_dir"],
|
"plugins_dir" => Jekyll::Configuration::DEFAULTS["plugins_dir"],
|
||||||
},
|
},
|
||||||
:in_source_dir => "/tmp/",
|
:in_source_dir => "/tmp/"
|
||||||
})
|
)
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(site).to receive(:in_source_dir).with("_plugins")
|
expect(site).to receive(:in_source_dir).with("_plugins")
|
||||||
|
@ -113,7 +113,7 @@ class TestPluginManager < JekyllUnitTest
|
||||||
|
|
||||||
context "plugins_dir is set to a different dir" do
|
context "plugins_dir is set to a different dir" do
|
||||||
should "expand plugin path" do
|
should "expand plugin path" do
|
||||||
site = double({ :config => { "plugins_dir" => "some_other_plugins_path" } })
|
site = double(:config => { "plugins_dir" => "some_other_plugins_path" })
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(File).to receive(:expand_path).with("some_other_plugins_path")
|
expect(File).to receive(:expand_path).with("some_other_plugins_path")
|
||||||
|
@ -123,7 +123,7 @@ class TestPluginManager < JekyllUnitTest
|
||||||
|
|
||||||
context "`paginate` config is activated" do
|
context "`paginate` config is activated" do
|
||||||
should "print deprecation warning if jekyll-paginate is not present" do
|
should "print deprecation warning if jekyll-paginate is not present" do
|
||||||
site = double({ :config => { "paginate" => true } })
|
site = double(:config => { "paginate" => true })
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(Jekyll::Deprecator).to(
|
expect(Jekyll::Deprecator).to(
|
||||||
|
@ -133,9 +133,9 @@ class TestPluginManager < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "print no deprecation warning if jekyll-paginate is present" do
|
should "print no deprecation warning if jekyll-paginate is present" do
|
||||||
site = double({
|
site = double(
|
||||||
:config => { "paginate" => true, "plugins" => ["jekyll-paginate"] },
|
:config => { "paginate" => true, "plugins" => ["jekyll-paginate"] }
|
||||||
})
|
)
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(Jekyll::Deprecator).to_not receive(:deprecation_message)
|
expect(Jekyll::Deprecator).to_not receive(:deprecation_message)
|
||||||
|
@ -144,10 +144,10 @@ class TestPluginManager < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "conscientious require" do
|
should "conscientious require" do
|
||||||
site = double({
|
site = double(
|
||||||
:config => { "theme" => "test-dependency-theme" },
|
:config => { "theme" => "test-dependency-theme" },
|
||||||
:in_dest_dir => "/tmp/_site/",
|
:in_dest_dir => "/tmp/_site/"
|
||||||
})
|
)
|
||||||
plugin_manager = PluginManager.new(site)
|
plugin_manager = PluginManager.new(site)
|
||||||
|
|
||||||
expect(site).to receive(:theme).and_return(true)
|
expect(site).to receive(:theme).and_return(true)
|
||||||
|
|
|
@ -7,14 +7,14 @@ class TestRegenerator < JekyllUnitTest
|
||||||
setup do
|
setup do
|
||||||
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
||||||
|
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => {
|
"collections" => {
|
||||||
"methods" => {
|
"methods" => {
|
||||||
"output" => true,
|
"output" => true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"incremental" => true,
|
"incremental" => true
|
||||||
})
|
)
|
||||||
|
|
||||||
@site.read
|
@site.read
|
||||||
@page = @site.pages.first
|
@page = @site.pages.first
|
||||||
|
@ -93,9 +93,9 @@ class TestRegenerator < JekyllUnitTest
|
||||||
context "The site regenerator" do
|
context "The site regenerator" do
|
||||||
setup do
|
setup do
|
||||||
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"incremental" => true,
|
"incremental" => true
|
||||||
})
|
)
|
||||||
|
|
||||||
@site.read
|
@site.read
|
||||||
@post = @site.posts.first
|
@post = @site.posts.first
|
||||||
|
@ -128,11 +128,11 @@ class TestRegenerator < JekyllUnitTest
|
||||||
setup do
|
setup do
|
||||||
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
||||||
|
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"incremental" => true,
|
"incremental" => true
|
||||||
}))
|
))
|
||||||
|
|
||||||
@site.process
|
@site.process
|
||||||
@path = @site.in_source_dir(@site.pages.first.path)
|
@path = @site.in_source_dir(@site.pages.first.path)
|
||||||
|
@ -183,7 +183,7 @@ class TestRegenerator < JekyllUnitTest
|
||||||
should "not crash when reading corrupted marshal file" do
|
should "not crash when reading corrupted marshal file" do
|
||||||
metadata_file = source_dir(".jekyll-metadata")
|
metadata_file = source_dir(".jekyll-metadata")
|
||||||
File.open(metadata_file, "w") do |file|
|
File.open(metadata_file, "w") do |file|
|
||||||
file.puts Marshal.dump({ :foo => "bar" })[0, 5]
|
file.puts Marshal.dump(:foo => "bar")[0, 5]
|
||||||
end
|
end
|
||||||
|
|
||||||
@regenerator = Regenerator.new(@site)
|
@regenerator = Regenerator.new(@site)
|
||||||
|
@ -310,11 +310,11 @@ class TestRegenerator < JekyllUnitTest
|
||||||
context "when incremental regeneration is disabled" do
|
context "when incremental regeneration is disabled" do
|
||||||
setup do
|
setup do
|
||||||
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
FileUtils.rm_rf(source_dir(".jekyll-metadata"))
|
||||||
@site = Site.new(Jekyll.configuration({
|
@site = Site.new(Jekyll.configuration(
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"incremental" => false,
|
"incremental" => false
|
||||||
}))
|
))
|
||||||
|
|
||||||
@site.process
|
@site.process
|
||||||
@path = @site.in_source_dir(@site.pages.first.path)
|
@path = @site.in_source_dir(@site.pages.first.path)
|
||||||
|
|
|
@ -29,9 +29,9 @@ class TestRelatedPosts < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
allow_any_instance_of(Jekyll::RelatedPosts).to receive(:display)
|
allow_any_instance_of(Jekyll::RelatedPosts).to receive(:display)
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"lsi" => true,
|
"lsi" => true
|
||||||
})
|
)
|
||||||
|
|
||||||
@site.reset
|
@site.reset
|
||||||
@site.read
|
@site.read
|
||||||
|
|
|
@ -5,10 +5,10 @@ require "helper"
|
||||||
class TestSass < JekyllUnitTest
|
class TestSass < JekyllUnitTest
|
||||||
context "importing partials" do
|
context "importing partials" do
|
||||||
setup do
|
setup do
|
||||||
@site = Jekyll::Site.new(Jekyll.configuration({
|
@site = Jekyll::Site.new(Jekyll.configuration(
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir
|
||||||
}))
|
))
|
||||||
@site.process
|
@site.process
|
||||||
@test_css_file = dest_dir("css/main.css")
|
@test_css_file = dest_dir("css/main.css")
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,7 @@ class TestSite < JekyllUnitTest
|
||||||
@site.posts.docs.concat(PostReader.new(@site).read_posts(""))
|
@site.posts.docs.concat(PostReader.new(@site).read_posts(""))
|
||||||
posts = Dir[source_dir("_posts", "**", "*")]
|
posts = Dir[source_dir("_posts", "**", "*")]
|
||||||
posts.delete_if do |post|
|
posts.delete_if do |post|
|
||||||
File.directory?(post) && !(post =~ Document::DATE_FILENAME_MATCHER)
|
File.directory?(post) && post !~ Document::DATE_FILENAME_MATCHER
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -31,15 +31,15 @@ class TestSite < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "have an array for plugins if passed as a string" do
|
should "have an array for plugins if passed as a string" do
|
||||||
site = Site.new(site_configuration({ "plugins_dir" => "/tmp/plugins" }))
|
site = Site.new(site_configuration("plugins_dir" => "/tmp/plugins"))
|
||||||
array = Utils::Platforms.windows? ? ["C:/tmp/plugins"] : ["/tmp/plugins"]
|
array = Utils::Platforms.windows? ? ["C:/tmp/plugins"] : ["/tmp/plugins"]
|
||||||
assert_equal array, site.plugins
|
assert_equal array, site.plugins
|
||||||
end
|
end
|
||||||
|
|
||||||
should "have an array for plugins if passed as an array" do
|
should "have an array for plugins if passed as an array" do
|
||||||
site = Site.new(site_configuration({
|
site = Site.new(site_configuration(
|
||||||
"plugins_dir" => ["/tmp/plugins", "/tmp/otherplugins"],
|
"plugins_dir" => ["/tmp/plugins", "/tmp/otherplugins"]
|
||||||
}))
|
))
|
||||||
array = if Utils::Platforms.windows?
|
array = if Utils::Platforms.windows?
|
||||||
["C:/tmp/plugins", "C:/tmp/otherplugins"]
|
["C:/tmp/plugins", "C:/tmp/otherplugins"]
|
||||||
else
|
else
|
||||||
|
@ -49,12 +49,12 @@ class TestSite < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "have an empty array for plugins if nothing is passed" do
|
should "have an empty array for plugins if nothing is passed" do
|
||||||
site = Site.new(site_configuration({ "plugins_dir" => [] }))
|
site = Site.new(site_configuration("plugins_dir" => []))
|
||||||
assert_equal [], site.plugins
|
assert_equal [], site.plugins
|
||||||
end
|
end
|
||||||
|
|
||||||
should "have the default for plugins if nil is passed" do
|
should "have the default for plugins if nil is passed" do
|
||||||
site = Site.new(site_configuration({ "plugins_dir" => nil }))
|
site = Site.new(site_configuration("plugins_dir" => nil))
|
||||||
assert_equal [source_dir("_plugins")], site.plugins
|
assert_equal [source_dir("_plugins")], site.plugins
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -64,19 +64,19 @@ class TestSite < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
should "expose baseurl passed in from config" do
|
should "expose baseurl passed in from config" do
|
||||||
site = Site.new(site_configuration({ "baseurl" => "/blog" }))
|
site = Site.new(site_configuration("baseurl" => "/blog"))
|
||||||
assert_equal "/blog", site.baseurl
|
assert_equal "/blog", site.baseurl
|
||||||
end
|
end
|
||||||
|
|
||||||
should "only include theme includes_path if the path exists" do
|
should "only include theme includes_path if the path exists" do
|
||||||
site = fixture_site({ "theme" => "test-theme" })
|
site = fixture_site("theme" => "test-theme")
|
||||||
assert_equal [source_dir("_includes"), theme_dir("_includes")],
|
assert_equal [source_dir("_includes"), theme_dir("_includes")],
|
||||||
site.includes_load_paths
|
site.includes_load_paths
|
||||||
|
|
||||||
allow(File).to receive(:directory?).with(theme_dir("_sass")).and_return(true)
|
allow(File).to receive(:directory?).with(theme_dir("_sass")).and_return(true)
|
||||||
allow(File).to receive(:directory?).with(theme_dir("_layouts")).and_return(true)
|
allow(File).to receive(:directory?).with(theme_dir("_layouts")).and_return(true)
|
||||||
allow(File).to receive(:directory?).with(theme_dir("_includes")).and_return(false)
|
allow(File).to receive(:directory?).with(theme_dir("_includes")).and_return(false)
|
||||||
site = fixture_site({ "theme" => "test-theme" })
|
site = fixture_site("theme" => "test-theme")
|
||||||
assert_equal [source_dir("_includes")], site.includes_load_paths
|
assert_equal [source_dir("_includes")], site.includes_load_paths
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -87,9 +87,7 @@ class TestSite < JekyllUnitTest
|
||||||
end
|
end
|
||||||
|
|
||||||
teardown do
|
teardown do
|
||||||
if defined?(MyGenerator)
|
self.class.send(:remove_const, :MyGenerator) if defined?(MyGenerator)
|
||||||
self.class.send(:remove_const, :MyGenerator)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "have an empty tag hash by default" do
|
should "have an empty tag hash by default" do
|
||||||
|
@ -279,7 +277,7 @@ class TestSite < JekyllUnitTest
|
||||||
|
|
||||||
posts = Dir[source_dir("**", "_posts", "**", "*")]
|
posts = Dir[source_dir("**", "_posts", "**", "*")]
|
||||||
posts.delete_if do |post|
|
posts.delete_if do |post|
|
||||||
File.directory?(post) && !(post =~ Document::DATE_FILENAME_MATCHER)
|
File.directory?(post) && post !~ Document::DATE_FILENAME_MATCHER
|
||||||
end
|
end
|
||||||
categories = %w(
|
categories = %w(
|
||||||
2013 bar baz category foo z_category MixedCase Mixedcase publish_test win
|
2013 bar baz category foo z_category MixedCase Mixedcase publish_test win
|
||||||
|
@ -536,9 +534,9 @@ class TestSite < JekyllUnitTest
|
||||||
|
|
||||||
context "manipulating the Jekyll environment" do
|
context "manipulating the Jekyll environment" do
|
||||||
setup do
|
setup do
|
||||||
@site = Site.new(site_configuration({
|
@site = Site.new(site_configuration(
|
||||||
"incremental" => false,
|
"incremental" => false
|
||||||
}))
|
))
|
||||||
@site.process
|
@site.process
|
||||||
@page = @site.pages.find { |p| p.name == "environment.html" }
|
@page = @site.pages.find { |p| p.name == "environment.html" }
|
||||||
end
|
end
|
||||||
|
@ -550,9 +548,9 @@ class TestSite < JekyllUnitTest
|
||||||
context "in production" do
|
context "in production" do
|
||||||
setup do
|
setup do
|
||||||
ENV["JEKYLL_ENV"] = "production"
|
ENV["JEKYLL_ENV"] = "production"
|
||||||
@site = Site.new(site_configuration({
|
@site = Site.new(site_configuration(
|
||||||
"incremental" => false,
|
"incremental" => false
|
||||||
}))
|
))
|
||||||
@site.process
|
@site.process
|
||||||
@page = @site.pages.find { |p| p.name == "environment.html" }
|
@page = @site.pages.find { |p| p.name == "environment.html" }
|
||||||
end
|
end
|
||||||
|
@ -571,13 +569,13 @@ class TestSite < JekyllUnitTest
|
||||||
should "set no theme if config is not set" do
|
should "set no theme if config is not set" do
|
||||||
expect($stderr).not_to receive(:puts)
|
expect($stderr).not_to receive(:puts)
|
||||||
expect($stdout).not_to receive(:puts)
|
expect($stdout).not_to receive(:puts)
|
||||||
site = fixture_site({ "theme" => nil })
|
site = fixture_site("theme" => nil)
|
||||||
assert_nil site.theme
|
assert_nil site.theme
|
||||||
end
|
end
|
||||||
|
|
||||||
should "set no theme if config is a hash" do
|
should "set no theme if config is a hash" do
|
||||||
output = capture_output do
|
output = capture_output do
|
||||||
site = fixture_site({ "theme" => {} })
|
site = fixture_site("theme" => {})
|
||||||
assert_nil site.theme
|
assert_nil site.theme
|
||||||
end
|
end
|
||||||
expected_msg = "Theme: value of 'theme' in config should be String " \
|
expected_msg = "Theme: value of 'theme' in config should be String " \
|
||||||
|
@ -589,7 +587,7 @@ class TestSite < JekyllUnitTest
|
||||||
[:debug, :info, :warn, :error].each do |level|
|
[:debug, :info, :warn, :error].each do |level|
|
||||||
expect(Jekyll.logger.writer).not_to receive(level)
|
expect(Jekyll.logger.writer).not_to receive(level)
|
||||||
end
|
end
|
||||||
site = fixture_site({ "theme" => "test-theme" })
|
site = fixture_site("theme" => "test-theme")
|
||||||
assert_instance_of Jekyll::Theme, site.theme
|
assert_instance_of Jekyll::Theme, site.theme
|
||||||
assert_equal "test-theme", site.theme.name
|
assert_equal "test-theme", site.theme.name
|
||||||
end
|
end
|
||||||
|
@ -616,9 +614,9 @@ class TestSite < JekyllUnitTest
|
||||||
|
|
||||||
context "incremental build" do
|
context "incremental build" do
|
||||||
setup do
|
setup do
|
||||||
@site = Site.new(site_configuration({
|
@site = Site.new(site_configuration(
|
||||||
"incremental" => true,
|
"incremental" => true
|
||||||
}))
|
))
|
||||||
@site.read
|
@site.read
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@ require "helper"
|
||||||
class TestSiteDrop < JekyllUnitTest
|
class TestSiteDrop < JekyllUnitTest
|
||||||
context "a site drop" do
|
context "a site drop" do
|
||||||
setup do
|
setup do
|
||||||
@site = fixture_site({
|
@site = fixture_site(
|
||||||
"collections" => ["thanksgiving"],
|
"collections" => ["thanksgiving"]
|
||||||
})
|
)
|
||||||
@site.process
|
@site.process
|
||||||
@drop = @site.to_liquid.site
|
@drop = @site.to_liquid.site
|
||||||
end
|
end
|
||||||
|
|
|
@ -70,7 +70,7 @@ class TestStaticFile < JekyllUnitTest
|
||||||
"root",
|
"root",
|
||||||
"_foo/dir/subdir",
|
"_foo/dir/subdir",
|
||||||
"file.html",
|
"file.html",
|
||||||
{ "output" => true }
|
"output" => true
|
||||||
)
|
)
|
||||||
assert_equal :foo, static_file.type
|
assert_equal :foo, static_file.type
|
||||||
assert_equal "/foo/dir/subdir/file.html", static_file.url
|
assert_equal "/foo/dir/subdir/file.html", static_file.url
|
||||||
|
@ -82,7 +82,7 @@ class TestStaticFile < JekyllUnitTest
|
||||||
"root",
|
"root",
|
||||||
"_foo/dir/subdir",
|
"_foo/dir/subdir",
|
||||||
"file.html",
|
"file.html",
|
||||||
{ "output" => true, "permalink" => "/:path/" }
|
"output" => true, "permalink" => "/:path/"
|
||||||
)
|
)
|
||||||
assert_equal :foo, static_file.type
|
assert_equal :foo, static_file.type
|
||||||
assert_equal "/dir/subdir/file.html", static_file.url
|
assert_equal "/dir/subdir/file.html", static_file.url
|
||||||
|
|
|
@ -26,7 +26,7 @@ class TestTags < JekyllUnitTest
|
||||||
# rubocop:enable Metrics/AbcSize
|
# rubocop:enable Metrics/AbcSize
|
||||||
|
|
||||||
def fill_post(code, override = {})
|
def fill_post(code, override = {})
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: This is a test
|
title: This is a test
|
||||||
---
|
---
|
||||||
|
@ -176,7 +176,7 @@ CONTENT
|
||||||
|
|
||||||
context "post content has highlight tag" do
|
context "post content has highlight tag" do
|
||||||
setup do
|
setup do
|
||||||
fill_post("test", { "highlighter" => "pygments" })
|
fill_post("test", "highlighter" => "pygments")
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause a markdown error" do
|
should "not cause a markdown error" do
|
||||||
|
@ -202,7 +202,7 @@ CONTENT
|
||||||
|
|
||||||
context "post content has highlight with file reference" do
|
context "post content has highlight with file reference" do
|
||||||
setup do
|
setup do
|
||||||
fill_post("./jekyll.gemspec", { "highlighter" => "pygments" })
|
fill_post("./jekyll.gemspec", "highlighter" => "pygments")
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not embed the file" do
|
should "not embed the file" do
|
||||||
|
@ -216,7 +216,7 @@ CONTENT
|
||||||
|
|
||||||
context "post content has highlight tag with UTF character" do
|
context "post content has highlight tag with UTF character" do
|
||||||
setup do
|
setup do
|
||||||
fill_post("Æ", { "highlighter" => "pygments" })
|
fill_post("Æ", "highlighter" => "pygments")
|
||||||
end
|
end
|
||||||
|
|
||||||
should "render markdown with pygments line handling" do
|
should "render markdown with pygments line handling" do
|
||||||
|
@ -230,14 +230,14 @@ CONTENT
|
||||||
|
|
||||||
context "post content has highlight tag with preceding spaces & lines" do
|
context "post content has highlight tag with preceding spaces & lines" do
|
||||||
setup do
|
setup do
|
||||||
code = <<-EOS
|
code = <<~EOS
|
||||||
|
|
||||||
|
|
||||||
[,1] [,2]
|
[,1] [,2]
|
||||||
[1,] FALSE TRUE
|
[1,] FALSE TRUE
|
||||||
[2,] FALSE TRUE
|
[2,] FALSE TRUE
|
||||||
EOS
|
EOS
|
||||||
fill_post(code, { "highlighter" => "pygments" })
|
fill_post(code, "highlighter" => "pygments")
|
||||||
end
|
end
|
||||||
|
|
||||||
should "only strip the preceding newlines" do
|
should "only strip the preceding newlines" do
|
||||||
|
@ -252,7 +252,7 @@ EOS
|
||||||
context "post content has highlight tag " \
|
context "post content has highlight tag " \
|
||||||
"with preceding spaces & lines in several places" do
|
"with preceding spaces & lines in several places" do
|
||||||
setup do
|
setup do
|
||||||
code = <<-EOS
|
code = <<~EOS
|
||||||
|
|
||||||
|
|
||||||
[,1] [,2]
|
[,1] [,2]
|
||||||
|
@ -263,7 +263,7 @@ EOS
|
||||||
|
|
||||||
|
|
||||||
EOS
|
EOS
|
||||||
fill_post(code, { "highlighter" => "pygments" })
|
fill_post(code, "highlighter" => "pygments")
|
||||||
end
|
end
|
||||||
|
|
||||||
should "only strip the newlines which precede and succeed the entire block" do
|
should "only strip the newlines which precede and succeed the entire block" do
|
||||||
|
@ -278,7 +278,7 @@ EOS
|
||||||
context "post content has highlight tag with " \
|
context "post content has highlight tag with " \
|
||||||
"preceding spaces & Windows-style newlines" do
|
"preceding spaces & Windows-style newlines" do
|
||||||
setup do
|
setup do
|
||||||
fill_post "\r\n\r\n\r\n [,1] [,2]", { "highlighter" => "pygments" }
|
fill_post "\r\n\r\n\r\n [,1] [,2]", "highlighter" => "pygments"
|
||||||
end
|
end
|
||||||
|
|
||||||
should "only strip the preceding newlines" do
|
should "only strip the preceding newlines" do
|
||||||
|
@ -292,12 +292,12 @@ EOS
|
||||||
|
|
||||||
context "post content has highlight tag with only preceding spaces" do
|
context "post content has highlight tag with only preceding spaces" do
|
||||||
setup do
|
setup do
|
||||||
code = <<-EOS
|
code = <<~EOS
|
||||||
[,1] [,2]
|
[,1] [,2]
|
||||||
[1,] FALSE TRUE
|
[1,] FALSE TRUE
|
||||||
[2,] FALSE TRUE
|
[2,] FALSE TRUE
|
||||||
EOS
|
EOS
|
||||||
fill_post(code, { "highlighter" => "pygments" })
|
fill_post(code, "highlighter" => "pygments")
|
||||||
end
|
end
|
||||||
|
|
||||||
should "only strip the preceding newlines" do
|
should "only strip the preceding newlines" do
|
||||||
|
@ -337,7 +337,7 @@ EOS
|
||||||
|
|
||||||
context "post content has raw tag" do
|
context "post content has raw tag" do
|
||||||
setup do
|
setup do
|
||||||
content = <<-CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: This is a test
|
title: This is a test
|
||||||
---
|
---
|
||||||
|
@ -389,7 +389,7 @@ CONTENT
|
||||||
|
|
||||||
context "post content has highlight tag with preceding spaces & lines" do
|
context "post content has highlight tag with preceding spaces & lines" do
|
||||||
setup do
|
setup do
|
||||||
fill_post <<-EOS
|
fill_post <<~EOS
|
||||||
|
|
||||||
|
|
||||||
[,1] [,2]
|
[,1] [,2]
|
||||||
|
@ -409,7 +409,7 @@ EOS
|
||||||
context "post content has highlight tag with " \
|
context "post content has highlight tag with " \
|
||||||
"preceding spaces & lines in several places" do
|
"preceding spaces & lines in several places" do
|
||||||
setup do
|
setup do
|
||||||
fill_post <<-EOS
|
fill_post <<~EOS
|
||||||
|
|
||||||
|
|
||||||
[,1] [,2]
|
[,1] [,2]
|
||||||
|
@ -433,7 +433,7 @@ EOS
|
||||||
|
|
||||||
context "post content has highlight tag with linenumbers" do
|
context "post content has highlight tag with linenumbers" do
|
||||||
setup do
|
setup do
|
||||||
create_post <<-EOS
|
create_post <<~EOS
|
||||||
---
|
---
|
||||||
title: This is a test
|
title: This is a test
|
||||||
---
|
---
|
||||||
|
@ -448,7 +448,7 @@ EOS
|
||||||
end
|
end
|
||||||
|
|
||||||
should "should stop highlighting at boundary with rouge" do
|
should "should stop highlighting at boundary with rouge" do
|
||||||
expected = <<-EOS
|
expected = <<~EOS
|
||||||
<p>This is not yet highlighted</p>\n
|
<p>This is not yet highlighted</p>\n
|
||||||
<figure class="highlight"><pre><code class="language-php" data-lang="php"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
|
<figure class="highlight"><pre><code class="language-php" data-lang="php"><table class="rouge-table"><tbody><tr><td class="gutter gl"><pre class="lineno">1
|
||||||
</pre></td><td class="code"><pre><span class="nx">test</span></pre></td></tr></tbody></table></code></pre></figure>\n
|
</pre></td><td class="code"><pre><span class="nx">test</span></pre></td></tr></tbody></table></code></pre></figure>\n
|
||||||
|
@ -474,7 +474,7 @@ EOS
|
||||||
|
|
||||||
context "post content has highlight tag with only preceding spaces" do
|
context "post content has highlight tag with only preceding spaces" do
|
||||||
setup do
|
setup do
|
||||||
fill_post <<-EOS
|
fill_post <<~EOS
|
||||||
[,1] [,2]
|
[,1] [,2]
|
||||||
[1,] FALSE TRUE
|
[1,] FALSE TRUE
|
||||||
[2,] FALSE TRUE
|
[2,] FALSE TRUE
|
||||||
|
@ -492,7 +492,7 @@ EOS
|
||||||
|
|
||||||
context "simple post with markdown and pre tags" do
|
context "simple post with markdown and pre tags" do
|
||||||
setup do
|
setup do
|
||||||
@content = <<CONTENT
|
@content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Kramdown post with pre
|
title: Kramdown post with pre
|
||||||
---
|
---
|
||||||
|
@ -521,19 +521,18 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with post linking" do
|
context "simple page with post linking" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Post linking
|
title: Post linking
|
||||||
---
|
---
|
||||||
|
|
||||||
{% post_url 2008-11-21-complex %}
|
{% post_url 2008-11-21-complex %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -547,19 +546,18 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with post linking containing special characters" do
|
context "simple page with post linking containing special characters" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Post linking
|
title: Post linking
|
||||||
---
|
---
|
||||||
|
|
||||||
{% post_url 2016-11-26-special-chars-(+) %}
|
{% post_url 2016-11-26-special-chars-(+) %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -573,7 +571,7 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with nested post linking" do
|
context "simple page with nested post linking" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Post linking
|
title: Post linking
|
||||||
---
|
---
|
||||||
|
@ -583,12 +581,11 @@ title: Post linking
|
||||||
- 3 {% post_url es/2008-11-21-nested %}
|
- 3 {% post_url es/2008-11-21-nested %}
|
||||||
- 4 {% post_url /es/2008-11-21-nested %}
|
- 4 {% post_url /es/2008-11-21-nested %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -608,19 +605,18 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with nested post linking and path not used in `post_url`" do
|
context "simple page with nested post linking and path not used in `post_url`" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Deprecated Post linking
|
title: Deprecated Post linking
|
||||||
---
|
---
|
||||||
|
|
||||||
- 1 {% post_url 2008-11-21-nested %}
|
- 1 {% post_url 2008-11-21-nested %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -642,7 +638,7 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with invalid post name linking" do
|
context "simple page with invalid post name linking" do
|
||||||
should "cause an error" do
|
should "cause an error" do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Invalid post name linking
|
title: Invalid post name linking
|
||||||
---
|
---
|
||||||
|
@ -651,17 +647,16 @@ title: Invalid post name linking
|
||||||
CONTENT
|
CONTENT
|
||||||
|
|
||||||
assert_raises Jekyll::Errors::PostURLError do
|
assert_raises Jekyll::Errors::PostURLError do
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
should "cause an error with a bad date" do
|
should "cause an error with a bad date" do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Invalid post name linking
|
title: Invalid post name linking
|
||||||
---
|
---
|
||||||
|
@ -670,19 +665,18 @@ title: Invalid post name linking
|
||||||
CONTENT
|
CONTENT
|
||||||
|
|
||||||
assert_raises Jekyll::Errors::InvalidDateError do
|
assert_raises Jekyll::Errors::InvalidDateError do
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "simple page with linking to a page" do
|
context "simple page with linking to a page" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: linking
|
title: linking
|
||||||
---
|
---
|
||||||
|
@ -691,11 +685,10 @@ title: linking
|
||||||
{% link info.md %}
|
{% link info.md %}
|
||||||
{% link /css/screen.css %}
|
{% link /css/screen.css %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_all" => true,
|
"read_all" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -717,7 +710,7 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with dynamic linking to a page" do
|
context "simple page with dynamic linking to a page" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: linking
|
title: linking
|
||||||
---
|
---
|
||||||
|
@ -730,11 +723,10 @@ title: linking
|
||||||
{% assign screen_css_path = '/css' %}
|
{% assign screen_css_path = '/css' %}
|
||||||
{% link {{ screen_css_path }}/screen.css %}
|
{% link {{ screen_css_path }}/screen.css %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_all" => true,
|
"read_all" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -756,19 +748,18 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with linking" do
|
context "simple page with linking" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: linking
|
title: linking
|
||||||
---
|
---
|
||||||
|
|
||||||
{% link _methods/yaml_with_dots.md %}
|
{% link _methods/yaml_with_dots.md %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"collections" => { "methods" => { "output" => true } },
|
"collections" => { "methods" => { "output" => true } },
|
||||||
"read_collections" => true,
|
"read_collections" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -782,7 +773,7 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with dynamic linking" do
|
context "simple page with dynamic linking" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: linking
|
title: linking
|
||||||
---
|
---
|
||||||
|
@ -790,12 +781,11 @@ title: linking
|
||||||
{% assign yaml_with_dots_path = '_methods/yaml_with_dots.md' %}
|
{% assign yaml_with_dots_path = '_methods/yaml_with_dots.md' %}
|
||||||
{% link {{yaml_with_dots_path}} %}
|
{% link {{yaml_with_dots_path}} %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"collections" => { "methods" => { "output" => true } },
|
"collections" => { "methods" => { "output" => true } },
|
||||||
"read_collections" => true,
|
"read_collections" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -809,7 +799,7 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with nested linking" do
|
context "simple page with nested linking" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: linking
|
title: linking
|
||||||
---
|
---
|
||||||
|
@ -817,12 +807,11 @@ title: linking
|
||||||
- 1 {% link _methods/sanitized_path.md %}
|
- 1 {% link _methods/sanitized_path.md %}
|
||||||
- 2 {% link _methods/site/generate.md %}
|
- 2 {% link _methods/site/generate.md %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"collections" => { "methods" => { "output" => true } },
|
"collections" => { "methods" => { "output" => true } },
|
||||||
"read_collections" => true,
|
"read_collections" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not cause an error" do
|
should "not cause an error" do
|
||||||
|
@ -840,7 +829,7 @@ CONTENT
|
||||||
|
|
||||||
context "simple page with invalid linking" do
|
context "simple page with invalid linking" do
|
||||||
should "cause an error" do
|
should "cause an error" do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Invalid linking
|
title: Invalid linking
|
||||||
---
|
---
|
||||||
|
@ -849,19 +838,18 @@ title: Invalid linking
|
||||||
CONTENT
|
CONTENT
|
||||||
|
|
||||||
assert_raises ArgumentError do
|
assert_raises ArgumentError do
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"collections" => { "methods" => { "output" => true } },
|
"collections" => { "methods" => { "output" => true } },
|
||||||
"read_collections" => true,
|
"read_collections" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "simple page with invalid dynamic linking" do
|
context "simple page with invalid dynamic linking" do
|
||||||
should "cause an error" do
|
should "cause an error" do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Invalid linking
|
title: Invalid linking
|
||||||
---
|
---
|
||||||
|
@ -871,12 +859,11 @@ title: Invalid linking
|
||||||
CONTENT
|
CONTENT
|
||||||
|
|
||||||
assert_raises ArgumentError do
|
assert_raises ArgumentError do
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"collections" => { "methods" => { "output" => true } },
|
"collections" => { "methods" => { "output" => true } },
|
||||||
"read_collections" => true,
|
"read_collections" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -886,7 +873,7 @@ CONTENT
|
||||||
should "not allow symlink includes" do
|
should "not allow symlink includes" do
|
||||||
File.open("tmp/pages-test", "w") { |file| file.write("SYMLINK TEST") }
|
File.open("tmp/pages-test", "w") { |file| file.write("SYMLINK TEST") }
|
||||||
assert_raises IOError do
|
assert_raises IOError do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include symlink
|
title: Include symlink
|
||||||
---
|
---
|
||||||
|
@ -894,13 +881,12 @@ title: Include symlink
|
||||||
{% include tmp/pages-test %}
|
{% include tmp/pages-test %}
|
||||||
|
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true,
|
||||||
"safe" => true,
|
"safe" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
@result ||= ""
|
@result ||= ""
|
||||||
refute_match(%r!SYMLINK TEST!, @result)
|
refute_match(%r!SYMLINK TEST!, @result)
|
||||||
|
@ -908,7 +894,7 @@ CONTENT
|
||||||
|
|
||||||
should "not expose the existence of symlinked files" do
|
should "not expose the existence of symlinked files" do
|
||||||
ex = assert_raises IOError do
|
ex = assert_raises IOError do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include symlink
|
title: Include symlink
|
||||||
---
|
---
|
||||||
|
@ -916,13 +902,12 @@ title: Include symlink
|
||||||
{% include tmp/pages-test-does-not-exist %}
|
{% include tmp/pages-test-does-not-exist %}
|
||||||
|
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true,
|
||||||
"safe" => true,
|
"safe" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
assert_match(
|
assert_match(
|
||||||
"Could not locate the included file 'tmp/pages-test-does-not-exist' " \
|
"Could not locate the included file 'tmp/pages-test-does-not-exist' " \
|
||||||
|
@ -936,7 +921,7 @@ CONTENT
|
||||||
|
|
||||||
context "with one parameter" do
|
context "with one parameter" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include tag parameters
|
title: Include tag parameters
|
||||||
---
|
---
|
||||||
|
@ -945,12 +930,11 @@ title: Include tag parameters
|
||||||
|
|
||||||
{% include params.html param="value" %}
|
{% include params.html param="value" %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "correctly output include variable" do
|
should "correctly output include variable" do
|
||||||
|
@ -964,7 +948,7 @@ CONTENT
|
||||||
|
|
||||||
context "with simple syntax but multiline markup" do
|
context "with simple syntax but multiline markup" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include tag parameters
|
title: Include tag parameters
|
||||||
---
|
---
|
||||||
|
@ -974,12 +958,11 @@ title: Include tag parameters
|
||||||
{% include params.html
|
{% include params.html
|
||||||
param="value" %}
|
param="value" %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "correctly output include variable" do
|
should "correctly output include variable" do
|
||||||
|
@ -993,7 +976,7 @@ CONTENT
|
||||||
|
|
||||||
context "with variable syntax but multiline markup" do
|
context "with variable syntax but multiline markup" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include tag parameters
|
title: Include tag parameters
|
||||||
---
|
---
|
||||||
|
@ -1003,12 +986,11 @@ title: Include tag parameters
|
||||||
{% include {{ path }}
|
{% include {{ path }}
|
||||||
param="value" %}
|
param="value" %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "correctly output include variable" do
|
should "correctly output include variable" do
|
||||||
|
@ -1022,7 +1004,7 @@ CONTENT
|
||||||
|
|
||||||
context "with invalid parameter syntax" do
|
context "with invalid parameter syntax" do
|
||||||
should "throw a ArgumentError" do
|
should "throw a ArgumentError" do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Invalid parameter syntax
|
title: Invalid parameter syntax
|
||||||
---
|
---
|
||||||
|
@ -1031,15 +1013,14 @@ title: Invalid parameter syntax
|
||||||
CONTENT
|
CONTENT
|
||||||
assert_raises ArgumentError, "Did not raise exception on invalid " \
|
assert_raises ArgumentError, "Did not raise exception on invalid " \
|
||||||
'"include" syntax' do
|
'"include" syntax' do
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Invalid parameter syntax
|
title: Invalid parameter syntax
|
||||||
---
|
---
|
||||||
|
@ -1048,31 +1029,29 @@ title: Invalid parameter syntax
|
||||||
CONTENT
|
CONTENT
|
||||||
assert_raises ArgumentError, "Did not raise exception on invalid " \
|
assert_raises ArgumentError, "Did not raise exception on invalid " \
|
||||||
'"include" syntax' do
|
'"include" syntax' do
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "with several parameters" do
|
context "with several parameters" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: multiple include parameters
|
title: multiple include parameters
|
||||||
---
|
---
|
||||||
|
|
||||||
{% include params.html param1="new_value" param2="another" %}
|
{% include params.html param1="new_value" param2="another" %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "list all parameters" do
|
should "list all parameters" do
|
||||||
|
@ -1087,19 +1066,18 @@ CONTENT
|
||||||
|
|
||||||
context "without parameters" do
|
context "without parameters" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: without parameters
|
title: without parameters
|
||||||
---
|
---
|
||||||
|
|
||||||
{% include params.html %}
|
{% include params.html %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "include file with empty parameters" do
|
should "include file with empty parameters" do
|
||||||
|
@ -1109,20 +1087,19 @@ CONTENT
|
||||||
|
|
||||||
context "with custom includes directory" do
|
context "with custom includes directory" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: custom includes directory
|
title: custom includes directory
|
||||||
---
|
---
|
||||||
|
|
||||||
{% include custom.html %}
|
{% include custom.html %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"includes_dir" => "_includes_custom",
|
"includes_dir" => "_includes_custom",
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "include file from custom directory" do
|
should "include file from custom directory" do
|
||||||
|
@ -1132,19 +1109,18 @@ CONTENT
|
||||||
|
|
||||||
context "without parameters within if statement" do
|
context "without parameters within if statement" do
|
||||||
setup do
|
setup do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: without parameters within if statement
|
title: without parameters within if statement
|
||||||
---
|
---
|
||||||
|
|
||||||
{% if true %}{% include params.html %}{% endif %}
|
{% if true %}{% include params.html %}{% endif %}
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
|
|
||||||
should "include file with empty parameters within if statement" do
|
should "include file with empty parameters within if statement" do
|
||||||
|
@ -1154,7 +1130,7 @@ CONTENT
|
||||||
|
|
||||||
context "include missing file" do
|
context "include missing file" do
|
||||||
setup do
|
setup do
|
||||||
@content = <<CONTENT
|
@content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: missing file
|
title: missing file
|
||||||
---
|
---
|
||||||
|
@ -1165,12 +1141,11 @@ CONTENT
|
||||||
|
|
||||||
should "raise error relative to source directory" do
|
should "raise error relative to source directory" do
|
||||||
exception = assert_raises IOError do
|
exception = assert_raises IOError do
|
||||||
create_post(@content, {
|
create_post(@content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
assert_match(
|
assert_match(
|
||||||
"Could not locate the included file 'missing.html' in any of " \
|
"Could not locate the included file 'missing.html' in any of " \
|
||||||
|
@ -1182,7 +1157,7 @@ CONTENT
|
||||||
|
|
||||||
context "include tag with variable and liquid filters" do
|
context "include tag with variable and liquid filters" do
|
||||||
setup do
|
setup do
|
||||||
site = fixture_site({ "pygments" => true }).tap(&:read).tap(&:render)
|
site = fixture_site("pygments" => true).tap(&:read).tap(&:render)
|
||||||
post = site.posts.docs.find do |p|
|
post = site.posts.docs.find do |p|
|
||||||
p.basename.eql? "2013-12-17-include-variable-filters.markdown"
|
p.basename.eql? "2013-12-17-include-variable-filters.markdown"
|
||||||
end
|
end
|
||||||
|
@ -1214,7 +1189,7 @@ CONTENT
|
||||||
|
|
||||||
context "relative include tag with variable and liquid filters" do
|
context "relative include tag with variable and liquid filters" do
|
||||||
setup do
|
setup do
|
||||||
site = fixture_site({ "pygments" => true }).tap(&:read).tap(&:render)
|
site = fixture_site("pygments" => true).tap(&:read).tap(&:render)
|
||||||
post = site.posts.docs.find do |p|
|
post = site.posts.docs.find do |p|
|
||||||
p.basename.eql? "2014-09-02-relative-includes.markdown"
|
p.basename.eql? "2014-09-02-relative-includes.markdown"
|
||||||
end
|
end
|
||||||
|
@ -1249,7 +1224,7 @@ CONTENT
|
||||||
context "trying to do bad stuff" do
|
context "trying to do bad stuff" do
|
||||||
context "include missing file" do
|
context "include missing file" do
|
||||||
setup do
|
setup do
|
||||||
@content = <<CONTENT
|
@content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: missing file
|
title: missing file
|
||||||
---
|
---
|
||||||
|
@ -1260,12 +1235,11 @@ CONTENT
|
||||||
|
|
||||||
should "raise error relative to source directory" do
|
should "raise error relative to source directory" do
|
||||||
exception = assert_raises IOError do
|
exception = assert_raises IOError do
|
||||||
create_post(@content, {
|
create_post(@content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
assert_match "Could not locate the included file 'missing.html' in any of " \
|
assert_match "Could not locate the included file 'missing.html' in any of " \
|
||||||
"[\"#{source_dir}\"].", exception.message
|
"[\"#{source_dir}\"].", exception.message
|
||||||
|
@ -1274,7 +1248,7 @@ CONTENT
|
||||||
|
|
||||||
context "include existing file above you" do
|
context "include existing file above you" do
|
||||||
setup do
|
setup do
|
||||||
@content = <<CONTENT
|
@content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: higher file
|
title: higher file
|
||||||
---
|
---
|
||||||
|
@ -1285,12 +1259,11 @@ CONTENT
|
||||||
|
|
||||||
should "raise error relative to source directory" do
|
should "raise error relative to source directory" do
|
||||||
exception = assert_raises ArgumentError do
|
exception = assert_raises ArgumentError do
|
||||||
create_post(@content, {
|
create_post(@content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
assert_equal(
|
assert_equal(
|
||||||
"Invalid syntax for include tag. File contains invalid characters or " \
|
"Invalid syntax for include tag. File contains invalid characters or " \
|
||||||
|
@ -1306,7 +1279,7 @@ CONTENT
|
||||||
should "not allow symlink includes" do
|
should "not allow symlink includes" do
|
||||||
File.open("tmp/pages-test", "w") { |file| file.write("SYMLINK TEST") }
|
File.open("tmp/pages-test", "w") { |file| file.write("SYMLINK TEST") }
|
||||||
assert_raises IOError do
|
assert_raises IOError do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include symlink
|
title: Include symlink
|
||||||
---
|
---
|
||||||
|
@ -1314,13 +1287,12 @@ title: Include symlink
|
||||||
{% include_relative tmp/pages-test %}
|
{% include_relative tmp/pages-test %}
|
||||||
|
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true,
|
||||||
"safe" => true,
|
"safe" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
@result ||= ""
|
@result ||= ""
|
||||||
refute_match(%r!SYMLINK TEST!, @result)
|
refute_match(%r!SYMLINK TEST!, @result)
|
||||||
|
@ -1328,7 +1300,7 @@ CONTENT
|
||||||
|
|
||||||
should "not expose the existence of symlinked files" do
|
should "not expose the existence of symlinked files" do
|
||||||
ex = assert_raises IOError do
|
ex = assert_raises IOError do
|
||||||
content = <<CONTENT
|
content = <<~CONTENT
|
||||||
---
|
---
|
||||||
title: Include symlink
|
title: Include symlink
|
||||||
---
|
---
|
||||||
|
@ -1336,13 +1308,12 @@ title: Include symlink
|
||||||
{% include_relative tmp/pages-test-does-not-exist %}
|
{% include_relative tmp/pages-test-does-not-exist %}
|
||||||
|
|
||||||
CONTENT
|
CONTENT
|
||||||
create_post(content, {
|
create_post(content,
|
||||||
"permalink" => "pretty",
|
"permalink" => "pretty",
|
||||||
"source" => source_dir,
|
"source" => source_dir,
|
||||||
"destination" => dest_dir,
|
"destination" => dest_dir,
|
||||||
"read_posts" => true,
|
"read_posts" => true,
|
||||||
"safe" => true,
|
"safe" => true)
|
||||||
})
|
|
||||||
end
|
end
|
||||||
assert_match(
|
assert_match(
|
||||||
"Ensure it exists in one of those directories and is not a symlink "\
|
"Ensure it exists in one of those directories and is not a symlink "\
|
||||||
|
|
Loading…
Reference in New Issue