From f830120044f4120a4844202634ae09e1a9063775 Mon Sep 17 00:00:00 2001 From: Alfred Xing Date: Mon, 7 Jul 2014 10:28:03 -0700 Subject: [PATCH 1/4] Add test for document permalink --- test/source/_slides/example-slide-3.html | 5 +++++ test/test_document.rb | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 test/source/_slides/example-slide-3.html diff --git a/test/source/_slides/example-slide-3.html b/test/source/_slides/example-slide-3.html new file mode 100644 index 00000000..5053498c --- /dev/null +++ b/test/source/_slides/example-slide-3.html @@ -0,0 +1,5 @@ +--- + title: Override permalink + layout: slide + permalink: /slide/3 +--- diff --git a/test/test_document.rb b/test/test_document.rb index 98fde67e..1af4893d 100644 --- a/test/test_document.rb +++ b/test/test_document.rb @@ -165,6 +165,23 @@ class TestDocument < Test::Unit::TestCase end end + context "a document in a collection with a custom permalink" do + setup do + @site = Site.new(Jekyll.configuration({ + "collections" => ["slides"], + "source" => source_dir, + "destination" => dest_dir + })) + @site.process + @document = @site.collections["slides"].docs[2] + end + + should "know its permalink" do + assert_equal @document.permalink, "/slide/3" + end + end + + context " a document part of a rendered collection" do end From a13a4ca532412d71e1001dde3579f0b638118152 Mon Sep 17 00:00:00 2001 From: Alfred Xing Date: Mon, 7 Jul 2014 10:39:22 -0700 Subject: [PATCH 2/4] Solidify document permalink tests --- test/source/_slides/example-slide-3.html | 2 +- test/test_document.rb | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/test/source/_slides/example-slide-3.html b/test/source/_slides/example-slide-3.html index 5053498c..ecdc79e0 100644 --- a/test/source/_slides/example-slide-3.html +++ b/test/source/_slides/example-slide-3.html @@ -1,5 +1,5 @@ --- title: Override permalink layout: slide - permalink: /slide/3 + permalink: /slide/3/ --- diff --git a/test/test_document.rb b/test/test_document.rb index 1af4893d..bac02550 100644 --- a/test/test_document.rb +++ b/test/test_document.rb @@ -174,10 +174,16 @@ class TestDocument < Test::Unit::TestCase })) @site.process @document = @site.collections["slides"].docs[2] + @dest_file = dest_dir("slide/3/index.html") end should "know its permalink" do - assert_equal @document.permalink, "/slide/3" + assert_equal "/slide/3/", @document.permalink + assert_equal "/slide/3/index.html", @document.url + end + + should "be written to its permalink" do + assert File.exist?(@dest_file), "Can't find the rendered file in the dest_dir." end end From ce1f01c4949f52862bb1243da9ee4aee67c6473b Mon Sep 17 00:00:00 2001 From: Alfred Xing Date: Mon, 7 Jul 2014 10:49:36 -0700 Subject: [PATCH 3/4] Modify tests a bit --- test/test_document.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/test_document.rb b/test/test_document.rb index bac02550..330a1846 100644 --- a/test/test_document.rb +++ b/test/test_document.rb @@ -179,11 +179,10 @@ class TestDocument < Test::Unit::TestCase should "know its permalink" do assert_equal "/slide/3/", @document.permalink - assert_equal "/slide/3/index.html", @document.url end - should "be written to its permalink" do - assert File.exist?(@dest_file), "Can't find the rendered file in the dest_dir." + should "produce the right URL" do + assert_equal "/slide/3/", @document.url end end From 28131624b8825a485af07ee757c0ae6c3652f360 Mon Sep 17 00:00:00 2001 From: Alfred Xing Date: Mon, 7 Jul 2014 10:54:19 -0700 Subject: [PATCH 4/4] Don't use old `@url` variable Fix for #2557 --- lib/jekyll/document.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jekyll/document.rb b/lib/jekyll/document.rb index f1fcdf2a..85b22ba5 100644 --- a/lib/jekyll/document.rb +++ b/lib/jekyll/document.rb @@ -127,7 +127,7 @@ module Jekyll # # Returns the computed URL for the document. def url - @url ||= URL.new({ + @url = URL.new({ template: url_template, placeholders: url_placeholders, permalink: permalink