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/* | ||||
| .jekyll-metadata | ||||
| /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