DRY up the StaticFile tests a bit. #3633.

This commit is contained in:
Parker Moore 2015-04-10 16:24:45 -04:00
parent 28a1d2445e
commit f86727c45a
2 changed files with 73 additions and 81 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@ coverage
tmp/* tmp/*
.jekyll-metadata .jekyll-metadata
/vendor /vendor
/test/source/file_name.txt

View File

@ -1,35 +1,47 @@
require 'helper' require 'helper'
class TestStaticFile < JekyllUnitTest class TestStaticFile < JekyllUnitTest
def make_dummy_file(file_name) def make_dummy_file(filename)
temp_file = File.new(file_name, "w") File.write(source_dir(filename), "some content")
temp_file.puts("some content")
temp_file.close
end end
def modify_dummy_file(file_name) def modify_dummy_file(filename)
temp_file = File.open(file_name, "w") offset = "some content".size
temp_file.puts("more content") File.write(source_dir(filename), "more content", offset)
temp_file.close
end end
def remove_dummy_file(file_name) def remove_dummy_file(filename)
File.delete(file_name) File.delete(source_dir(filename))
end end
def setup_static_file(base, dir, name) def setup_static_file(base, dir, name)
@static_file = StaticFile.new(@site, base, dir, name) StaticFile.new(@site, base, dir, name)
end end
context "A StaticFile" do context "A StaticFile" do
setup do setup do
clear_dest clear_dest
@site = Site.new(site_configuration) @old_pwd = Dir.pwd
Dir.chdir source_dir
@site = fixture_site
@filename = "static_file.txt"
make_dummy_file(@filename)
@static_file = setup_static_file(nil, nil, @filename)
end
teardown do
remove_dummy_file(@filename) if File.exist?(source_dir(@filename))
Dir.chdir @old_pwd
end end
should "have a source file path" do should "have a source file path" do
static_file = setup_static_file("root", "dir", "file_name.html") static_file = setup_static_file("root", "dir", @filename)
assert_equal "root/dir/file_name.html", static_file.path assert_equal "root/dir/#{@filename}", static_file.path
end
should "ignore a nil base or dir" do
assert_equal "dir/#{@filename}", setup_static_file(nil, "dir", @filename).path
assert_equal "base/#{@filename}", setup_static_file("base", nil, @filename).path
end end
should "have a destination relative directory without a collection" do should "have a destination relative directory without a collection" do
@ -38,57 +50,36 @@ class TestStaticFile < JekyllUnitTest
end end
should "know its last modification time" do should "know its last modification time" do
file_name = "file.html" assert_equal Time.new.to_i, @static_file.mtime
static_file = setup_static_file(nil, nil, "file.html")
make_dummy_file(file_name)
assert_equal Time.new.to_i, static_file.mtime
remove_dummy_file(file_name)
end end
should "known if the source path is modified, when it is" do should "known if the source path is modified, when it is" do
file_name = "file_name.txt"
make_dummy_file(file_name)
static_file = setup_static_file(nil, nil, file_name)
sleep 1 sleep 1
modify_dummy_file(file_name) modify_dummy_file(@filename)
assert static_file.modified? assert @static_file.modified?
remove_dummy_file(file_name)
end end
should "known if the source path is modified, when its not" do should "known if the source path is modified, when its not" do
file_name = "file_name.txt" @static_file.write(dest_dir)
make_dummy_file(file_name)
static_file = setup_static_file(nil, nil, file_name)
static_file.write(nil)
sleep 1 # wait, else the times are still the same sleep 1 # wait, else the times are still the same
assert !static_file.modified? assert !@static_file.modified?
remove_dummy_file(file_name)
end end
should "known whether to write the file to the filesystem" do should "known whether to write the file to the filesystem" do
static_file = setup_static_file("root", "dir", "file_name.txt") assert @static_file.write?, "always true, with current implementation"
assert static_file.write?, "always true, with current implementation"
end end
should "be able to write itself to the desitination direcotry" do should "be able to write itself to the desitination direcotry" do
file_name = "file_name.txt" assert @static_file.write(dest_dir)
make_dummy_file(file_name)
static_file = setup_static_file(nil, nil, file_name)
assert static_file.write(nil)
remove_dummy_file(file_name)
end end
should "be able to convert to liquid" do should "be able to convert to liquid" do
file_name = "file_name.txt"
make_dummy_file(file_name)
static_file = setup_static_file(nil, nil, "file_name.txt")
expected = { expected = {
"path"=>"/file_name.txt", "path" => "/static_file.txt",
"modified_time"=> static_file.mtime.to_s, "modified_time" => @static_file.mtime.to_s,
"extname"=>".txt" "extname" => ".txt"
} }
assert expected.eql?(static_file.to_liquid), "map is not the same" assert_equal expected, @static_file.to_liquid
remove_dummy_file(file_name)
end end
end end
end end