Rubocop: test/test_entry_filter.rb
This commit is contained in:
parent
5291bd0498
commit
c00c761e1d
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue