From ae679405441cf2bf6426486c97f8dc67006a3070 Mon Sep 17 00:00:00 2001 From: Jens Nazarenus Date: Wed, 21 May 2014 20:30:37 +0200 Subject: [PATCH] Adds the missing tests for #2405 --- test/source/_slides/example-slide-1.html | 4 + test/source/_slides/example-slide-2.html | 7 ++ test/test_document.rb | 102 ++++++++++++++++++++--- 3 files changed, 102 insertions(+), 11 deletions(-) create mode 100644 test/source/_slides/example-slide-1.html create mode 100644 test/source/_slides/example-slide-2.html diff --git a/test/source/_slides/example-slide-1.html b/test/source/_slides/example-slide-1.html new file mode 100644 index 00000000..fcd89b3c --- /dev/null +++ b/test/source/_slides/example-slide-1.html @@ -0,0 +1,4 @@ +--- + title: Example slide + layout: slide +--- diff --git a/test/source/_slides/example-slide-2.html b/test/source/_slides/example-slide-2.html new file mode 100644 index 00000000..15158990 --- /dev/null +++ b/test/source/_slides/example-slide-2.html @@ -0,0 +1,7 @@ +--- + title: Override title + layout: slide + nested: + test1: override1 + test2: override2 +--- diff --git a/test/test_document.rb b/test/test_document.rb index ee52a280..bb2355f0 100644 --- a/test/test_document.rb +++ b/test/test_document.rb @@ -45,11 +45,41 @@ class TestDocument < Test::Unit::TestCase context "a document as part of a collection with frontmatter defaults" do setup do @site = Site.new(Jekyll.configuration({ - "collections" => ["methods"], + "collections" => ["slides"], "source" => source_dir, "destination" => dest_dir, "defaults" => [{ - "scope"=> {"path"=>"", "type"=>"methods"}, + "scope"=> {"path"=>"", "type"=>"slides"}, + "values"=> { + "nested"=> { + "key"=>"myval", + } + } + }] + })) + @site.process + @document = @site.collections["slides"].docs.first + end + + should "know the frontmatter defaults" do + assert_equal({ + "title"=>"Example slide", + "layout"=>"slide", + "nested"=> { + "key"=>"myval" + } + }, @document.data) + end + end + + context "a document as part of a collection with overriden default values" do + setup do + @site = Site.new(Jekyll.configuration({ + "collections" => ["slides"], + "source" => source_dir, + "destination" => dest_dir, + "defaults" => [{ + "scope"=> {"path"=>"", "type"=>"slides"}, "values"=> { "nested"=> { "test1"=>"default1", @@ -59,25 +89,75 @@ class TestDocument < Test::Unit::TestCase }] })) @site.process - @document = @site.collections["methods"].docs.first + @document = @site.collections["slides"].docs[1] + end + + should "override default values in the document frontmatter" do + assert_equal({ + "title"=>"Override title", + "layout"=>"slide", + "nested"=> { + "test1"=>"override1", + "test2"=>"override2" + } + }, @document.data) + end + end + + context "a document as part of a collection with valid path" do + setup do + @site = Site.new(Jekyll.configuration({ + "collections" => ["slides"], + "source" => source_dir, + "destination" => dest_dir, + "defaults" => [{ + "scope"=> {"path"=>"slides", "type"=>"slides"}, + "values"=> { + "nested"=> { + "key"=>"value123", + } + } + }] + })) + @site.process + @document = @site.collections["slides"].docs.first end should "know the frontmatter defaults" do assert_equal({ - "title"=>"Jekyll.configuration", + "title"=>"Example slide", + "layout"=>"slide", "nested"=> { - "test1"=>"default1", - "test2"=>"default1"}, - "whatever"=>"foo.bar" + "key"=>"value123" + } }, @document.data) end + end - should "overwrite a default value in the document frontmatter" do - + context "a document as part of a collection with invalid path" do + setup do + @site = Site.new(Jekyll.configuration({ + "collections" => ["slides"], + "source" => source_dir, + "destination" => dest_dir, + "defaults" => [{ + "scope"=> {"path"=>"somepath", "type"=>"slides"}, + "values"=> { + "nested"=> { + "key"=>"myval", + } + } + }] + })) + @site.process + @document = @site.collections["slides"].docs.first end - should "overwrite a nested default value in the document frontmatter" do - + should "not know the specified frontmatter defaults" do + assert_equal({ + "title"=>"Example slide", + "layout"=>"slide" + }, @document.data) end end