summaryrefslogtreecommitdiff
path: root/lib_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib_test.go')
-rw-r--r--lib_test.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/lib_test.go b/lib_test.go
index 556ed91..84a52bb 100644
--- a/lib_test.go
+++ b/lib_test.go
@@ -1,13 +1,18 @@
package excelize
import (
+ "archive/zip"
+ "bytes"
"encoding/xml"
"fmt"
+ "os"
"strconv"
"strings"
+ "sync"
"testing"
"github.com/stretchr/testify/assert"
+ "github.com/stretchr/testify/require"
)
var validColumns = []struct {
@@ -296,3 +301,41 @@ func TestBstrMarshal(t *testing.T) {
assert.Equal(t, expected, bstrMarshal(bstr))
}
}
+
+func TestReadBytes(t *testing.T) {
+ f := &File{tempFiles: sync.Map{}}
+ sheet := "xl/worksheets/sheet1.xml"
+ f.tempFiles.Store(sheet, "/d/")
+ assert.Equal(t, []byte{}, f.readBytes(sheet))
+}
+
+func TestUnzipToTemp(t *testing.T) {
+ os.Setenv("TMPDIR", "test")
+ defer os.Unsetenv("TMPDIR")
+ assert.NoError(t, os.Chmod(os.TempDir(), 0444))
+ f := NewFile()
+ data := []byte("PK\x03\x040000000PK\x01\x0200000" +
+ "0000000000000000000\x00" +
+ "\x00\x00\x00\x00\x00000000000000PK\x01" +
+ "\x020000000000000000000" +
+ "00000\v\x00\x00\x00\x00\x00000000000" +
+ "00000000000000PK\x01\x0200" +
+ "00000000000000000000" +
+ "00\v\x00\x00\x00\x00\x00000000000000" +
+ "00000000000PK\x01\x020000<" +
+ "0\x00\x0000000000000000\v\x00\v" +
+ "\x00\x00\x00\x00\x0000000000\x00\x00\x00\x00000" +
+ "00000000PK\x01\x0200000000" +
+ "0000000000000000\v\x00\x00\x00" +
+ "\x00\x0000PK\x05\x06000000\x05\x000000" +
+ "\v\x00\x00\x00\x00\x00")
+ z, err := zip.NewReader(bytes.NewReader(data), int64(len(data)))
+ assert.NoError(t, err)
+
+ _, err = f.unzipToTemp(z.File[0])
+ require.Error(t, err)
+ assert.NoError(t, os.Chmod(os.TempDir(), 0755))
+
+ _, err = f.unzipToTemp(z.File[0])
+ assert.EqualError(t, err, "EOF")
+}