MCPcopy
hub / github.com/qax-os/excelize / TestZip64

Function TestZip64

file_test.go:109–174  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

107}
108
109func TestZip64(t *testing.T) {
110 f := NewFile()
111 _, err := f.NewSheet("Sheet2")
112 assert.NoError(t, err)
113 sw, err := f.NewStreamWriter("Sheet1")
114 assert.NoError(t, err)
115 for r := range 131 {
116 rowData := make([]interface{}, 1000)
117 for c := range 1000 {
118 rowData[c] = strings.Repeat("c", TotalCellChars)
119 }
120 cell, err := CoordinatesToCellName(1, r+1)
121 assert.NoError(t, err)
122 assert.NoError(t, sw.SetRow(cell, rowData))
123 }
124 assert.NoError(t, sw.Flush())
125 assert.NoError(t, f.SaveAs(filepath.Join("test", "TestZip64.xlsx")))
126 assert.NoError(t, f.Close())
127
128 // Test with filename length overflow
129 f = NewFile()
130 f.zip64Entries = append(f.zip64Entries, defaultXMLPathSharedStrings)
131 buf := new(bytes.Buffer)
132 buf.Write([]byte{0x50, 0x4b, 0x03, 0x04})
133 buf.Write(make([]byte, 20))
134 assert.NoError(t, f.writeZip64LFH(buf))
135
136 // Test with file header less than the required 30 for the fixed header part
137 f = NewFile()
138 f.zip64Entries = append(f.zip64Entries, defaultXMLPathSharedStrings)
139 buf.Reset()
140 buf.Write([]byte{0x50, 0x4b, 0x03, 0x04})
141 buf.Write(make([]byte, 22))
142 binary.Write(buf, binary.LittleEndian, uint16(10))
143 buf.Write(make([]byte, 2))
144 buf.WriteString("test")
145 assert.NoError(t, f.writeZip64LFH(buf))
146
147 t.Run("for_save_zip64_with_in_memory_file_over_4GB", func(t *testing.T) {
148 // Test save workbook in ZIP64 format with in memory file with size over 4GB.
149 f := NewFile()
150 f.Sheet.Delete("xl/worksheets/sheet1.xml")
151 f.Pkg.Store("xl/worksheets/sheet1.xml", make([]byte, math.MaxUint32+1))
152 _, err := f.WriteToBuffer()
153 assert.NoError(t, err)
154 assert.NoError(t, f.Close())
155 })
156
157 t.Run("for_save_zip64_with_in_temporary_file_over_4GB", func(t *testing.T) {
158 // Test save workbook in ZIP64 format with temporary file with size over 4GB.
159 if os.Getenv("GITHUB_ACTIONS") == "true" {
160 t.Skip()
161 }
162 f := NewFile()
163 f.Pkg.Delete("xl/worksheets/sheet1.xml")
164 f.Sheet.Delete("xl/worksheets/sheet1.xml")
165 tmp, err := os.CreateTemp(os.TempDir(), "excelize-")
166 assert.NoError(t, err)

Callers

nothing calls this directly

Calls 13

NewSheetMethod · 0.95
NewStreamWriterMethod · 0.95
SetRowMethod · 0.95
FlushMethod · 0.95
SaveAsMethod · 0.95
CloseMethod · 0.95
writeZip64LFHMethod · 0.95
WriteToBufferMethod · 0.95
NewFileFunction · 0.85
CoordinatesToCellNameFunction · 0.85
WriteStringMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected