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

Function TestUnsetConditionalFormat

styles_test.go:339–407  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

337}
338
339func TestUnsetConditionalFormat(t *testing.T) {
340 f := NewFile()
341 assert.NoError(t, f.SetCellValue("Sheet1", "A1", 7))
342 assert.NoError(t, f.UnsetConditionalFormat("Sheet1", "A1:A10"))
343 format, err := f.NewConditionalStyle(&Style{Font: &Font{Color: "9A0511"}, Fill: Fill{Type: "pattern", Color: []string{"FEC7CE"}, Pattern: 1}})
344 assert.NoError(t, err)
345 assert.NoError(t, f.SetConditionalFormat("Sheet1", "A1:A10", []ConditionalFormatOptions{{Type: "cell", Criteria: ">", Format: &format, Value: "6"}}))
346 assert.NoError(t, f.UnsetConditionalFormat("Sheet1", "A1:A10"))
347 // Test unset conditional format with invalid range
348 assert.Equal(t, f.UnsetConditionalFormat("Sheet1", "A"), newCellNameToCoordinatesError("A", newInvalidCellNameError("A")))
349 // Test unset conditional format on not exists worksheet
350 assert.EqualError(t, f.UnsetConditionalFormat("SheetN", "A1:A10"), "sheet SheetN does not exist")
351 // Test unset conditional format with invalid sheet name
352 assert.Equal(t, ErrSheetNameInvalid, f.UnsetConditionalFormat("Sheet:1", "A1:A10"))
353 // Test unset conditional format from extLst
354 assert.NoError(t, f.SetConditionalFormat("Sheet1", "B1:B10", []ConditionalFormatOptions{{Type: "icon_set", IconStyle: "3Stars"}}))
355 assert.NoError(t, f.SetConditionalFormat("Sheet1", "C1:C10", []ConditionalFormatOptions{{Type: "icon_set", IconStyle: "5Boxes"}}))
356 condFmts, err := f.GetConditionalFormats("Sheet1")
357 assert.NoError(t, err)
358 assert.Len(t, condFmts, 2)
359 // Unset the first extLst conditional format
360 assert.NoError(t, f.UnsetConditionalFormat("Sheet1", "B1:B10"))
361 condFmts, err = f.GetConditionalFormats("Sheet1")
362 assert.NoError(t, err)
363 assert.Len(t, condFmts, 1)
364 assert.NotNil(t, condFmts["C1:C10"])
365 // Unset the last extLst conditional format
366 assert.NoError(t, f.UnsetConditionalFormat("Sheet1", "C1:C10"))
367 condFmts, err = f.GetConditionalFormats("Sheet1")
368 assert.NoError(t, err)
369 assert.Len(t, condFmts, 0)
370 // Save spreadsheet by the given path
371 assert.NoError(t, f.SaveAs(filepath.Join("test", "TestUnsetConditionalFormat.xlsx")))
372 // Test get and unset conditional format with invalid sqref value
373 f = NewFile()
374 ws, err := f.workSheetReader("Sheet1")
375 assert.NoError(t, err)
376 ws.ConditionalFormatting = []*xlsxConditionalFormatting{{SQRef: ""}}
377 _, err = f.GetConditionalFormats("Sheet1")
378 assert.Equal(t, ErrParameterRequired, err)
379 ws.ConditionalFormatting = []*xlsxConditionalFormatting{{SQRef: "A"}}
380 assert.Equal(t, newCellNameToCoordinatesError("A", newInvalidCellNameError("A")), f.UnsetConditionalFormat("Sheet1", "A1"))
381 // Test unset conditional formats with invalid extension list characters
382 ws.ExtLst = &xlsxExtLst{Ext: fmt.Sprintf(`<ext uri="%s"><x14:conditionalFormattings>
383 <x14:conditionalFormatting><xm:sqref>A</xm:sqref></x14:conditionalFormatting></x14:conditionalFormattings></ext>`, ExtURIConditionalFormattings)}
384 assert.Equal(t, f.UnsetConditionalFormat("Sheet1", "A1"), newCellNameToCoordinatesError("A", newInvalidCellNameError("A")))
385
386 t.Run("with_unordered_sqref", func(t *testing.T) {
387 f := NewFile()
388 condFmt := []ConditionalFormatOptions{{Type: "cell", Criteria: "greater than", Value: "6"}}
389 f.SetConditionalFormat("Sheet1", "A5:A10 A15:A20 A3:A4", condFmt)
390 assert.NoError(t, f.UnsetConditionalFormat("Sheet1", "A7"))
391 condFmts, err := f.GetConditionalFormats("Sheet1")
392 assert.NoError(t, err)
393 assert.Len(t, condFmts, 1)
394 assert.Equal(t, condFmt, condFmts["A3:A6 A8:A10 A15:A20"])
395 })
396

Callers

nothing calls this directly

Calls 11

SetCellValueMethod · 0.95
NewConditionalStyleMethod · 0.95
SetConditionalFormatMethod · 0.95
GetConditionalFormatsMethod · 0.95
SaveAsMethod · 0.95
workSheetReaderMethod · 0.95
NewFileFunction · 0.85
newInvalidCellNameErrorFunction · 0.85
LenMethod · 0.80

Tested by

no test coverage detected