summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorRandy Morgan <[email protected]>2012-09-30 09:08:50 +0900
committerRandy Morgan <[email protected]>2012-09-30 09:08:50 +0900
commita1f64c74f44c3ce2c32061d1adf9baab94aef4ba (patch)
tree7513316f605d81cba9f515dd6670eaa106d5ad04 /test
parent000423e08d831fed83faca86f4473f966f25f86b (diff)
downloadcaxlsx-a1f64c74f44c3ce2c32061d1adf9baab94aef4ba.tar.gz
caxlsx-a1f64c74f44c3ce2c32061d1adf9baab94aef4ba.zip
Finished and Specced Auto Filter with Filters (standard) filter support
This means you can add autofilters that will restrict the visible rows based on a specified value.
Diffstat (limited to 'test')
-rw-r--r--test/workbook/worksheet/auto_filter/tc_auto_filter.rb8
-rw-r--r--test/workbook/worksheet/auto_filter/tc_filters.rb28
2 files changed, 28 insertions, 8 deletions
diff --git a/test/workbook/worksheet/auto_filter/tc_auto_filter.rb b/test/workbook/worksheet/auto_filter/tc_auto_filter.rb
index 77ee2b2c..d7d3b47c 100644
--- a/test/workbook/worksheet/auto_filter/tc_auto_filter.rb
+++ b/test/workbook/worksheet/auto_filter/tc_auto_filter.rb
@@ -4,9 +4,10 @@ class TestAutoFilter < Test::Unit::TestCase
def setup
ws = Axlsx::Package.new.workbook.add_worksheet
- 3.times { ws.add_row [1,2,3] }
+ 3.times { |index| ws.add_row [1*index,2*index,3*index] }
@auto_filter = ws.auto_filter
@auto_filter.range = 'A1:C3'
+ @auto_filter.add_column 0, :filters, :filter_items => [1]
end
def test_defined_name
@@ -29,4 +30,9 @@ class TestAutoFilter < Test::Unit::TestCase
end
end
+ def test_applya
+ assert_equal nil, @auto_filter.worksheet.rows.last.hidden
+ @auto_filter.apply
+ assert_equal true, @auto_filter.worksheet.rows.last.hidden
+ end
end
diff --git a/test/workbook/worksheet/auto_filter/tc_filters.rb b/test/workbook/worksheet/auto_filter/tc_filters.rb
index dae85b19..e755825b 100644
--- a/test/workbook/worksheet/auto_filter/tc_filters.rb
+++ b/test/workbook/worksheet/auto_filter/tc_filters.rb
@@ -2,15 +2,13 @@ require 'tc_helper.rb'
class TestFilters < Test::Unit::TestCase
def setup
- @filters = Axlsx::Filters.new(:filter_items => [1, 'a'], :date_group_items =>[ { :date_time_grouping => :year, :year => 2012 } ] , :blank => true)
+ @filters = Axlsx::Filters.new(:filter_items => [1, 'a'],
+ :date_group_items =>[ { :date_time_grouping => :year, :year => 2011, :month => 11, :day => 11, :hour => 0, :minute => 0, :second => 0 } ] ,
+ :blank => true)
end
- def test_initialize
- assert_equal Axlsx::Filters::CALENDAR_TYPES.first, @filters.calendar_type
- end
-
- def blank
- assert_equal false, @filters.blank
+ def test_blank
+ assert_equal true, @filters.blank
assert_raise(ArgumentError) { @filters.blank = :only_if_you_want_it }
@filters.blank = true
assert_equal true, @filters.blank
@@ -31,6 +29,22 @@ class TestFilters < Test::Unit::TestCase
assert @filters.date_group_items.is_a?(Array)
assert_equal 1, @filters.date_group_items.size
end
+
+ def test_apply_is_false_for_matching_values
+ keeper = Object.new
+ def keeper.value; 'a'; end
+ assert_equal false, @filters.apply(keeper)
+ end
+ def test_apply_is_true_for_non_matching_values
+ hidden = Object.new
+ def hidden.value; 'b'; end
+ assert_equal true, @filters.apply(hidden)
+ end
+
+ def test_to_xml_string
+ doc = Nokogiri::XML(@filters.to_xml_string)
+ assert_equal(1, doc.xpath('//filters[@blank="true"]').size)
+ end
end