diff options
| author | Randy Morgan <[email protected]> | 2012-05-15 11:23:59 +0900 |
|---|---|---|
| committer | Randy Morgan <[email protected]> | 2012-05-15 11:23:59 +0900 |
| commit | 2d744ba77906d460b608859c945a5741ec725e42 (patch) | |
| tree | 0366b619ea15909d230a2fa485a95d395486d6cf /test/workbook/worksheet/tc_conditional_formatting.rb | |
| parent | 2e1e14dd8f91e8a1416faae9501fdf04638104c7 (diff) | |
| download | caxlsx-2d744ba77906d460b608859c945a5741ec725e42.tar.gz caxlsx-2d744ba77906d460b608859c945a5741ec725e42.zip | |
bring coverage up to 100% and patch a few minor bugs in cell style overrides and misnamed app attributes.
Diffstat (limited to 'test/workbook/worksheet/tc_conditional_formatting.rb')
| -rw-r--r-- | test/workbook/worksheet/tc_conditional_formatting.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/workbook/worksheet/tc_conditional_formatting.rb b/test/workbook/worksheet/tc_conditional_formatting.rb index 6b2c6c3b..087fd40e 100644 --- a/test/workbook/worksheet/tc_conditional_formatting.rb +++ b/test/workbook/worksheet/tc_conditional_formatting.rb @@ -15,6 +15,50 @@ class TestConditionalFormatting < Test::Unit::TestCase assert_equal("AA1:AB100", optioned.sqref) assert_equal([1, 2], optioned.rules) end + def test_add_as_rule + + color_scale = Axlsx::ColorScale.new do |cs| + cs.colors.first.rgb = "FFDFDFDF" + cs.colors.last.rgb = "FF00FF00" + cs.value_objects.first.type = :percentile + cs.value_objects.first.val = 5 + end + + data_bar = Axlsx::DataBar.new :color => "FFFF0000" + icon_set = Axlsx::IconSet.new :iconSet => "5Rating" + cfr = Axlsx::ConditionalFormattingRule.new( { :type => :containsText, :text => "TRUE", + :dxfId => 0, :priority => 1, + :formula => 'NOT(ISERROR(SEARCH("FALSE",AB1)))', + :color_scale => color_scale, + :data_bar => data_bar, + :icon_set => icon_set}) + + assert(cfr.data_bar.is_a?(Axlsx::DataBar)) + assert(cfr.icon_set.is_a?(Axlsx::IconSet)) + assert(cfr.color_scale.is_a?(Axlsx::ColorScale)) + cfs = @ws.add_conditional_formatting( "B2:B2", [cfr]) + doc = Nokogiri::XML.parse(cfs.last.to_xml_string) + assert_equal(1, doc.xpath(".//conditionalFormatting[@sqref='B2:B2']//cfRule[@type='containsText'][@dxfId=0][@priority=1]").size) + assert doc.xpath(".//conditionalFormatting//cfRule[@type='containsText'][@dxfId=0][@priority=1]//formula='NOT(ISERROR(SEARCH(\"FALSE\",AB1)))'") + + cfs.last.rules.last.type = :colorScale + doc = Nokogiri::XML.parse(cfs.last.to_xml_string) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//colorScale//cfvo").size, 2) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//colorScale//color").size, 2) + + cfs.last.rules.last.type = :dataBar + doc = Nokogiri::XML.parse(cfs.last.to_xml_string) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//dataBar").size, 1) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//dataBar//cfvo").size, 2) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//dataBar//color[@rgb='FFFF0000']").size, 1) + + cfs.last.rules.last.type = :iconSet + doc = Nokogiri::XML.parse(cfs.last.to_xml_string) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//iconSet//cfvo").size, 3) + assert_equal(doc.xpath(".//conditionalFormatting//cfRule//iconSet[@iconSet='5Rating']").size, 1) + + end + def test_add_as_hash |
