mirror of
https://github.com/jekyll/jekyll.git
synced 2026-04-06 03:01:43 -04:00
Extract Site#filter_entries into its own class
This commit is contained in:
74
test/test_entry_filter.rb
Normal file
74
test/test_entry_filter.rb
Normal file
@@ -0,0 +1,74 @@
|
||||
require 'helper'
|
||||
|
||||
class TestEntryFilter < Test::Unit::TestCase
|
||||
context "Filtering entries" do
|
||||
setup do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir})
|
||||
end
|
||||
@site = Site.new(Jekyll.configuration)
|
||||
end
|
||||
|
||||
should "filter entries" do
|
||||
ent1 = %w[foo.markdown bar.markdown baz.markdown #baz.markdown#
|
||||
.baz.markdow foo.markdown~ .htaccess _posts _pages]
|
||||
|
||||
entries = EntryFilter.new(@site).filter(ent1)
|
||||
assert_equal %w[foo.markdown bar.markdown baz.markdown .htaccess], entries
|
||||
end
|
||||
|
||||
should "filter entries with exclude" do
|
||||
excludes = %w[README TODO]
|
||||
files = %w[index.html site.css .htaccess]
|
||||
|
||||
@site.exclude = excludes + ["exclude*"]
|
||||
assert_equal files, @site.filter_entries(excludes + files + ["excludeA"])
|
||||
end
|
||||
|
||||
should "not filter entries within include" do
|
||||
includes = %w[_index.html .htaccess include*]
|
||||
files = %w[index.html _index.html .htaccess includeA]
|
||||
|
||||
@site.include = includes
|
||||
assert_equal files, @site.filter_entries(files)
|
||||
end
|
||||
|
||||
should "filter symlink entries when safe mode enabled" do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true})
|
||||
end
|
||||
site = Site.new(Jekyll.configuration)
|
||||
stub(File).symlink?('symlink.js') {true}
|
||||
files = %w[symlink.js]
|
||||
assert_equal [], site.filter_entries(files)
|
||||
end
|
||||
|
||||
should "not filter symlink entries when safe mode disabled" do
|
||||
stub(File).symlink?('symlink.js') {true}
|
||||
files = %w[symlink.js]
|
||||
assert_equal files, @site.filter_entries(files)
|
||||
end
|
||||
|
||||
should "not include symlinks in safe mode" do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true})
|
||||
end
|
||||
site = Site.new(Jekyll.configuration)
|
||||
|
||||
site.read_directories("symlink-test")
|
||||
assert_equal [], site.pages
|
||||
assert_equal [], site.static_files
|
||||
end
|
||||
|
||||
should "include symlinks in unsafe mode" do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => false})
|
||||
end
|
||||
site = Site.new(Jekyll.configuration)
|
||||
|
||||
site.read_directories("symlink-test")
|
||||
assert_not_equal [], site.pages
|
||||
assert_not_equal [], site.static_files
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -179,69 +179,6 @@ class TestSite < Test::Unit::TestCase
|
||||
assert_equal 4, @site.categories['foo'].size
|
||||
end
|
||||
|
||||
should "filter entries" do
|
||||
ent1 = %w[foo.markdown bar.markdown baz.markdown #baz.markdown#
|
||||
.baz.markdow foo.markdown~]
|
||||
ent2 = %w[.htaccess _posts _pages bla.bla]
|
||||
|
||||
assert_equal %w[foo.markdown bar.markdown baz.markdown], @site.filter_entries(ent1)
|
||||
assert_equal %w[.htaccess bla.bla], @site.filter_entries(ent2)
|
||||
end
|
||||
|
||||
should "filter entries with exclude" do
|
||||
excludes = %w[README TODO]
|
||||
files = %w[index.html site.css .htaccess]
|
||||
|
||||
@site.exclude = excludes + ["exclude*"]
|
||||
assert_equal files, @site.filter_entries(excludes + files + ["excludeA"])
|
||||
end
|
||||
|
||||
should "not filter entries within include" do
|
||||
includes = %w[_index.html .htaccess include*]
|
||||
files = %w[index.html _index.html .htaccess includeA]
|
||||
|
||||
@site.include = includes
|
||||
assert_equal files, @site.filter_entries(files)
|
||||
end
|
||||
|
||||
should "filter symlink entries when safe mode enabled" do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true})
|
||||
end
|
||||
site = Site.new(Jekyll.configuration)
|
||||
stub(File).symlink?('symlink.js') {true}
|
||||
files = %w[symlink.js]
|
||||
assert_equal [], site.filter_entries(files)
|
||||
end
|
||||
|
||||
should "not filter symlink entries when safe mode disabled" do
|
||||
stub(File).symlink?('symlink.js') {true}
|
||||
files = %w[symlink.js]
|
||||
assert_equal files, @site.filter_entries(files)
|
||||
end
|
||||
|
||||
should "not include symlinks in safe mode" do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true})
|
||||
end
|
||||
site = Site.new(Jekyll.configuration)
|
||||
|
||||
site.read_directories("symlink-test")
|
||||
assert_equal [], site.pages
|
||||
assert_equal [], site.static_files
|
||||
end
|
||||
|
||||
should "include symlinks in unsafe mode" do
|
||||
stub(Jekyll).configuration do
|
||||
Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => false})
|
||||
end
|
||||
site = Site.new(Jekyll.configuration)
|
||||
|
||||
site.read_directories("symlink-test")
|
||||
assert_not_equal [], site.pages
|
||||
assert_not_equal [], site.static_files
|
||||
end
|
||||
|
||||
context 'error handling' do
|
||||
should "raise if destination is included in source" do
|
||||
stub(Jekyll).configuration do
|
||||
|
||||
Reference in New Issue
Block a user