Rubocop: test/test_entry_filter.rb

This commit is contained in:
Pat Hawks 2016-05-25 21:59:43 -05:00
parent 5291bd0498
commit c00c761e1d
1 changed files with 33 additions and 27 deletions

View File

@ -1,4 +1,4 @@
require 'helper' require "helper"
class TestEntryFilter < JekyllUnitTest class TestEntryFilter < JekyllUnitTest
context "Filtering entries" do context "Filtering entries" do
@ -7,16 +7,16 @@ class TestEntryFilter < JekyllUnitTest
end end
should "filter entries" do should "filter entries" do
ent1 = %w[foo.markdown bar.markdown baz.markdown #baz.markdown# ent1 = %w(foo.markdown bar.markdown baz.markdown #baz.markdown#
.baz.markdow foo.markdown~ .htaccess _posts _pages ~$benbalter.docx] .baz.markdow foo.markdown~ .htaccess _posts _pages ~$benbalter.docx)
entries = EntryFilter.new(@site).filter(ent1) entries = EntryFilter.new(@site).filter(ent1)
assert_equal %w[foo.markdown bar.markdown baz.markdown .htaccess], entries assert_equal %w(foo.markdown bar.markdown baz.markdown .htaccess), entries
end end
should "allow regexp filtering" do should "allow regexp filtering" do
files = %w(README.md) files = %w(README.md)
@site.exclude = excludes = [ @site.exclude = [
/README/ /README/
] ]
@ -26,63 +26,69 @@ class TestEntryFilter < JekyllUnitTest
end end
should "filter entries with exclude" do should "filter entries with exclude" do
excludes = %w[README TODO vendor/bundle] excludes = %w(README TODO vendor/bundle)
files = %w[index.html site.css .htaccess vendor] files = %w(index.html site.css .htaccess vendor)
@site.exclude = excludes + ["exclude*"] @site.exclude = excludes + ["exclude*"]
assert_equal files, @site.reader.filter_entries(excludes + files + ["excludeA"]) assert_equal files, @site.reader.filter_entries(excludes + files + ["excludeA"])
end end
should "filter entries with exclude relative to site source" do should "filter entries with exclude relative to site source" do
excludes = %w[README TODO css] excludes = %w(README TODO css)
files = %w[index.html vendor/css .htaccess] files = %w(index.html vendor/css .htaccess)
@site.exclude = excludes @site.exclude = excludes
assert_equal files, @site.reader.filter_entries(excludes + files + ["css"]) assert_equal files, @site.reader.filter_entries(excludes + files + ["css"])
end end
should "filter excluded directory and contained files" do should "filter excluded directory and contained files" do
excludes = %w[README TODO css] excludes = %w(README TODO css)
files = %w[index.html .htaccess] files = %w(index.html .htaccess)
@site.exclude = excludes @site.exclude = excludes
assert_equal files, @site.reader.filter_entries(excludes + files + ["css", "css/main.css", "css/vendor.css"]) assert_equal(
files,
@site.reader.filter_entries(
excludes + files + ["css", "css/main.css", "css/vendor.css"]
)
)
end end
should "not filter entries within include" do should "not filter entries within include" do
includes = %w[_index.html .htaccess include*] includes = %w(_index.html .htaccess include*)
files = %w[index.html _index.html .htaccess includeA] files = %w(index.html _index.html .htaccess includeA)
@site.include = includes @site.include = includes
assert_equal files, @site.reader.filter_entries(files) assert_equal files, @site.reader.filter_entries(files)
end end
should "keep safe symlink entries when safe mode enabled" do should "keep safe symlink entries when safe mode enabled" do
site = Site.new(site_configuration('safe' => true)) allow(File).to receive(:symlink?).with("symlink.js").and_return(true)
allow(File).to receive(:symlink?).with('symlink.js').and_return(true) files = %w(symlink.js)
files = %w[symlink.js]
assert_equal files, @site.reader.filter_entries(files) assert_equal files, @site.reader.filter_entries(files)
end end
should "not filter symlink entries when safe mode disabled" do should "not filter symlink entries when safe mode disabled" do
allow(File).to receive(:symlink?).with('symlink.js').and_return(true) allow(File).to receive(:symlink?).with("symlink.js").and_return(true)
files = %w[symlink.js] files = %w(symlink.js)
assert_equal files, @site.reader.filter_entries(files) assert_equal files, @site.reader.filter_entries(files)
end end
should "filter symlink pointing outside site source" do should "filter symlink pointing outside site source" do
ent1 = %w[_includes/tmp] ent1 = %w(_includes/tmp)
entries = EntryFilter.new(@site).filter(ent1) entries = EntryFilter.new(@site).filter(ent1)
assert_equal %w[], entries assert_equal %w(), entries
end end
# rubocop:disable Performance/FixedSize
should "include only safe symlinks in safe mode" do should "include only safe symlinks in safe mode" do
site = Site.new(site_configuration('safe' => true)) site = Site.new(site_configuration("safe" => true))
site.reader.read_directories("symlink-test") site.reader.read_directories("symlink-test")
assert_equal %w[main.scss symlinked-file].length, site.pages.length
assert_equal %w(main.scss symlinked-file).length, site.pages.length
refute_equal [], site.static_files refute_equal [], site.static_files
end end
# rubocop:enable Performance/FixedSize
should "include symlinks in unsafe mode" do should "include symlinks in unsafe mode" do
site = Site.new(site_configuration) site = Site.new(site_configuration)
@ -118,9 +124,9 @@ class TestEntryFilter < JekyllUnitTest
end end
should "match even if there is no leading slash" do should "match even if there is no leading slash" do
data = ['vendor/bundle'] data = ["vendor/bundle"]
assert @filter.glob_include?(data, '/vendor/bundle') assert @filter.glob_include?(data, "/vendor/bundle")
assert @filter.glob_include?(data, 'vendor/bundle') assert @filter.glob_include?(data, "vendor/bundle")
end end
end end
end end