spec/jekyll-sitemap_spec.rb in jekyll-sitemap-0.9.0 vs spec/jekyll-sitemap_spec.rb in jekyll-sitemap-0.10.0
- old
+ new
@@ -1,5 +1,7 @@
+# encoding: UTF-8
+
require 'spec_helper'
describe(Jekyll::JekyllSitemap) do
let(:overrides) do
{
@@ -63,10 +65,14 @@
end
it "doesn't remove filename for non-directory custom permalinks" do
expect(contents).to match /<loc>http:\/\/example\.org\/permalink\/unique_name\.html<\/loc>/
end
+
+ it "performs URI encoding of site paths" do
+ expect(contents).to match /<loc>http:\/\/example\.org\/this%20url%20has%20an%20%C3%BCmlaut<\/loc>/
+ end
end
it "generates the correct date for each of the posts" do
expect(contents).to match /<lastmod>2014-03-04T00:00:00(-|\+)\d+:\d+<\/lastmod>/
expect(contents).to match /<lastmod>2014-03-02T00:00:00(-|\+)\d+:\d+<\/lastmod>/
@@ -80,10 +86,15 @@
it "does not include assets or any static files that aren't .html" do
expect(contents).not_to match /<loc>http:\/\/example\.org\/images\/hubot\.png<\/loc>/
expect(contents).not_to match /<loc>http:\/\/example\.org\/feeds\/atom\.xml<\/loc>/
end
+ it "does include assets or any static files with .xhtml and .htm extensions" do
+ expect(contents).to match /\/some-subfolder\/xhtml\.xhtml/
+ expect(contents).to match /\/some-subfolder\/htm\.htm/
+ end
+
it "does not include posts that have set 'sitemap: false'" do
expect(contents).not_to match /\/exclude-this-post\.html<\/loc>/
end
it "does not include pages that have set 'sitemap: false'" do
@@ -92,10 +103,14 @@
it "correctly formats timestamps of static files" do
expect(contents).to match /\/this-is-a-subfile\.html<\/loc>\s+<lastmod>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(-|\+)\d{2}:\d{2}<\/lastmod>/
end
+ it "includes the correct number of items" do
+ expect(contents.scan(/(?=<url>)/).count).to eql 15
+ end
+
context "with a baseurl" do
let(:config) do
Jekyll.configuration(Jekyll::Utils.deep_merge_hashes(overrides, {"baseurl" => "/bass"}))
end
@@ -114,8 +129,24 @@
it "correctly adds the baseurl to the posts" do
expect(contents).to match /<loc>http:\/\/example\.org\/bass\/2014\/03\/04\/march-the-fourth\.html<\/loc>/
expect(contents).to match /<loc>http:\/\/example\.org\/bass\/2014\/03\/02\/march-the-second\.html<\/loc>/
expect(contents).to match /<loc>http:\/\/example\.org\/bass\/2013\/12\/12\/dec-the-second\.html<\/loc>/
+ end
+ end
+
+ context "with site url that needs URI encoding" do
+ let(:config) do
+ Jekyll.configuration(Jekyll::Utils.deep_merge_hashes(overrides, {"url" => "http://has ümlaut.org"}))
+ end
+
+ it "performs URI encoding of site url" do
+ expect(contents).to match /<loc>http:\/\/has%20%C3%BCmlaut\.org\/<\/loc>/
+ expect(contents).to match /<loc>http:\/\/has%20%C3%BCmlaut\.org\/some-subfolder\/this-is-a-subpage\.html<\/loc>/
+ expect(contents).to match /<loc>http:\/\/has%20%C3%BCmlaut\.org\/2014\/03\/04\/march-the-fourth\.html<\/loc>/
+ end
+
+ it "does not double-escape site url" do
+ expect(contents).to_not match /%25/
end
end
end