summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2012-04-21 13:58:27 +0900
committerRandy Morgan <[email protected]>2012-04-21 13:58:27 +0900
commit050f4cfac1b3a52da16b98f3a494083f0de5348f (patch)
tree889e7217fe7a731be6f3588e4e179d3d73d349cd /test
parentc84e62cb7a91fefae0457baabbd9b2f3bef3259e (diff)
downloadcaxlsx-050f4cfac1b3a52da16b98f3a494083f0de5348f.tar.gz
caxlsx-050f4cfac1b3a52da16b98f3a494083f0de5348f.zip
adding in icon set and MOAR examples for conditional formatting.
Diffstat (limited to 'test')
-rw-r--r--test/workbook/worksheet/tc_conditional_formatting.rb22
-rw-r--r--test/workbook/worksheet/tc_icon_set.rb45
2 files changed, 66 insertions, 1 deletions
diff --git a/test/workbook/worksheet/tc_conditional_formatting.rb b/test/workbook/worksheet/tc_conditional_formatting.rb
index 2287c017..0dcb1a7c 100644
--- a/test/workbook/worksheet/tc_conditional_formatting.rb
+++ b/test/workbook/worksheet/tc_conditional_formatting.rb
@@ -25,15 +25,35 @@ class TestConditionalFormatting < Test::Unit::TestCase
cs.value_objects.first.val = 5
end
+ data_bar = Axlsx::DataBar.new :color => "FFFF0000"
+ icon_set = Axlsx::IconSet.new :iconSet => "5Rating"
+
cfs = @ws.add_conditional_formatting( "B2:B2", [{ :type => :containsText, :text => "TRUE",
:dxfId => 0, :priority => 1,
:formula => 'NOT(ISERROR(SEARCH("FALSE",AB1)))',
- :color_scale => color_scale}])
+ :color_scale => color_scale,
+ :data_bar => data_bar,
+ :icon_set => icon_set}])
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, 2)
+ assert_equal(doc.xpath(".//conditionalFormatting//cfRule//iconSet[@iconSet='5Rating']").size, 1)
+
end
def test_single_rule
diff --git a/test/workbook/worksheet/tc_icon_set.rb b/test/workbook/worksheet/tc_icon_set.rb
new file mode 100644
index 00000000..bb90276c
--- /dev/null
+++ b/test/workbook/worksheet/tc_icon_set.rb
@@ -0,0 +1,45 @@
+require 'tc_helper.rb'
+
+class TestIconSet < Test::Unit::TestCase
+ def setup
+ @icon_set = Axlsx::IconSet.new
+ end
+
+ def test_defaults
+ assert_equal @icon_set.iconSet, "3TrafficLights1"
+ assert_equal @icon_set.percent, true
+ assert_equal @icon_set.reverse, false
+ assert_equal @icon_set.showValue, true
+ end
+
+ def test_icon_set
+ assert_raise(ArgumentError) { @icon_set.iconSet = "invalid_value" }
+ assert_nothing_raised { @icon_set.iconSet = "5Rating"}
+ assert_equal(@icon_set.iconSet, "5Rating")
+ end
+
+ def test_percent
+ assert_raise(ArgumentError) { @icon_set.percent = :invalid_type }
+ assert_nothing_raised { @icon_set.percent = false}
+ assert_equal(@icon_set.percent, false)
+ end
+
+ def test_showValue
+ assert_raise(ArgumentError) { @icon_set.showValue = :invalid_type }
+ assert_nothing_raised { @icon_set.showValue = false}
+ assert_equal(@icon_set.showValue, false)
+ end
+
+ def test_reverse
+ assert_raise(ArgumentError) { @icon_set.reverse = :invalid_type }
+ assert_nothing_raised { @icon_set.reverse = false}
+ assert_equal(@icon_set.reverse, false)
+ end
+
+ def test_to_xml_string
+ doc = Nokogiri::XML.parse(@icon_set.to_xml_string)
+ assert_equal(doc.xpath(".//iconSet[@iconSet='3TrafficLights1'][@percent='true'][@reverse='false'][@showValue='true']").size, 1)
+ assert_equal(doc.xpath(".//iconSet//cfvo").size, 2)
+ end
+
+end