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:
		
						commit
						2c373e6fe9
					
				|  | @ -17,3 +17,4 @@ coverage | ||||||
| tmp/* | tmp/* | ||||||
| .jekyll-metadata | .jekyll-metadata | ||||||
| /vendor | /vendor | ||||||
|  | /test/source/file_name.txt | ||||||
|  |  | ||||||
|  | @ -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 | ||||||
|  | 
 | ||||||
		Loading…
	
		Reference in New Issue