File tree Expand file tree Collapse file tree 3 files changed +44
-1
lines changed Expand file tree Collapse file tree 3 files changed +44
-1
lines changed Original file line number Diff line number Diff line change 4343 let name = util:: normalize_path ( name) ;
4444 let segments: Vec < & str > = name. split ( '/' ) . collect ( ) ;
4545
46- for t in 1 ..segments. len ( ) - 1 {
46+ for t in 1 ..segments. len ( ) {
4747 let dir = segments[ 0 ..t] . to_vec ( ) . join ( "/" ) ;
4848 zip. dirs . insert ( dir + "/" ) ;
4949 }
@@ -201,3 +201,46 @@ fn read_central_file_header(
201201
202202 Ok ( Some ( ( file_name, Some ( entry) ) ) )
203203}
204+
205+ #[ cfg( test) ]
206+ mod tests {
207+ use super :: * ;
208+
209+ #[ test]
210+ fn test_read_zip_entry ( ) {
211+ let zip
212+ = Zip :: new ( include_bytes ! ( "../fixtures/left-pad-1.zip" ) ) . unwrap ( ) ;
213+
214+ let mut dirs
215+ = zip. dirs . iter ( )
216+ . map ( |d| d. as_str ( ) )
217+ . collect :: < Vec < & str > > ( ) ;
218+
219+ dirs. sort ( ) ;
220+
221+ assert_eq ! ( dirs, vec![
222+ "node_modules/" ,
223+ "node_modules/left-pad/" ,
224+ "node_modules/left-pad/perf/" ,
225+ ] ) ;
226+ }
227+
228+ #[ test]
229+ fn test_read_zip_entry_2 ( ) {
230+ let zip
231+ = Zip :: new ( include_bytes ! ( "../fixtures/left-pad-2.zip" ) ) . unwrap ( ) ;
232+
233+ let mut dirs
234+ = zip. dirs . iter ( )
235+ . map ( |d| d. as_str ( ) )
236+ . collect :: < Vec < & str > > ( ) ;
237+
238+ dirs. sort ( ) ;
239+
240+ assert_eq ! ( dirs, vec![
241+ "node_modules/" ,
242+ "node_modules/left-pad/" ,
243+ "node_modules/left-pad/perf/" ,
244+ ] ) ;
245+ }
246+ }
You can’t perform that action at this time.
0 commit comments