Merge branch 'delftswa2014-static-file-test'

* delftswa2014-static-file-test:
  DRY up the StaticFile tests a bit. #3633.
  Added tests for Jekyll:StaticFile
This commit is contained in:
Parker Moore 2015-04-10 16:24:51 -04:00
commit 2c373e6fe9
2 changed files with 87 additions and 0 deletions

1
.gitignore vendored
View File

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

86
test/test_static_file.rb Normal file
View File

@ -0,0 +1,86 @@
require 'helper'
class TestStaticFile < JekyllUnitTest
def make_dummy_file(filename)
File.write(source_dir(filename), "some content")
end
def modify_dummy_file(filename)
offset = "some content".size
File.write(source_dir(filename), "more content", offset)
end
def remove_dummy_file(filename)
File.delete(source_dir(filename))
end
def setup_static_file(base, dir, name)
StaticFile.new(@site, base, dir, name)
end
context "A StaticFile" do
setup do
clear_dest
@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
should "have a source file path" do
static_file = setup_static_file("root", "dir", @filename)
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
should "have a destination relative directory without a collection" do
static_file = setup_static_file("root", "dir/subdir", "file.html")
assert "dir/subdir", static_file.destination_rel_dir
end
should "know its last modification time" do
assert_equal Time.new.to_i, @static_file.mtime
end
should "known if the source path is modified, when it is" do
sleep 1
modify_dummy_file(@filename)
assert @static_file.modified?
end
should "known if the source path is modified, when its not" do
@static_file.write(dest_dir)
sleep 1 # wait, else the times are still the same
assert !@static_file.modified?
end
should "known whether to write the file to the filesystem" do
assert @static_file.write?, "always true, with current implementation"
end
should "be able to write itself to the desitination direcotry" do
assert @static_file.write(dest_dir)
end
should "be able to convert to liquid" do
expected = {
"path" => "/static_file.txt",
"modified_time" => @static_file.mtime.to_s,
"extname" => ".txt"
}
assert_equal expected, @static_file.to_liquid
end
end
end