SANITIZE THE collection name plz.

This commit is contained in:
Parker Moore 2014-04-03 14:13:35 -04:00
parent d84cde1f7a
commit be769dcf00
2 changed files with 31 additions and 15 deletions

View File

@ -4,7 +4,7 @@ module Jekyll
def initialize(site, label) def initialize(site, label)
@site = site @site = site
@label = label @label = sanitize_label(label)
end end
def docs def docs
@ -38,6 +38,10 @@ module Jekyll
"#<Jekyll::Collection @label=#{label} docs=#{docs}>" "#<Jekyll::Collection @label=#{label} docs=#{docs}>"
end end
def sanitize_label(label)
label.gsub(/[^a-z0-9_\-]/i, '')
end
def to_liquid def to_liquid
{ {
"label" => label, "label" => label,

View File

@ -2,12 +2,28 @@ require 'helper'
class TestCollections < Test::Unit::TestCase class TestCollections < Test::Unit::TestCase
context "with no collections specified" do def fixture_site(overrides = {})
setup do Jekyll::Site.new(Jekyll.configuration(
@site = Site.new(Jekyll.configuration({ overrides.merge({
"source" => source_dir, "source" => source_dir,
"destination" => dest_dir "destination" => dest_dir
})) })
))
end
context "a simple collection" do
setup do
@collection = Jekyll::Collection.new(fixture_site, "../../etc/password")
end
should "sanitize the label name" do
assert_equal @collection.label, "etcpassword"
end
end
context "with no collections specified" do
setup do
@site = fixture_site
@site.process @site.process
end end
@ -18,11 +34,9 @@ class TestCollections < Test::Unit::TestCase
context "with a collection" do context "with 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
end end
@ -49,12 +63,10 @@ class TestCollections < Test::Unit::TestCase
context "in safe mode" do context "in safe mode" do
setup do setup do
@site = Site.new(Jekyll.configuration({ @site = fixture_site({
"collections" => ["methods"], "collections" => ["methods"],
"safe" => true, "safe" => true
"source" => source_dir, })
"destination" => dest_dir
}))
@site.process @site.process
@collection = @site.collections["methods"] @collection = @site.collections["methods"]
end end