@@ -54,9 +54,10 @@ object ZipOpTests extends TestSuite {
5454 val expected = Seq (
5555 wd / " unzipped folder/renamed-file.txt" ,
5656 wd / " unzipped folder/renamed-folder" ,
57- wd / " unzipped folder/renamed-folder/one.txt"
57+ wd / " unzipped folder/renamed-folder/folder1" ,
58+ wd / " unzipped folder/renamed-folder/folder1/one.txt"
5859 )
59- assert(paths.sorted == expected)
60+ assert(paths.sorted == expected.sorted )
6061 }
6162
6263 test(" excludePatterns" ) - prep { wd =>
@@ -80,8 +81,9 @@ object ZipOpTests extends TestSuite {
8081 zipFile1,
8182 dest = wd / " zipByExcludingCertainFiles"
8283 )
83- val paths = os.walk(outputZipFilePath).sorted
84- val expected = Seq (wd / " zipByExcludingCertainFiles/File.amx" )
84+ val paths = os.walk(outputZipFilePath).toList.sorted
85+ val expected =
86+ Seq (wd / " zipByExcludingCertainFiles/File.amx" ).toList.sorted
8587 assert(paths == expected)
8688 }
8789
@@ -104,8 +106,8 @@ object ZipOpTests extends TestSuite {
104106 // Unzip file to check for contents
105107 val outputZipFilePath =
106108 os.unzip(zipFile1, dest = wd / " zipByIncludingCertainFiles" )
107- val paths = os.walk(outputZipFilePath)
108- val expected = Seq (wd / " zipByIncludingCertainFiles" / amxFile)
109+ val paths = os.walk(outputZipFilePath).toSeq.sorted
110+ val expected = List (wd / " zipByIncludingCertainFiles" / amxFile).sorted
109111 assert(paths == expected)
110112 }
111113
@@ -124,8 +126,8 @@ object ZipOpTests extends TestSuite {
124126 dest = wd / " zipStreamFunction"
125127 )
126128
127- val paths = os.walk(unzippedFolder)
128- assert(paths == Seq (unzippedFolder / " File.txt" ))
129+ val paths = os.walk(unzippedFolder).toSeq
130+ assert(paths.sorted == Seq (unzippedFolder / " File.txt" ).sorted )
129131 }
130132
131133 test(" list" ) - prep { wd =>
@@ -140,9 +142,10 @@ object ZipOpTests extends TestSuite {
140142 )
141143
142144 // Unzip file to a destination folder
143- val listedContents = os.unzip.list(source = wd / zipFileName).toSeq
145+ val listedContents = os.unzip.list(source = wd / zipFileName).toList.sorted
144146
145- val expected = Seq (os.sub / " File.txt" , os.sub / " one.txt" )
147+ val expected =
148+ List (os.sub / " File.txt" , os.sub / " folder1/one.txt" , os.sub / " folder1" ).sorted
146149 assert(listedContents == expected)
147150 }
148151
@@ -167,11 +170,12 @@ object ZipOpTests extends TestSuite {
167170 excludePatterns = Seq (amxFile.r)
168171 )
169172
170- val paths = os.walk(unzippedFolder)
171- val expected = Seq (
173+ val paths = os.walk(unzippedFolder).toList.sorted
174+ val expected = List (
172175 wd / " unzipAllExceptExcludingCertainFiles/File.txt" ,
173- wd / " unzipAllExceptExcludingCertainFiles/one.txt"
174- )
176+ wd / " unzipAllExceptExcludingCertainFiles/folder1/one.txt" ,
177+ wd / " unzipAllExceptExcludingCertainFiles/folder1"
178+ ).sorted
175179
176180 assert(paths == expected)
177181 }
@@ -222,5 +226,22 @@ object ZipOpTests extends TestSuite {
222226 assert(file2Content == " Content of file2" )
223227 }
224228
229+ test(" emptyFolder" ) - prep { wd =>
230+ val zipFileName = " zipCheckEmptyDirectory.zip"
231+ val zipFile = os.zip(
232+ dest = wd / zipFileName,
233+ sources = Seq (
234+ wd / " emptyFolder" ,
235+ wd / " File.txt"
236+ )
237+ )
238+
239+ val unzippedFolder = os.unzip(
240+ source = wd / zipFileName,
241+ dest = wd / " unzipped-empty-directory"
242+ )
243+
244+ assert(os.exists(unzippedFolder / " emptyFolder" ))
245+ }
225246 }
226247}
0 commit comments