caxlsx 3.1.1 → 3.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +43 -1
- data/README.md +4 -11
- data/lib/axlsx/content_type/abstract_content_type.rb +1 -1
- data/lib/axlsx/doc_props/app.rb +1 -1
- data/lib/axlsx/drawing/chart.rb +25 -2
- data/lib/axlsx/drawing/d_lbls.rb +3 -2
- data/lib/axlsx/drawing/scatter_series.rb +31 -0
- data/lib/axlsx/drawing/title.rb +11 -1
- data/lib/axlsx/drawing/view_3D.rb +1 -1
- data/lib/axlsx/package.rb +15 -5
- data/lib/axlsx/rels/relationship.rb +1 -1
- data/lib/axlsx/stylesheet/border.rb +2 -0
- data/lib/axlsx/stylesheet/font.rb +1 -1
- data/lib/axlsx/stylesheet/styles.rb +139 -24
- data/lib/axlsx/util/constants.rb +16 -1
- data/lib/axlsx/util/serialized_attributes.rb +2 -2
- data/lib/axlsx/util/storage.rb +9 -9
- data/lib/axlsx/version.rb +1 -1
- data/lib/axlsx/workbook/workbook.rb +55 -0
- data/lib/axlsx/workbook/worksheet/border_creator.rb +76 -0
- data/lib/axlsx/workbook/worksheet/cell.rb +29 -2
- data/lib/axlsx/workbook/worksheet/cell_serializer.rb +1 -1
- data/lib/axlsx/workbook/worksheet/col.rb +4 -4
- data/lib/axlsx/workbook/worksheet/data_validation.rb +26 -5
- data/lib/axlsx/workbook/worksheet/pivot_table.rb +55 -14
- data/lib/axlsx/workbook/worksheet/rich_text_run.rb +1 -1
- data/lib/axlsx/workbook/worksheet/worksheet.rb +68 -7
- data/lib/axlsx.rb +43 -10
- metadata +6 -253
- data/test/benchmark.rb +0 -72
- data/test/content_type/tc_content_type.rb +0 -76
- data/test/content_type/tc_default.rb +0 -16
- data/test/content_type/tc_override.rb +0 -14
- data/test/doc_props/tc_app.rb +0 -43
- data/test/doc_props/tc_core.rb +0 -42
- data/test/drawing/tc_area_chart.rb +0 -39
- data/test/drawing/tc_area_series.rb +0 -71
- data/test/drawing/tc_axes.rb +0 -8
- data/test/drawing/tc_axis.rb +0 -112
- data/test/drawing/tc_bar_3D_chart.rb +0 -86
- data/test/drawing/tc_bar_chart.rb +0 -86
- data/test/drawing/tc_bar_series.rb +0 -46
- data/test/drawing/tc_bubble_chart.rb +0 -44
- data/test/drawing/tc_bubble_series.rb +0 -21
- data/test/drawing/tc_cat_axis.rb +0 -31
- data/test/drawing/tc_cat_axis_data.rb +0 -27
- data/test/drawing/tc_chart.rb +0 -123
- data/test/drawing/tc_d_lbls.rb +0 -57
- data/test/drawing/tc_data_source.rb +0 -23
- data/test/drawing/tc_drawing.rb +0 -80
- data/test/drawing/tc_graphic_frame.rb +0 -27
- data/test/drawing/tc_hyperlink.rb +0 -64
- data/test/drawing/tc_line_3d_chart.rb +0 -47
- data/test/drawing/tc_line_chart.rb +0 -39
- data/test/drawing/tc_line_series.rb +0 -71
- data/test/drawing/tc_marker.rb +0 -44
- data/test/drawing/tc_named_axis_data.rb +0 -27
- data/test/drawing/tc_num_data.rb +0 -31
- data/test/drawing/tc_num_val.rb +0 -29
- data/test/drawing/tc_one_cell_anchor.rb +0 -66
- data/test/drawing/tc_pic.rb +0 -103
- data/test/drawing/tc_picture_locking.rb +0 -72
- data/test/drawing/tc_pie_3D_chart.rb +0 -28
- data/test/drawing/tc_pie_series.rb +0 -33
- data/test/drawing/tc_scaling.rb +0 -36
- data/test/drawing/tc_scatter_chart.rb +0 -48
- data/test/drawing/tc_scatter_series.rb +0 -56
- data/test/drawing/tc_ser_axis.rb +0 -31
- data/test/drawing/tc_series.rb +0 -23
- data/test/drawing/tc_series_title.rb +0 -54
- data/test/drawing/tc_str_data.rb +0 -18
- data/test/drawing/tc_str_val.rb +0 -30
- data/test/drawing/tc_title.rb +0 -70
- data/test/drawing/tc_two_cell_anchor.rb +0 -36
- data/test/drawing/tc_val_axis.rb +0 -24
- data/test/drawing/tc_view_3D.rb +0 -54
- data/test/drawing/tc_vml_drawing.rb +0 -25
- data/test/drawing/tc_vml_shape.rb +0 -106
- data/test/fixtures/image1.gif +0 -0
- data/test/fixtures/image1.jpeg +0 -0
- data/test/fixtures/image1.jpg +0 -0
- data/test/fixtures/image1.png +0 -0
- data/test/fixtures/image1_fake.jpg +0 -0
- data/test/profile.rb +0 -24
- data/test/rels/tc_relationship.rb +0 -52
- data/test/rels/tc_relationships.rb +0 -37
- data/test/stylesheet/tc_border.rb +0 -37
- data/test/stylesheet/tc_border_pr.rb +0 -32
- data/test/stylesheet/tc_cell_alignment.rb +0 -81
- data/test/stylesheet/tc_cell_protection.rb +0 -29
- data/test/stylesheet/tc_cell_style.rb +0 -57
- data/test/stylesheet/tc_color.rb +0 -43
- data/test/stylesheet/tc_dxf.rb +0 -81
- data/test/stylesheet/tc_fill.rb +0 -18
- data/test/stylesheet/tc_font.rb +0 -133
- data/test/stylesheet/tc_gradient_fill.rb +0 -72
- data/test/stylesheet/tc_gradient_stop.rb +0 -31
- data/test/stylesheet/tc_num_fmt.rb +0 -30
- data/test/stylesheet/tc_pattern_fill.rb +0 -43
- data/test/stylesheet/tc_styles.rb +0 -261
- data/test/stylesheet/tc_table_style.rb +0 -44
- data/test/stylesheet/tc_table_style_element.rb +0 -45
- data/test/stylesheet/tc_table_styles.rb +0 -29
- data/test/stylesheet/tc_xf.rb +0 -120
- data/test/tc_axlsx.rb +0 -109
- data/test/tc_helper.rb +0 -10
- data/test/tc_package.rb +0 -314
- data/test/util/tc_mime_type_utils.rb +0 -13
- data/test/util/tc_serialized_attributes.rb +0 -19
- data/test/util/tc_simple_typed_list.rb +0 -77
- data/test/util/tc_validators.rb +0 -210
- data/test/workbook/tc_defined_name.rb +0 -49
- data/test/workbook/tc_shared_strings_table.rb +0 -59
- data/test/workbook/tc_workbook.rb +0 -160
- data/test/workbook/tc_workbook_view.rb +0 -50
- data/test/workbook/worksheet/auto_filter/tc_auto_filter.rb +0 -38
- data/test/workbook/worksheet/auto_filter/tc_filter_column.rb +0 -76
- data/test/workbook/worksheet/auto_filter/tc_filters.rb +0 -50
- data/test/workbook/worksheet/tc_break.rb +0 -49
- data/test/workbook/worksheet/tc_cell.rb +0 -453
- data/test/workbook/worksheet/tc_cfvo.rb +0 -31
- data/test/workbook/worksheet/tc_col.rb +0 -93
- data/test/workbook/worksheet/tc_color_scale.rb +0 -58
- data/test/workbook/worksheet/tc_comment.rb +0 -72
- data/test/workbook/worksheet/tc_comments.rb +0 -57
- data/test/workbook/worksheet/tc_conditional_formatting.rb +0 -224
- data/test/workbook/worksheet/tc_data_bar.rb +0 -46
- data/test/workbook/worksheet/tc_data_validation.rb +0 -265
- data/test/workbook/worksheet/tc_date_time_converter.rb +0 -124
- data/test/workbook/worksheet/tc_header_footer.rb +0 -151
- data/test/workbook/worksheet/tc_icon_set.rb +0 -45
- data/test/workbook/worksheet/tc_outline_pr.rb +0 -19
- data/test/workbook/worksheet/tc_page_margins.rb +0 -97
- data/test/workbook/worksheet/tc_page_set_up_pr.rb +0 -15
- data/test/workbook/worksheet/tc_page_setup.rb +0 -143
- data/test/workbook/worksheet/tc_pane.rb +0 -54
- data/test/workbook/worksheet/tc_pivot_table.rb +0 -143
- data/test/workbook/worksheet/tc_pivot_table_cache_definition.rb +0 -62
- data/test/workbook/worksheet/tc_print_options.rb +0 -72
- data/test/workbook/worksheet/tc_protected_range.rb +0 -17
- data/test/workbook/worksheet/tc_rich_text.rb +0 -44
- data/test/workbook/worksheet/tc_rich_text_run.rb +0 -173
- data/test/workbook/worksheet/tc_row.rb +0 -160
- data/test/workbook/worksheet/tc_selection.rb +0 -55
- data/test/workbook/worksheet/tc_sheet_calc_pr.rb +0 -18
- data/test/workbook/worksheet/tc_sheet_format_pr.rb +0 -88
- data/test/workbook/worksheet/tc_sheet_pr.rb +0 -49
- data/test/workbook/worksheet/tc_sheet_protection.rb +0 -117
- data/test/workbook/worksheet/tc_sheet_view.rb +0 -214
- data/test/workbook/worksheet/tc_table.rb +0 -77
- data/test/workbook/worksheet/tc_table_style_info.rb +0 -53
- data/test/workbook/worksheet/tc_worksheet.rb +0 -601
- data/test/workbook/worksheet/tc_worksheet_hyperlink.rb +0 -55
@@ -1,124 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require 'tc_helper.rb'
|
3
|
-
|
4
|
-
class TestDateTimeConverter < Test::Unit::TestCase
|
5
|
-
def setup
|
6
|
-
@margin_of_error = 0.000_001
|
7
|
-
@extended_time_range = begin
|
8
|
-
Time.parse "1893-08-05"
|
9
|
-
Time.parse "9999-12-31T23:59:59Z"
|
10
|
-
true
|
11
|
-
rescue
|
12
|
-
false
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_date_to_serial_1900
|
17
|
-
Axlsx::Workbook.date1904 = false
|
18
|
-
tests = if @extended_time_range
|
19
|
-
{ # examples taken straight from the spec
|
20
|
-
"1893-08-05" => -2338.0,
|
21
|
-
"1900-01-01" => 2.0,
|
22
|
-
"1910-02-03" => 3687.0,
|
23
|
-
"2006-02-01" => 38749.0,
|
24
|
-
"9999-12-31" => 2958465.0
|
25
|
-
}
|
26
|
-
else
|
27
|
-
{ # examples taken inside the possible values
|
28
|
-
"1970-01-01" => 25569.0, # Unix epoch
|
29
|
-
"1970-01-02" => 25570.0,
|
30
|
-
"2006-02-01" => 38749.0,
|
31
|
-
"2038-01-19" => 50424.0, # max date using signed timestamp in 32bit
|
32
|
-
}
|
33
|
-
end
|
34
|
-
tests.each do |date_string, expected|
|
35
|
-
serial = Axlsx::DateTimeConverter::date_to_serial Date.parse(date_string)
|
36
|
-
assert_equal expected, serial
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_date_to_serial_1904
|
41
|
-
Axlsx::Workbook.date1904 = true
|
42
|
-
tests = if @extended_time_range
|
43
|
-
{ # examples taken straight from the spec
|
44
|
-
"1893-08-05" => -3800.0,
|
45
|
-
"1904-01-01" => 0.0,
|
46
|
-
"1910-02-03" => 2225.0,
|
47
|
-
"2006-02-01" => 37287.0,
|
48
|
-
"9999-12-31" => 2957003.0
|
49
|
-
}
|
50
|
-
else
|
51
|
-
{ # examples taken inside the possible values
|
52
|
-
"1970-01-01" => 24107.0, # Unix epoch
|
53
|
-
"1970-01-02" => 24108.0,
|
54
|
-
"2006-02-01" => 37287.0,
|
55
|
-
"2038-01-19" => 48962.0, # max date using signed timestamp in 32bit
|
56
|
-
}
|
57
|
-
end
|
58
|
-
tests.each do |date_string, expected|
|
59
|
-
serial = Axlsx::DateTimeConverter::date_to_serial Date.parse(date_string)
|
60
|
-
assert_equal expected, serial
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
def test_time_to_serial_1900
|
65
|
-
Axlsx::Workbook.date1904 = false
|
66
|
-
tests = if @extended_time_range
|
67
|
-
{ # examples taken straight from the spec
|
68
|
-
"1893-08-05T00:00:01Z" => -2337.999989,
|
69
|
-
"1899-12-28T18:00:00Z" => -1.25,
|
70
|
-
"1910-02-03T10:05:54Z" => 3687.4207639,
|
71
|
-
"1900-01-01T12:00:00Z" => 2.5, # wrongly indicated as 1.5 in the spec!
|
72
|
-
"9999-12-31T23:59:59Z" => 2958465.9999884
|
73
|
-
}
|
74
|
-
else
|
75
|
-
{ # examples taken inside the possible values
|
76
|
-
"1970-01-01T00:00:00Z" => 25569.0, # Unix epoch
|
77
|
-
"1970-01-01T12:00:00Z" => 25569.5,
|
78
|
-
"2000-01-01T00:00:00Z" => 36526.0,
|
79
|
-
"2038-01-19T03:14:07Z" => 50424.134803, # max signed timestamp in 32bit
|
80
|
-
}
|
81
|
-
end
|
82
|
-
tests.each do |time_string, expected|
|
83
|
-
serial = Axlsx::DateTimeConverter::time_to_serial Time.parse(time_string)
|
84
|
-
assert_in_delta expected, serial, @margin_of_error
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_time_to_serial_1904
|
89
|
-
Axlsx::Workbook.date1904 = true
|
90
|
-
# ruby 1.8.7 cannot parse dates prior to epoch. see http://ruby-doc.org/core-1.8.7/Time.html
|
91
|
-
|
92
|
-
tests = if @extended_time_range
|
93
|
-
{ # examples taken straight from the spec
|
94
|
-
"1893-08-05T00:00:01Z" => -3799.999989,
|
95
|
-
"1910-02-03T10:05:54Z" => 2225.4207639,
|
96
|
-
"1904-01-01T12:00:00Z" => 0.5000000,
|
97
|
-
"9999-12-31T23:59:59Z" => 2957003.9999884
|
98
|
-
}
|
99
|
-
else
|
100
|
-
{ # examples taken inside the possible values
|
101
|
-
"1970-01-01T00:00:00Z" => 24107.0, # Unix epoch
|
102
|
-
"1970-01-01T12:00:00Z" => 24107.5,
|
103
|
-
"2000-01-01T00:00:00Z" => 35064.0,
|
104
|
-
"2038-01-19T03:14:07Z" => 48962.134803, # max signed timestamp in 32bit
|
105
|
-
}
|
106
|
-
end
|
107
|
-
tests.each do |time_string, expected|
|
108
|
-
serial = Axlsx::DateTimeConverter::time_to_serial Time.parse(time_string)
|
109
|
-
assert_in_delta expected, serial, @margin_of_error
|
110
|
-
end
|
111
|
-
end
|
112
|
-
|
113
|
-
def test_timezone
|
114
|
-
|
115
|
-
utc = Time.utc 2012 # January 1st, 2012 at 0:00 UTC
|
116
|
-
local = Time.parse "2012-01-01 09:00:00 +0900"
|
117
|
-
|
118
|
-
assert_equal local, utc
|
119
|
-
assert_equal Axlsx::DateTimeConverter::time_to_serial(local) - local.utc_offset.to_f/86400, Axlsx::DateTimeConverter::time_to_serial(utc)
|
120
|
-
Axlsx::Workbook.date1904 = true
|
121
|
-
assert_equal Axlsx::DateTimeConverter::time_to_serial(local) - local.utc_offset.to_f/86400, Axlsx::DateTimeConverter::time_to_serial(utc)
|
122
|
-
end
|
123
|
-
|
124
|
-
end
|
@@ -1,151 +0,0 @@
|
|
1
|
-
require 'tc_helper'
|
2
|
-
|
3
|
-
class TestHeaderFooter < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@p = Axlsx::Package.new
|
7
|
-
ws = @p.workbook.add_worksheet :name => 'test'
|
8
|
-
@hf = ws.header_footer
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_initialize
|
12
|
-
assert_equal(nil, @hf.odd_header)
|
13
|
-
assert_equal(nil, @hf.odd_footer)
|
14
|
-
|
15
|
-
assert_equal(nil, @hf.even_header)
|
16
|
-
assert_equal(nil, @hf.even_footer)
|
17
|
-
|
18
|
-
assert_equal(nil, @hf.first_header)
|
19
|
-
assert_equal(nil, @hf.first_footer)
|
20
|
-
|
21
|
-
assert_equal(nil, @hf.different_first)
|
22
|
-
assert_equal(nil, @hf.different_odd_even)
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_initialize_with_options
|
26
|
-
header_footer = {
|
27
|
-
:odd_header => 'oh',
|
28
|
-
:odd_footer => 'of',
|
29
|
-
|
30
|
-
:even_header => 'eh',
|
31
|
-
:even_footer => 'ef',
|
32
|
-
|
33
|
-
:first_header => 'fh',
|
34
|
-
:first_footer => 'ff',
|
35
|
-
|
36
|
-
:different_first => true,
|
37
|
-
:different_odd_even => true
|
38
|
-
}
|
39
|
-
optioned = @p.workbook.add_worksheet(:name => 'optioned', :header_footer => header_footer).header_footer
|
40
|
-
|
41
|
-
assert_equal('oh', optioned.odd_header)
|
42
|
-
assert_equal('of', optioned.odd_footer)
|
43
|
-
|
44
|
-
assert_equal('eh', optioned.even_header)
|
45
|
-
assert_equal('ef', optioned.even_footer)
|
46
|
-
|
47
|
-
assert_equal('fh', optioned.first_header)
|
48
|
-
assert_equal('ff', optioned.first_footer)
|
49
|
-
|
50
|
-
assert_equal(true, optioned.different_first)
|
51
|
-
assert_equal(true, optioned.different_odd_even)
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_string_attributes
|
55
|
-
%w(odd_header odd_footer even_header even_footer first_header first_footer).each do |attr|
|
56
|
-
assert_raise(ArgumentError, 'only strings allowed in string attributes') { @hf.send("#{attr}=", 1) }
|
57
|
-
assert_nothing_raised { @hf.send("#{attr}=", 'test_string') }
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_boolean_attributes
|
62
|
-
%w(different_first different_odd_even).each do |attr|
|
63
|
-
assert_raise(ArgumentError, 'only booleanish allowed in string attributes') { @hf.send("#{attr}=", 'foo') }
|
64
|
-
assert_nothing_raised { @hf.send("#{attr}=", 1) }
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_set_all_values
|
69
|
-
@hf.set(
|
70
|
-
:odd_header => 'oh',
|
71
|
-
:odd_footer => 'of',
|
72
|
-
|
73
|
-
:even_header => 'eh',
|
74
|
-
:even_footer => 'ef',
|
75
|
-
|
76
|
-
:first_header => 'fh',
|
77
|
-
:first_footer => 'ff',
|
78
|
-
|
79
|
-
:different_first => true,
|
80
|
-
:different_odd_even => true
|
81
|
-
)
|
82
|
-
|
83
|
-
assert_equal('oh', @hf.odd_header)
|
84
|
-
assert_equal('of', @hf.odd_footer)
|
85
|
-
|
86
|
-
assert_equal('eh', @hf.even_header)
|
87
|
-
assert_equal('ef', @hf.even_footer)
|
88
|
-
|
89
|
-
assert_equal('fh', @hf.first_header)
|
90
|
-
assert_equal('ff', @hf.first_footer)
|
91
|
-
|
92
|
-
assert_equal(true, @hf.different_first)
|
93
|
-
assert_equal(true, @hf.different_odd_even)
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_to_xml_all_values
|
97
|
-
@hf.set(
|
98
|
-
:odd_header => 'oh',
|
99
|
-
:odd_footer => 'of',
|
100
|
-
|
101
|
-
:even_header => 'eh',
|
102
|
-
:even_footer => 'ef',
|
103
|
-
|
104
|
-
:first_header => 'fh',
|
105
|
-
:first_footer => 'ff',
|
106
|
-
|
107
|
-
:different_first => true,
|
108
|
-
:different_odd_even => true
|
109
|
-
)
|
110
|
-
|
111
|
-
doc = Nokogiri::XML.parse(@hf.to_xml_string)
|
112
|
-
assert_equal(1, doc.xpath(".//headerFooter[@differentFirst=1][@differentOddEven=1]").size)
|
113
|
-
|
114
|
-
assert_equal(1, doc.xpath(".//headerFooter/oddHeader").size)
|
115
|
-
assert_equal('oh', doc.xpath(".//headerFooter/oddHeader").text)
|
116
|
-
assert_equal(1, doc.xpath(".//headerFooter/oddFooter").size)
|
117
|
-
assert_equal('of', doc.xpath(".//headerFooter/oddFooter").text)
|
118
|
-
|
119
|
-
assert_equal(1, doc.xpath(".//headerFooter/evenHeader").size)
|
120
|
-
assert_equal('eh', doc.xpath(".//headerFooter/evenHeader").text)
|
121
|
-
assert_equal(1, doc.xpath(".//headerFooter/evenFooter").size)
|
122
|
-
assert_equal('ef', doc.xpath(".//headerFooter/evenFooter").text)
|
123
|
-
|
124
|
-
assert_equal(1, doc.xpath(".//headerFooter/firstHeader").size)
|
125
|
-
assert_equal('fh', doc.xpath(".//headerFooter/firstHeader").text)
|
126
|
-
assert_equal(1, doc.xpath(".//headerFooter/firstFooter").size)
|
127
|
-
assert_equal('ff', doc.xpath(".//headerFooter/firstFooter").text)
|
128
|
-
end
|
129
|
-
|
130
|
-
def test_to_xml_some_values
|
131
|
-
@hf.set(
|
132
|
-
:odd_header => 'oh',
|
133
|
-
:different_odd_even => false
|
134
|
-
)
|
135
|
-
|
136
|
-
doc = Nokogiri::XML.parse(@hf.to_xml_string)
|
137
|
-
assert_equal(1, doc.xpath(".//headerFooter[@differentOddEven=0]").size)
|
138
|
-
assert_equal(0, doc.xpath(".//headerFooter[@differentFirst]").size)
|
139
|
-
|
140
|
-
assert_equal(1, doc.xpath(".//headerFooter/oddHeader").size)
|
141
|
-
assert_equal('oh', doc.xpath(".//headerFooter/oddHeader").text)
|
142
|
-
assert_equal(0, doc.xpath(".//headerFooter/oddFooter").size)
|
143
|
-
|
144
|
-
assert_equal(0, doc.xpath(".//headerFooter/evenHeader").size)
|
145
|
-
assert_equal(0, doc.xpath(".//headerFooter/evenFooter").size)
|
146
|
-
|
147
|
-
assert_equal(0, doc.xpath(".//headerFooter/firstHeader").size)
|
148
|
-
assert_equal(0, doc.xpath(".//headerFooter/firstFooter").size)
|
149
|
-
end
|
150
|
-
end
|
151
|
-
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'tc_helper.rb'
|
2
|
-
|
3
|
-
class TestIconSet < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@icon_set = Axlsx::IconSet.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_defaults
|
9
|
-
assert_equal @icon_set.iconSet, "3TrafficLights1"
|
10
|
-
assert_equal @icon_set.percent, true
|
11
|
-
assert_equal @icon_set.reverse, false
|
12
|
-
assert_equal @icon_set.showValue, true
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_icon_set
|
16
|
-
assert_raise(ArgumentError) { @icon_set.iconSet = "invalid_value" }
|
17
|
-
assert_nothing_raised { @icon_set.iconSet = "5Rating"}
|
18
|
-
assert_equal(@icon_set.iconSet, "5Rating")
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_percent
|
22
|
-
assert_raise(ArgumentError) { @icon_set.percent = :invalid_type }
|
23
|
-
assert_nothing_raised { @icon_set.percent = false}
|
24
|
-
assert_equal(@icon_set.percent, false)
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_showValue
|
28
|
-
assert_raise(ArgumentError) { @icon_set.showValue = :invalid_type }
|
29
|
-
assert_nothing_raised { @icon_set.showValue = false}
|
30
|
-
assert_equal(@icon_set.showValue, false)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_reverse
|
34
|
-
assert_raise(ArgumentError) { @icon_set.reverse = :invalid_type }
|
35
|
-
assert_nothing_raised { @icon_set.reverse = false}
|
36
|
-
assert_equal(@icon_set.reverse, false)
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_to_xml_string
|
40
|
-
doc = Nokogiri::XML.parse(@icon_set.to_xml_string)
|
41
|
-
assert_equal(doc.xpath(".//iconSet[@iconSet='3TrafficLights1'][@percent=1][@reverse=0][@showValue=1]").size, 1)
|
42
|
-
assert_equal(doc.xpath(".//iconSet//cfvo").size, 3)
|
43
|
-
end
|
44
|
-
|
45
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'tc_helper.rb'
|
2
|
-
|
3
|
-
class TestOutlinePr < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@outline_pr = Axlsx::OutlinePr.new(:summary_below => false, :summary_right => true, :apply_styles => false)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_summary_below
|
9
|
-
assert_equal false, @outline_pr.summary_below
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_summary_right
|
13
|
-
assert_equal true, @outline_pr.summary_right
|
14
|
-
end
|
15
|
-
|
16
|
-
def test_apply_styles
|
17
|
-
assert_equal false, @outline_pr.apply_styles
|
18
|
-
end
|
19
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
require 'tc_helper.rb'
|
2
|
-
|
3
|
-
class TestPageMargins < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
p = Axlsx::Package.new
|
7
|
-
ws = p.workbook.add_worksheet :name=>"hmmm"
|
8
|
-
@pm = ws.page_margins
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_initialize
|
12
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_LEFT_RIGHT, @pm.left)
|
13
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_LEFT_RIGHT, @pm.right)
|
14
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.top)
|
15
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.bottom)
|
16
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.header)
|
17
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.footer)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_initialize_with_options
|
21
|
-
optioned = Axlsx::PageMargins.new(:left => 2, :right => 3, :top => 2, :bottom => 1, :header => 0.1, :footer => 0.1)
|
22
|
-
assert_equal(2, optioned.left)
|
23
|
-
assert_equal(3, optioned.right)
|
24
|
-
assert_equal(2, optioned.top)
|
25
|
-
assert_equal(1, optioned.bottom)
|
26
|
-
assert_equal(0.1, optioned.header)
|
27
|
-
assert_equal(0.1, optioned.footer)
|
28
|
-
end
|
29
|
-
|
30
|
-
|
31
|
-
def test_set_all_values
|
32
|
-
@pm.set(:left => 1.1, :right => 1.2, :top => 1.3, :bottom => 1.4, :header => 0.8, :footer => 0.9)
|
33
|
-
assert_equal(1.1, @pm.left)
|
34
|
-
assert_equal(1.2, @pm.right)
|
35
|
-
assert_equal(1.3, @pm.top)
|
36
|
-
assert_equal(1.4, @pm.bottom)
|
37
|
-
assert_equal(0.8, @pm.header)
|
38
|
-
assert_equal(0.9, @pm.footer)
|
39
|
-
end
|
40
|
-
|
41
|
-
def test_set_some_values
|
42
|
-
@pm.set(:left => 1.1, :right => 1.2)
|
43
|
-
assert_equal(1.1, @pm.left)
|
44
|
-
assert_equal(1.2, @pm.right)
|
45
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.top)
|
46
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_TOP_BOTTOM, @pm.bottom)
|
47
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.header)
|
48
|
-
assert_equal(Axlsx::PageMargins::DEFAULT_HEADER_FOOTER, @pm.footer)
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_to_xml
|
52
|
-
@pm.left = 1.1
|
53
|
-
@pm.right = 1.2
|
54
|
-
@pm.top = 1.3
|
55
|
-
@pm.bottom = 1.4
|
56
|
-
@pm.header = 0.8
|
57
|
-
@pm.footer = 0.9
|
58
|
-
doc = Nokogiri::XML.parse(@pm.to_xml_string)
|
59
|
-
assert_equal(1, doc.xpath(".//pageMargins[@left=1.1][@right=1.2][@top=1.3][@bottom=1.4][@header=0.8][@footer=0.9]").size)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_left
|
63
|
-
assert_raise(ArgumentError) { @pm.left = -1.2 }
|
64
|
-
assert_nothing_raised { @pm.left = 1.5 }
|
65
|
-
assert_equal(@pm.left, 1.5)
|
66
|
-
end
|
67
|
-
|
68
|
-
def test_right
|
69
|
-
assert_raise(ArgumentError) { @pm.right = -1.2 }
|
70
|
-
assert_nothing_raised { @pm.right = 1.5 }
|
71
|
-
assert_equal(@pm.right, 1.5)
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_top
|
75
|
-
assert_raise(ArgumentError) { @pm.top = -1.2 }
|
76
|
-
assert_nothing_raised { @pm.top = 1.5 }
|
77
|
-
assert_equal(@pm.top, 1.5)
|
78
|
-
end
|
79
|
-
|
80
|
-
def test_bottom
|
81
|
-
assert_raise(ArgumentError) { @pm.bottom = -1.2 }
|
82
|
-
assert_nothing_raised { @pm.bottom = 1.5 }
|
83
|
-
assert_equal(@pm.bottom, 1.5)
|
84
|
-
end
|
85
|
-
|
86
|
-
def test_header
|
87
|
-
assert_raise(ArgumentError) { @pm.header = -1.2 }
|
88
|
-
assert_nothing_raised { @pm.header = 1.5 }
|
89
|
-
assert_equal(@pm.header, 1.5)
|
90
|
-
end
|
91
|
-
|
92
|
-
def test_footer
|
93
|
-
assert_raise(ArgumentError) { @pm.footer = -1.2 }
|
94
|
-
assert_nothing_raised { @pm.footer = 1.5 }
|
95
|
-
assert_equal(@pm.footer, 1.5)
|
96
|
-
end
|
97
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'tc_helper.rb'
|
2
|
-
|
3
|
-
class TestPageSetUpPr < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@page_setup_pr = Axlsx::PageSetUpPr.new(:fit_to_page => true, :auto_page_breaks => true)
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_fit_to_page
|
9
|
-
assert_equal true, @page_setup_pr.fit_to_page
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_auto_page_breaks
|
13
|
-
assert_equal true, @page_setup_pr.auto_page_breaks
|
14
|
-
end
|
15
|
-
end
|
@@ -1,143 +0,0 @@
|
|
1
|
-
require 'tc_helper.rb'
|
2
|
-
|
3
|
-
class TestPageSetup < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@p = Axlsx::Package.new
|
7
|
-
ws = @p.workbook.add_worksheet :name => "hmmm"
|
8
|
-
@ps = ws.page_setup
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_initialize
|
12
|
-
assert_equal(nil, @ps.fit_to_height)
|
13
|
-
assert_equal(nil, @ps.fit_to_width)
|
14
|
-
assert_equal(nil, @ps.orientation)
|
15
|
-
assert_equal(nil, @ps.paper_height)
|
16
|
-
assert_equal(nil, @ps.paper_width)
|
17
|
-
assert_equal(nil, @ps.scale)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_initialize_with_options
|
21
|
-
page_setup = { :fit_to_height => 1,
|
22
|
-
:fit_to_width => 2,
|
23
|
-
:orientation => :landscape,
|
24
|
-
:paper_height => "297mm",
|
25
|
-
:paper_width => "210mm",
|
26
|
-
:scale => 50 }
|
27
|
-
|
28
|
-
optioned = @p.workbook.add_worksheet(:name => 'optioned', :page_setup => page_setup).page_setup
|
29
|
-
assert_equal(1, optioned.fit_to_height)
|
30
|
-
assert_equal(2, optioned.fit_to_width)
|
31
|
-
assert_equal(:landscape, optioned.orientation)
|
32
|
-
assert_equal("297mm", optioned.paper_height)
|
33
|
-
assert_equal("210mm", optioned.paper_width)
|
34
|
-
assert_equal(50, optioned.scale)
|
35
|
-
end
|
36
|
-
|
37
|
-
def test_set_all_values
|
38
|
-
@ps.set(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
|
39
|
-
assert_equal(1, @ps.fit_to_height)
|
40
|
-
assert_equal(2, @ps.fit_to_width)
|
41
|
-
assert_equal(:landscape, @ps.orientation)
|
42
|
-
assert_equal("297mm", @ps.paper_height)
|
43
|
-
assert_equal("210mm", @ps.paper_width)
|
44
|
-
assert_equal(50, @ps.scale)
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_paper_size
|
48
|
-
assert_raise(ArgumentError) { @ps.paper_size = 119 }
|
49
|
-
assert_nothing_raised { @ps.paper_size = 10 }
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_set_some_values
|
53
|
-
@ps.set(:fit_to_width => 2, :orientation => :portrait)
|
54
|
-
assert_equal(2, @ps.fit_to_width)
|
55
|
-
assert_equal(:portrait, @ps.orientation)
|
56
|
-
assert_equal(nil, @ps.fit_to_height)
|
57
|
-
assert_equal(nil, @ps.paper_height)
|
58
|
-
assert_equal(nil, @ps.paper_width)
|
59
|
-
assert_equal(nil, @ps.scale)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_default_fit_to_page?
|
63
|
-
assert(@ps.fit_to_width == nil && @ps.fit_to_height == nil)
|
64
|
-
assert(@ps.fit_to_page? == false)
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_with_height_fit_to_page?
|
68
|
-
assert(@ps.fit_to_width == nil && @ps.fit_to_height == nil)
|
69
|
-
@ps.set(:fit_to_height => 1)
|
70
|
-
assert(@ps.fit_to_page?)
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_with_width_fit_to_page?
|
74
|
-
assert(@ps.fit_to_width == nil && @ps.fit_to_height == nil)
|
75
|
-
@ps.set(:fit_to_width => 1)
|
76
|
-
assert(@ps.fit_to_page?)
|
77
|
-
end
|
78
|
-
|
79
|
-
def test_to_xml_all_values
|
80
|
-
@ps.set(:fit_to_height => 1, :fit_to_width => 2, :orientation => :landscape, :paper_height => "297mm", :paper_width => "210mm", :scale => 50)
|
81
|
-
doc = Nokogiri::XML.parse(@ps.to_xml_string)
|
82
|
-
assert_equal(1, doc.xpath(".//pageSetup[@fitToHeight='1'][@fitToWidth='2'][@orientation='landscape'][@paperHeight='297mm'][@paperWidth='210mm'][@scale='50']").size)
|
83
|
-
end
|
84
|
-
|
85
|
-
def test_to_xml_some_values
|
86
|
-
@ps.set(:orientation => :portrait)
|
87
|
-
doc = Nokogiri::XML.parse(@ps.to_xml_string)
|
88
|
-
assert_equal(1, doc.xpath(".//pageSetup[@orientation='portrait']").size)
|
89
|
-
assert_equal(0, doc.xpath(".//pageSetup[@fitToHeight]").size)
|
90
|
-
assert_equal(0, doc.xpath(".//pageSetup[@fitToWidth]").size)
|
91
|
-
assert_equal(0, doc.xpath(".//pageSetup[@paperHeight]").size)
|
92
|
-
assert_equal(0, doc.xpath(".//pageSetup[@paperWidth]").size)
|
93
|
-
assert_equal(0, doc.xpath(".//pageSetup[@scale]").size)
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_fit_to_height
|
97
|
-
assert_raise(ArgumentError) { @ps.fit_to_height = 1.5 }
|
98
|
-
assert_nothing_raised { @ps.fit_to_height = 2 }
|
99
|
-
assert_equal(2, @ps.fit_to_height)
|
100
|
-
end
|
101
|
-
|
102
|
-
def test_fit_to_width
|
103
|
-
assert_raise(ArgumentError) { @ps.fit_to_width = false }
|
104
|
-
assert_nothing_raised { @ps.fit_to_width = 1 }
|
105
|
-
assert_equal(1, @ps.fit_to_width)
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_orientation
|
109
|
-
assert_raise(ArgumentError) { @ps.orientation = "" }
|
110
|
-
assert_nothing_raised { @ps.orientation = :default }
|
111
|
-
assert_equal(:default, @ps.orientation)
|
112
|
-
end
|
113
|
-
|
114
|
-
def test_paper_height
|
115
|
-
assert_raise(ArgumentError) { @ps.paper_height = 99 }
|
116
|
-
assert_nothing_raised { @ps.paper_height = "11in" }
|
117
|
-
assert_equal("11in", @ps.paper_height)
|
118
|
-
end
|
119
|
-
|
120
|
-
def test_paper_width
|
121
|
-
assert_raise(ArgumentError) { @ps.paper_width = "22" }
|
122
|
-
assert_nothing_raised { @ps.paper_width = "29.7cm" }
|
123
|
-
assert_equal("29.7cm", @ps.paper_width)
|
124
|
-
end
|
125
|
-
|
126
|
-
def test_scale
|
127
|
-
assert_raise(ArgumentError) { @ps.scale = 50.5 }
|
128
|
-
assert_nothing_raised { @ps.scale = 99 }
|
129
|
-
assert_equal(99, @ps.scale)
|
130
|
-
end
|
131
|
-
|
132
|
-
def test_fit_to
|
133
|
-
fits = @ps.fit_to(:width => 1)
|
134
|
-
assert_equal([1, 999], fits)
|
135
|
-
fits = @ps.fit_to :height => 1
|
136
|
-
assert_equal(fits, [999 ,1])
|
137
|
-
fits = @ps.fit_to :height => 7, :width => 2
|
138
|
-
assert_equal(fits, [2, 7])
|
139
|
-
assert_raise(ArgumentError) { puts @ps.fit_to(:width => true)}
|
140
|
-
|
141
|
-
|
142
|
-
end
|
143
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
$LOAD_PATH.unshift "#{File.dirname(__FILE__)}/../../"
|
3
|
-
require 'tc_helper.rb'
|
4
|
-
|
5
|
-
class TestPane < Test::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
#inverse defaults for booleans
|
8
|
-
@nil_options = { :active_pane => :bottom_left, :state => :frozen, :top_left_cell => 'A2' }
|
9
|
-
@int_0_options = { :x_split => 2, :y_split => 2 }
|
10
|
-
@options = @nil_options.merge(@int_0_options)
|
11
|
-
@pane = Axlsx::Pane.new(@options)
|
12
|
-
end
|
13
|
-
|
14
|
-
|
15
|
-
def test_active_pane
|
16
|
-
assert_raise(ArgumentError) { @pane.active_pane = "10" }
|
17
|
-
assert_nothing_raised { @pane.active_pane = :top_left }
|
18
|
-
assert_equal(@pane.active_pane, "topLeft")
|
19
|
-
end
|
20
|
-
|
21
|
-
def test_state
|
22
|
-
assert_raise(ArgumentError) { @pane.state = "foo" }
|
23
|
-
assert_nothing_raised { @pane.state = :frozen_split }
|
24
|
-
assert_equal(@pane.state, "frozenSplit")
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_x_split
|
28
|
-
assert_raise(ArgumentError) { @pane.x_split = "foo´" }
|
29
|
-
assert_nothing_raised { @pane.x_split = 200 }
|
30
|
-
assert_equal(@pane.x_split, 200)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_y_split
|
34
|
-
assert_raise(ArgumentError) { @pane.y_split = 'foo' }
|
35
|
-
assert_nothing_raised { @pane.y_split = 300 }
|
36
|
-
assert_equal(@pane.y_split, 300)
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_top_left_cell
|
40
|
-
assert_raise(ArgumentError) { @pane.top_left_cell = :cell }
|
41
|
-
assert_nothing_raised { @pane.top_left_cell = "A2" }
|
42
|
-
assert_equal(@pane.top_left_cell, "A2")
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_to_xml
|
46
|
-
doc = Nokogiri::XML.parse(@pane.to_xml_string)
|
47
|
-
assert_equal(1, doc.xpath("//pane[@ySplit=2][@xSplit='2'][@topLeftCell='A2'][@state='frozen'][@activePane='bottomLeft']").size)
|
48
|
-
end
|
49
|
-
def test_to_xml_frozen
|
50
|
-
pane = Axlsx::Pane.new :state => :frozen, :y_split => 2
|
51
|
-
doc = Nokogiri::XML(pane.to_xml_string)
|
52
|
-
assert_equal(1, doc.xpath("//pane[@topLeftCell='A3']").size)
|
53
|
-
end
|
54
|
-
end
|