Merge pull request #3511 from alfredxing/fix-docs-tests

Use `fixture_site` for Document tests
This commit is contained in:
Parker Moore 2015-02-24 21:10:04 -08:00
commit 929d18fefc
1 changed files with 27 additions and 52 deletions

View File

@ -4,11 +4,9 @@ class TestDocument < JekyllUnitTest
context "a document in a collection" do context "a document in a collection" do
setup do setup do
@site = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["methods"], "collections" => ["methods"]
"source" => source_dir, })
"destination" => dest_dir
}))
@site.process @site.process
@document = @site.collections["methods"].docs.first @document = @site.collections["methods"].docs.first
end end
@ -47,11 +45,9 @@ class TestDocument < JekyllUnitTest
context "with YAML ending in three dots" do context "with YAML ending in three dots" do
setup do setup do
@site = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["methods"], "collections" => ["methods"],
"source" => source_dir, })
"destination" => dest_dir
}))
@site.process @site.process
@document = @site.collections["methods"].docs.last @document = @site.collections["methods"].docs.last
end end
@ -76,10 +72,8 @@ class TestDocument < JekyllUnitTest
context "a document as part of a collection with frontmatter defaults" do context "a document as part of a collection with frontmatter defaults" do
setup do setup do
@site = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["slides"], "collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{ "defaults" => [{
"scope"=> {"path"=>"", "type"=>"slides"}, "scope"=> {"path"=>"", "type"=>"slides"},
"values"=> { "values"=> {
@ -88,7 +82,7 @@ class TestDocument < JekyllUnitTest
} }
} }
}] }]
})) })
@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
@ -106,10 +100,8 @@ class TestDocument < JekyllUnitTest
context "a document as part of a collection with overriden default values" do context "a document as part of a collection with overriden default values" do
setup do setup do
@site = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["slides"], "collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{ "defaults" => [{
"scope"=> {"path"=>"", "type"=>"slides"}, "scope"=> {"path"=>"", "type"=>"slides"},
"values"=> { "values"=> {
@ -119,7 +111,7 @@ class TestDocument < JekyllUnitTest
} }
} }
}] }]
})) })
@site.process @site.process
@document = @site.collections["slides"].docs[1] @document = @site.collections["slides"].docs[1]
end end
@ -138,10 +130,8 @@ 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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["slides"], "collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{ "defaults" => [{
"scope"=> {"path"=>"slides", "type"=>"slides"}, "scope"=> {"path"=>"slides", "type"=>"slides"},
"values"=> { "values"=> {
@ -150,7 +140,7 @@ class TestDocument < JekyllUnitTest
} }
} }
}] }]
})) })
@site.process @site.process
@document = @site.collections["slides"].docs.first @document = @site.collections["slides"].docs.first
end end
@ -168,10 +158,8 @@ 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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["slides"], "collections" => ["slides"],
"source" => source_dir,
"destination" => dest_dir,
"defaults" => [{ "defaults" => [{
"scope"=> {"path"=>"somepath", "type"=>"slides"}, "scope"=> {"path"=>"somepath", "type"=>"slides"},
"values"=> { "values"=> {
@ -180,7 +168,7 @@ class TestDocument < JekyllUnitTest
} }
} }
}] }]
})) })
@site.process @site.process
@document = @site.collections["slides"].docs.first @document = @site.collections["slides"].docs.first
end end
@ -195,11 +183,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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["slides"], "collections" => ["slides"]
"source" => source_dir, })
"destination" => dest_dir
}))
@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")
@ -216,16 +202,14 @@ 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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => { "collections" => {
"slides" => { "slides" => {
"output" => true, "output" => true,
"permalink" => "/slides/test/:name" "permalink" => "/slides/test/:name"
} }
}, },
"source" => source_dir, })
"destination" => dest_dir
}))
@site.process @site.process
@document = @site.collections["slides"].docs[0] @document = @site.collections["slides"].docs[0]
end end
@ -237,16 +221,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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => { "collections" => {
"slides" => { "slides" => {
"output" => true, "output" => true,
"permalink" => "/slides/:title" "permalink" => "/slides/:title"
} }
}, },
"source" => source_dir, })
"destination" => dest_dir
}))
@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]
@ -268,15 +250,13 @@ class TestDocument < JekyllUnitTest
context "documents in a collection" do context "documents in a collection" do
setup do setup do
@site = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => { "collections" => {
"slides" => { "slides" => {
"output" => true "output" => true
} }
}, },
"source" => source_dir, })
"destination" => dest_dir
}))
@site.process @site.process
@files = @site.collections["slides"].docs @files = @site.collections["slides"].docs
end end
@ -296,16 +276,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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => { "collections" => {
"slides" => { "slides" => {
"output" => true "output" => true
} }
}, }
"source" => source_dir, })
"destination" => dest_dir,
"full_rebuild" => true
}))
@site.process @site.process
@document = @site.collections["slides"].files.find { |doc| doc.relative_path == "_slides/octojekyll.png" } @document = @site.collections["slides"].files.find { |doc| doc.relative_path == "_slides/octojekyll.png" }
@dest_file = dest_dir("slides/octojekyll.png") @dest_file = dest_dir("slides/octojekyll.png")
@ -330,15 +307,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 = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => { "collections" => {
"methods" => { "methods" => {
"output" => true "output" => true
} }
}, },
"source" => source_dir, })
"destination" => dest_dir
}))
@site.process @site.process
@document = @site.collections["methods"].docs.find { |doc| doc.relative_path == "_methods/escape-+ #%20[].md" } @document = @site.collections["methods"].docs.find { |doc| doc.relative_path == "_methods/escape-+ #%20[].md" }
@dest_file = dest_dir("methods/escape-+ #%20[].html") @dest_file = dest_dir("methods/escape-+ #%20[].html")