Skip to content

Commit b372bd3

Browse files
authored
Add check transparency value when create chart (qax-os#2198)
- Update unit tests
1 parent 5d2ee53 commit b372bd3

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

chart.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,9 @@ func parseChartOptions(opts *Chart) (*Chart, error) {
593593
opts.Legend.Position = defaultChartLegendPosition
594594
}
595595
opts.parseTitle()
596+
if opts.Fill.Transparency < 0 || 100 < opts.Fill.Transparency {
597+
return opts, ErrTransparency
598+
}
596599
if opts.VaryColors == nil {
597600
opts.VaryColors = boolPtr(true)
598601
}
@@ -602,7 +605,17 @@ func parseChartOptions(opts *Chart) (*Chart, error) {
602605
if opts.ShowBlanksAs == "" {
603606
opts.ShowBlanksAs = defaultChartShowBlanksAs
604607
}
605-
return opts, nil
608+
return opts, opts.parseSeries()
609+
}
610+
611+
// parseSeries check the series settings of the chart.
612+
func (opts *Chart) parseSeries() error {
613+
for _, series := range opts.Series {
614+
if series.Fill.Transparency < 0 || 100 < series.Fill.Transparency {
615+
return ErrTransparency
616+
}
617+
}
618+
return nil
606619
}
607620

608621
// parseTitle parse the title settings of the chart with default value.

chart_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,10 @@ func TestAddChart(t *testing.T) {
317317
assert.EqualError(t, f.AddChart("Sheet2", "BD32", &Chart{Type: Col, Series: series, Format: format, Legend: legend, Title: []RichTextRun{{Text: "2D Column Chart"}}, PlotArea: plotArea, ShowBlanksAs: "zero"}, nil), ErrParameterInvalid.Error())
318318
// Test add combo chart with unsupported chart type
319319
assert.EqualError(t, f.AddChart("Sheet2", "BD64", &Chart{Type: BarOfPie, Series: []ChartSeries{{Name: "Sheet1!$A$30", Categories: "Sheet1!$A$30:$D$37", Values: "Sheet1!$B$30:$B$37"}}, Format: format, Legend: legend, Title: []RichTextRun{{Text: "Bar of Pie Chart"}}, PlotArea: plotArea, ShowBlanksAs: "zero", XAxis: ChartAxis{MajorGridLines: true}, YAxis: ChartAxis{MajorGridLines: true}}, &Chart{Type: 0x37, Series: []ChartSeries{{Name: "Sheet1!$A$30", Categories: "Sheet1!$A$30:$D$37", Values: "Sheet1!$B$30:$B$37"}}, Format: format, Legend: legend, Title: []RichTextRun{{Text: "Bar of Pie Chart"}}, PlotArea: plotArea, ShowBlanksAs: "zero", XAxis: ChartAxis{MajorGridLines: true}, YAxis: ChartAxis{MajorGridLines: true}}), newUnsupportedChartType(0x37).Error())
320+
// Test add chart with series transparency value exceeds limit
321+
assert.Equal(t, ErrTransparency, f.AddChart("Sheet1", "BD64", &Chart{Type: Col, Series: []ChartSeries{{Name: "Sheet1!$A$30", Categories: "Sheet1!$B$29:$D$29", Values: "Sheet1!$B$30:$D$30", Fill: Fill{Transparency: 110}}}}))
322+
// Test add chart with transparency value exceeds limit
323+
assert.Equal(t, ErrTransparency, f.AddChart("Sheet1", "BD64", &Chart{Type: Col, Series: []ChartSeries{{Name: "Sheet1!$A$30", Categories: "Sheet1!$B$29:$D$29", Values: "Sheet1!$B$30:$D$30"}}, Fill: Fill{Transparency: -1}}))
320324
assert.NoError(t, f.Close())
321325

322326
// Test add chart with unsupported charset content types.

0 commit comments

Comments
 (0)