@@ -27,21 +27,38 @@ func TestEmbed(t *testing.T) {
2727 require .NoError (t , err )
2828 efs := NewEmbeddedFS (data )
2929
30+ // test a non-existing file
3031 _ , err = fs .ReadFile (efs , "not exist" )
3132 assert .ErrorIs (t , err , fs .ErrNotExist )
3233
34+ // test a normal file (no compression)
3335 content , err := fs .ReadFile (efs , "a.txt" )
3436 require .NoError (t , err )
3537 assert .Equal (t , "a" , string (content ))
38+ fi , err := fs .Stat (efs , "a.txt" )
39+ require .NoError (t , err )
40+ _ , ok := fi .(EmbeddedFileInfo ).GetGzipContent ()
41+ assert .False (t , ok )
3642
43+ // test a compressed file
3744 content , err = fs .ReadFile (efs , "foo/bar/b.txt" )
3845 require .NoError (t , err )
3946 assert .Equal (t , bytes .Repeat ([]byte ("a" ), 1000 ), content )
47+ fi , err = fs .Stat (efs , "foo/bar/b.txt" )
48+ require .NoError (t , err )
49+ gzipContent , ok := fi .(EmbeddedFileInfo ).GetGzipContent ()
50+ assert .True (t , ok )
51+ assert .Greater (t , len (gzipContent ), 1 )
52+ assert .Less (t , len (gzipContent ), 1000 )
4053
54+ // test list root directory
4155 entries , err := fs .ReadDir (efs , "." )
4256 require .NoError (t , err )
4357 assert .Len (t , entries , 2 )
58+ assert .Equal (t , "a.txt" , entries [0 ].Name ())
59+ assert .False (t , entries [0 ].IsDir ())
4460
61+ // test list subdirectory
4562 entries , err = fs .ReadDir (efs , "foo" )
4663 require .NoError (t , err )
4764 require .Len (t , entries , 2 )
@@ -50,21 +67,23 @@ func TestEmbed(t *testing.T) {
5067 assert .Equal (t , "c.txt" , entries [1 ].Name ())
5168 assert .False (t , entries [1 ].IsDir ())
5269
53- entries , err = fs .ReadDir (efs , "foo/bar" )
54- require .NoError (t , err )
55- require .Len (t , entries , 1 )
56- assert .Equal (t , "b.txt" , entries [0 ].Name ())
57- assert .False (t , entries [0 ].IsDir ())
58-
70+ // test httpfs
5971 hfs := http .FS (efs )
6072 hf , err := hfs .Open ("foo/bar/b.txt" )
6173 require .NoError (t , err )
6274 hi , err := hf .Stat ()
6375 require .NoError (t , err )
64- fi , ok := hi .(EmbeddedFileInfo )
76+ fiEmbedded , ok := hi .(EmbeddedFileInfo )
6577 require .True (t , ok )
66- gzipContent , ok := fi .GetGzipContent ()
78+ gzipContent , ok = fiEmbedded .GetGzipContent ()
6779 assert .True (t , ok )
6880 assert .Greater (t , len (gzipContent ), 1 )
6981 assert .Less (t , len (gzipContent ), 1000 )
82+
83+ // test httpfs directory listing
84+ hf , err = hfs .Open ("foo" )
85+ require .NoError (t , err )
86+ dirs , err := hf .Readdir (1 )
87+ require .NoError (t , err )
88+ assert .Len (t , dirs , 1 )
7089}
0 commit comments