1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# frozen_string_literal: true
require 'tc_helper'
class TestSeriesTitle < Test::Unit::TestCase
def setup
@p = Axlsx::Package.new
ws = @p.workbook.add_worksheet
@row = ws.add_row ["one", 1, Time.now]
@title = Axlsx::SeriesTitle.new
@chart = ws.add_chart Axlsx::Bar3DChart
end
def teardown; end
def test_initialization
assert_equal("", @title.text)
assert_nil(@title.cell)
end
def test_text
assert_raise(ArgumentError, "text must be a string") { @title.text = 123 }
@title.cell = @row.cells.first
@title.text = "bob"
assert_nil(@title.cell, "setting title with text clears the cell")
end
def test_cell
assert_raise(ArgumentError, "cell must be a Cell") { @title.cell = "123" }
@title.cell = @row.cells.first
assert_equal("one", @title.text)
end
def test_to_xml_string_for_special_characters
@chart.add_series(title: @title, data: [3, 7], labels: ['A', 'B'])
@title.text = "&><'\""
doc = Nokogiri::XML(@chart.to_xml_string)
errors = doc.errors
assert_empty(errors, "invalid xml: #{errors.map(&:to_s).join(', ')}")
end
def test_to_xml_string_for_special_characters_in_cell
@chart.add_series(title: @title, data: [3, 7], labels: ['A', 'B'])
cell = @row.cells.first
cell.value = "&><'\""
@title.cell = cell
doc = Nokogiri::XML(@chart.to_xml_string)
errors = doc.errors
assert_empty(errors, "invalid xml: #{errors.map(&:to_s).join(', ')}")
end
end
|