summaryrefslogtreecommitdiff
path: root/file_test.go
diff options
context:
space:
mode:
authorZitao <369815332@qq.com>2021-06-22 14:06:08 +0800
committerGitHub <noreply@github.com>2021-06-22 14:06:08 +0800
commit24967a5c25499f92b4e58b8d6f8a92a46a7acc7a (patch)
tree56d8cf62ba547b15e4db03816818fa330bc77050 /file_test.go
parent2cfcf9eb5ff2f332dad0c6adead53ef0500001db (diff)
feat: stream write to zip directly (#863)
Diffstat (limited to 'file_test.go')
-rw-r--r--file_test.go43
1 files changed, 32 insertions, 11 deletions
diff --git a/file_test.go b/file_test.go
index 656271f..dbbf75a 100644
--- a/file_test.go
+++ b/file_test.go
@@ -3,6 +3,7 @@ package excelize
import (
"bufio"
"bytes"
+ "os"
"strings"
"testing"
@@ -33,16 +34,36 @@ func BenchmarkWrite(b *testing.B) {
}
func TestWriteTo(t *testing.T) {
- f := File{}
- buf := bytes.Buffer{}
- f.XLSX = make(map[string][]byte)
- f.XLSX["/d/"] = []byte("s")
- _, err := f.WriteTo(bufio.NewWriter(&buf))
- assert.EqualError(t, err, "zip: write to directory")
- delete(f.XLSX, "/d/")
+ // Test WriteToBuffer err
+ {
+ f := File{}
+ buf := bytes.Buffer{}
+ f.XLSX = make(map[string][]byte)
+ f.XLSX["/d/"] = []byte("s")
+ _, err := f.WriteTo(bufio.NewWriter(&buf))
+ assert.EqualError(t, err, "zip: write to directory")
+ delete(f.XLSX, "/d/")
+ }
// Test file path overflow
- const maxUint16 = 1<<16 - 1
- f.XLSX[strings.Repeat("s", maxUint16+1)] = nil
- _, err = f.WriteTo(bufio.NewWriter(&buf))
- assert.EqualError(t, err, "zip: FileHeader.Name too long")
+ {
+ f := File{}
+ buf := bytes.Buffer{}
+ f.XLSX = make(map[string][]byte)
+ const maxUint16 = 1<<16 - 1
+ f.XLSX[strings.Repeat("s", maxUint16+1)] = nil
+ _, err := f.WriteTo(bufio.NewWriter(&buf))
+ assert.EqualError(t, err, "zip: FileHeader.Name too long")
+ }
+ // Test StreamsWriter err
+ {
+ f := File{}
+ buf := bytes.Buffer{}
+ f.XLSX = make(map[string][]byte)
+ f.XLSX["s"] = nil
+ f.streams = make(map[string]*StreamWriter)
+ file, _ := os.Open("123")
+ f.streams["s"] = &StreamWriter{rawData: bufferedWriter{tmp: file}}
+ _, err := f.WriteTo(bufio.NewWriter(&buf))
+ assert.Nil(t, err)
+ }
}