-
Notifications
You must be signed in to change notification settings - Fork 36
/
ziptests.nim
50 lines (37 loc) · 1.34 KB
/
ziptests.nim
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import os, osproc, streams, unittest, strutils, ../zip/zipfiles
const path = splitPath(currentSourcePath()).head & "/../zip/zipfiles"
test "can compile zipfiles":
check execCmdEx("nim -o:./nimcache/zipfiles --nimcache:./nimcache c " &
path).exitCode == QuitSuccess
test "zipfiles extractAll":
var filename = "files/тест.xlsx"
var z: ZipArchive
if not z.open(filename):
echo "Opening zip failed"
quit(1)
z.extractAll("files/td")
z.close()
check existsDir("files/td/xl/worksheets")
check existsFile("files/td/xl/worksheets/sheet1.xml")
test "zipfiles read and write using Stream":
let filename = getTempDir() / "zipfiles_test_archive.zip"
defer: filename.removeFile
var z: ZipArchive
require z.open(filename, fmWrite)
z.addFile("foo.bar", newStringStream("content"))
z.close
require filename.existsFile
require z.open(filename, fmRead)
let outStream = newStringStream("")
z.extractFile("foo.bar", outStream)
z.close()
check: outStream.data == "content"
test "zipfiles read and write archive comment":
let filename = getTempDir() / "zipfiles_test_archive.zip"
defer: filename.removeFile
var z: ZipArchive
require z.open(filename, fmWrite)
z.setArchiveComment("TEST123123")
doAssert z.getArchiveComment() == "TEST123123"
expect IOError: z.setArchiveComment('x'.repeat(65535 + 1))
z.close()