From 40ef081e4d6b468d308c89324b49e551e8cad266 Mon Sep 17 00:00:00 2001 From: Rob Donnelly Date: Wed, 3 Feb 2021 12:18:29 -0800 Subject: Add test for special characters in table header --- test/workbook/worksheet/tc_table.rb | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/workbook/worksheet/tc_table.rb b/test/workbook/worksheet/tc_table.rb index 8edfc099..f35210b9 100644 --- a/test/workbook/worksheet/tc_table.rb +++ b/test/workbook/worksheet/tc_table.rb @@ -64,4 +64,19 @@ class TestTable < Test::Unit::TestCase end assert(errors.empty?, "error free validation") end + + def test_to_xml_string_for_special_characters + cell = @ws.rows.first.cells.first + cell.value = "&><'\"" + + table = @ws.add_table("A1:D5") + schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD)) + doc = Nokogiri::XML(table.to_xml_string) + errors = [] + schema.validate(doc).each do |error| + errors.push error + puts error.message + end + assert(errors.empty?, "error free validation") + end end -- cgit v1.2.3 From c0be68939b34c37b50831ac1b77258ba0acdaa9e Mon Sep 17 00:00:00 2001 From: Rob Donnelly Date: Wed, 3 Feb 2021 12:19:22 -0800 Subject: Fix special characters in table header --- lib/axlsx/workbook/worksheet/table.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/axlsx/workbook/worksheet/table.rb b/lib/axlsx/workbook/worksheet/table.rb index 6df71828..992486d2 100644 --- a/lib/axlsx/workbook/worksheet/table.rb +++ b/lib/axlsx/workbook/worksheet/table.rb @@ -80,7 +80,7 @@ module Axlsx str << ('') str << ('') header_cells.each_with_index do |cell,index| - str << ('') + str << ('') end str << '' table_style_info.to_xml_string(str) -- cgit v1.2.3 From de3175a44f6d8c3fd3b968309000266b2de51fde Mon Sep 17 00:00:00 2001 From: Rob Donnelly Date: Wed, 3 Feb 2021 13:10:33 -0800 Subject: Simplify test for special characters in table header --- test/workbook/worksheet/tc_table.rb | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/test/workbook/worksheet/tc_table.rb b/test/workbook/worksheet/tc_table.rb index f35210b9..fd6c1923 100644 --- a/test/workbook/worksheet/tc_table.rb +++ b/test/workbook/worksheet/tc_table.rb @@ -70,13 +70,8 @@ class TestTable < Test::Unit::TestCase cell.value = "&><'\"" table = @ws.add_table("A1:D5") - schema = Nokogiri::XML::Schema(File.open(Axlsx::SML_XSD)) doc = Nokogiri::XML(table.to_xml_string) - errors = [] - schema.validate(doc).each do |error| - errors.push error - puts error.message - end - assert(errors.empty?, "error free validation") + errors = doc.errors + assert(errors.empty?, "invalid xml: #{errors.map(&:to_s).join(', ')}") end end -- cgit v1.2.3