(t *testing.T)
| 107 | } |
| 108 | |
| 109 | func 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) |
nothing calls this directly
no test coverage detected