Added tests for Jekyll:StaticFile

This commit is contained in:
Martijn den Hoedt 2015-04-01 12:53:17 +02:00
parent 0e52b83b6f
commit 28a1d2445e
1 changed files with 95 additions and 0 deletions

95
test/test_static_file.rb Normal file
View File

@ -0,0 +1,95 @@
require 'helper'
class TestStaticFile < JekyllUnitTest
def make_dummy_file(file_name)
temp_file = File.new(file_name, "w")
temp_file.puts("some content")
temp_file.close
end
def modify_dummy_file(file_name)
temp_file = File.open(file_name, "w")
temp_file.puts("more content")
temp_file.close
end
def remove_dummy_file(file_name)
File.delete(file_name)
end
def setup_static_file(base, dir, name)
@static_file = StaticFile.new(@site, base, dir, name)
end
context "A StaticFile" do
setup do
clear_dest
@site = Site.new(site_configuration)
end
should "have a source file path" do
static_file = setup_static_file("root", "dir", "file_name.html")
assert_equal "root/dir/file_name.html", static_file.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
file_name = "file.html"
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
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
modify_dummy_file(file_name)
assert static_file.modified?
remove_dummy_file(file_name)
end
should "known if the source path is modified, when its not" do
file_name = "file_name.txt"
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
assert !static_file.modified?
remove_dummy_file(file_name)
end
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"
end
should "be able to write itself to the desitination direcotry" do
file_name = "file_name.txt"
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
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 = {
"path"=>"/file_name.txt",
"modified_time"=> static_file.mtime.to_s,
"extname"=>".txt"
}
assert expected.eql?(static_file.to_liquid), "map is not the same"
remove_dummy_file(file_name)
end
end
end