write_xlsx 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. data/.document +5 -0
  2. data/.gitattributes +1 -0
  3. data/Gemfile +12 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +82 -0
  6. data/Rakefile +78 -0
  7. data/VERSION +1 -0
  8. data/examples/a_simple.rb +45 -0
  9. data/examples/array_formula.rb +33 -0
  10. data/examples/autofilter.rb +235 -0
  11. data/examples/chart_area.rb +59 -0
  12. data/examples/chart_bar.rb +59 -0
  13. data/examples/chart_column.rb +58 -0
  14. data/examples/chart_line.rb +59 -0
  15. data/examples/chart_pie.rb +49 -0
  16. data/examples/chart_scatter.rb +59 -0
  17. data/examples/chart_stock.rb +65 -0
  18. data/examples/colors.rb +130 -0
  19. data/examples/comments1.rb +12 -0
  20. data/examples/comments2.rb +335 -0
  21. data/examples/conditional_format.rb +67 -0
  22. data/examples/data_validate.rb +279 -0
  23. data/examples/defined_name.rb +28 -0
  24. data/examples/demo.rb +104 -0
  25. data/examples/diag_border.rb +26 -0
  26. data/examples/headers.rb +119 -0
  27. data/examples/hide_sheet.rb +30 -0
  28. data/examples/hyperlink1.rb +58 -0
  29. data/examples/indent.rb +28 -0
  30. data/examples/merge1.rb +38 -0
  31. data/examples/merge2.rb +48 -0
  32. data/examples/merge3.rb +43 -0
  33. data/examples/merge4.rb +82 -0
  34. data/examples/merge5.rb +70 -0
  35. data/examples/merge6.rb +48 -0
  36. data/examples/outline.rb +252 -0
  37. data/examples/properties.rb +33 -0
  38. data/examples/protection.rb +34 -0
  39. data/examples/rich_strings.rb +42 -0
  40. data/examples/right_to_left.rb +24 -0
  41. data/examples/tab_colors.rb +26 -0
  42. data/lib/write_xlsx.rb +77 -0
  43. data/lib/write_xlsx/chart.rb +3027 -0
  44. data/lib/write_xlsx/chart/area.rb +52 -0
  45. data/lib/write_xlsx/chart/bar.rb +126 -0
  46. data/lib/write_xlsx/chart/column.rb +132 -0
  47. data/lib/write_xlsx/chart/line.rb +51 -0
  48. data/lib/write_xlsx/chart/pie.rb +210 -0
  49. data/lib/write_xlsx/chart/scatter.rb +252 -0
  50. data/lib/write_xlsx/chart/stock.rb +134 -0
  51. data/lib/write_xlsx/chartsheet.rb +173 -0
  52. data/lib/write_xlsx/colors.rb +65 -0
  53. data/lib/write_xlsx/compatibility.rb +71 -0
  54. data/lib/write_xlsx/drawing.rb +547 -0
  55. data/lib/write_xlsx/format.rb +683 -0
  56. data/lib/write_xlsx/package/app.rb +218 -0
  57. data/lib/write_xlsx/package/comments.rb +221 -0
  58. data/lib/write_xlsx/package/content_types.rb +189 -0
  59. data/lib/write_xlsx/package/core.rb +196 -0
  60. data/lib/write_xlsx/package/packager.rb +510 -0
  61. data/lib/write_xlsx/package/relationships.rb +98 -0
  62. data/lib/write_xlsx/package/shared_strings.rb +96 -0
  63. data/lib/write_xlsx/package/styles.rb +705 -0
  64. data/lib/write_xlsx/package/theme.rb +45 -0
  65. data/lib/write_xlsx/package/vml.rb +386 -0
  66. data/lib/write_xlsx/package/xml_writer_simple.rb +90 -0
  67. data/lib/write_xlsx/utility.rb +113 -0
  68. data/lib/write_xlsx/workbook.rb +1488 -0
  69. data/lib/write_xlsx/worksheet.rb +6578 -0
  70. data/lib/write_xlsx/zip_file_utils.rb +98 -0
  71. data/test/chart/test_add_series.rb +113 -0
  72. data/test/chart/test_process_names.rb +27 -0
  73. data/test/chart/test_write_auto.rb +15 -0
  74. data/test/chart/test_write_ax_id.rb +15 -0
  75. data/test/chart/test_write_ax_pos.rb +15 -0
  76. data/test/chart/test_write_chart_space.rb +15 -0
  77. data/test/chart/test_write_cross_ax.rb +15 -0
  78. data/test/chart/test_write_crosses.rb +15 -0
  79. data/test/chart/test_write_format_code.rb +15 -0
  80. data/test/chart/test_write_idx.rb +15 -0
  81. data/test/chart/test_write_label_align.rb +15 -0
  82. data/test/chart/test_write_label_offset.rb +15 -0
  83. data/test/chart/test_write_lang.rb +15 -0
  84. data/test/chart/test_write_layout.rb +15 -0
  85. data/test/chart/test_write_legend.rb +16 -0
  86. data/test/chart/test_write_legend_pos.rb +15 -0
  87. data/test/chart/test_write_major_gridlines.rb +15 -0
  88. data/test/chart/test_write_marker.rb +17 -0
  89. data/test/chart/test_write_marker_size.rb +15 -0
  90. data/test/chart/test_write_marker_value.rb +16 -0
  91. data/test/chart/test_write_num_cache.rb +16 -0
  92. data/test/chart/test_write_num_fmt.rb +16 -0
  93. data/test/chart/test_write_number_format.rb +15 -0
  94. data/test/chart/test_write_order.rb +15 -0
  95. data/test/chart/test_write_orientation.rb +15 -0
  96. data/test/chart/test_write_page_margins.rb +15 -0
  97. data/test/chart/test_write_page_setup.rb +15 -0
  98. data/test/chart/test_write_plot_vis_only.rb +15 -0
  99. data/test/chart/test_write_pt.rb +16 -0
  100. data/test/chart/test_write_pt_count.rb +16 -0
  101. data/test/chart/test_write_series_formula.rb +16 -0
  102. data/test/chart/test_write_style.rb +41 -0
  103. data/test/chart/test_write_symbol.rb +16 -0
  104. data/test/chart/test_write_tick_lbl_pos.rb +16 -0
  105. data/test/chart/test_write_v.rb +16 -0
  106. data/test/drawing/test_drawing_chart_01.rb +50 -0
  107. data/test/drawing/test_drawing_image_01.rb +59 -0
  108. data/test/helper.rb +90 -0
  109. data/test/package/app/test_app01.rb +44 -0
  110. data/test/package/app/test_app02.rb +46 -0
  111. data/test/package/app/test_app03.rb +53 -0
  112. data/test/package/comments/test_comments01.rb +36 -0
  113. data/test/package/comments/test_write_text_t.rb +44 -0
  114. data/test/package/content_types/test_content_types.rb +35 -0
  115. data/test/package/content_types/test_write_default.rb +13 -0
  116. data/test/package/content_types/test_write_override.rb +13 -0
  117. data/test/package/core/test_core01.rb +28 -0
  118. data/test/package/core/test_core02.rb +42 -0
  119. data/test/package/relationships/test_relationships.rb +28 -0
  120. data/test/package/relationships/test_sheet_rels.rb +22 -0
  121. data/test/package/shared_strings/test_shared_strings01.rb +30 -0
  122. data/test/package/shared_strings/test_shared_strings02.rb +30 -0
  123. data/test/package/shared_strings/test_write_si.rb +13 -0
  124. data/test/package/shared_strings/test_write_sst.rb +15 -0
  125. data/test/package/styles/test_styles_01.rb +69 -0
  126. data/test/package/styles/test_styles_02.rb +104 -0
  127. data/test/package/styles/test_styles_03.rb +90 -0
  128. data/test/package/styles/test_styles_04.rb +216 -0
  129. data/test/package/styles/test_styles_05.rb +150 -0
  130. data/test/package/styles/test_styles_06.rb +104 -0
  131. data/test/package/styles/test_styles_07.rb +104 -0
  132. data/test/package/styles/test_styles_08.rb +109 -0
  133. data/test/package/styles/test_styles_09.rb +95 -0
  134. data/test/package/vml/test_vml_01.rb +42 -0
  135. data/test/package/vml/test_write_anchor.rb +14 -0
  136. data/test/package/vml/test_write_auto_fill.rb +14 -0
  137. data/test/package/vml/test_write_column.rb +14 -0
  138. data/test/package/vml/test_write_div.rb +14 -0
  139. data/test/package/vml/test_write_fill.rb +14 -0
  140. data/test/package/vml/test_write_idmap.rb +14 -0
  141. data/test/package/vml/test_write_move_with_cells.rb +14 -0
  142. data/test/package/vml/test_write_path.rb +22 -0
  143. data/test/package/vml/test_write_row.rb +14 -0
  144. data/test/package/vml/test_write_shadow.rb +14 -0
  145. data/test/package/vml/test_write_shapelayout.rb +14 -0
  146. data/test/package/vml/test_write_shapetype.rb +14 -0
  147. data/test/package/vml/test_write_size_with_cells.rb +14 -0
  148. data/test/package/vml/test_write_stroke.rb +14 -0
  149. data/test/package/vml/test_write_textbox.rb +14 -0
  150. data/test/perl_output/a_simple.xlsx +0 -0
  151. data/test/perl_output/array_formula.xlsx +0 -0
  152. data/test/perl_output/autofilter.xlsx +0 -0
  153. data/test/perl_output/chart_area.xlsx +0 -0
  154. data/test/perl_output/chart_bar.xlsx +0 -0
  155. data/test/perl_output/chart_column.xlsx +0 -0
  156. data/test/perl_output/chart_line.xlsx +0 -0
  157. data/test/perl_output/chart_pie.xlsx +0 -0
  158. data/test/perl_output/chart_scatter.xlsx +0 -0
  159. data/test/perl_output/chart_stock.xlsx +0 -0
  160. data/test/perl_output/comments1.xlsx +0 -0
  161. data/test/perl_output/comments2.xlsx +0 -0
  162. data/test/perl_output/conditional_format.xlsx +0 -0
  163. data/test/perl_output/data_validate.xlsx +0 -0
  164. data/test/perl_output/defined_name.xlsx +0 -0
  165. data/test/perl_output/demo.xlsx +0 -0
  166. data/test/perl_output/diag_border.xlsx +0 -0
  167. data/test/perl_output/fit_to_pages.xlsx +0 -0
  168. data/test/perl_output/headers.xlsx +0 -0
  169. data/test/perl_output/hide_sheet.xlsx +0 -0
  170. data/test/perl_output/hyperlink.xlsx +0 -0
  171. data/test/perl_output/indent.xlsx +0 -0
  172. data/test/perl_output/merge1.xlsx +0 -0
  173. data/test/perl_output/merge2.xlsx +0 -0
  174. data/test/perl_output/merge3.xlsx +0 -0
  175. data/test/perl_output/merge4.xlsx +0 -0
  176. data/test/perl_output/merge5.xlsx +0 -0
  177. data/test/perl_output/merge6.xlsx +0 -0
  178. data/test/perl_output/outline.xlsx +0 -0
  179. data/test/perl_output/print_scale.xlsx +0 -0
  180. data/test/perl_output/properties.xlsx +0 -0
  181. data/test/perl_output/protection.xlsx +0 -0
  182. data/test/perl_output/rich_strings.xlsx +0 -0
  183. data/test/perl_output/right_to_left.xlsx +0 -0
  184. data/test/perl_output/tab_colors.xlsx +0 -0
  185. data/test/test_delete_files.rb +37 -0
  186. data/test/test_example_match.rb +2281 -0
  187. data/test/test_xml_writer_simple.rb +63 -0
  188. data/test/workbook/test_get_chart_range.rb +59 -0
  189. data/test/workbook/test_sort_defined_names.rb +77 -0
  190. data/test/workbook/test_workbook_01.rb +29 -0
  191. data/test/workbook/test_workbook_02.rb +31 -0
  192. data/test/workbook/test_workbook_03.rb +31 -0
  193. data/test/workbook/test_workbook_new.rb +18 -0
  194. data/test/workbook/test_write_defined_name.rb +17 -0
  195. data/test/workbook/test_write_defined_names.rb +41 -0
  196. data/test/worksheet/test_calculate_spans.rb +58 -0
  197. data/test/worksheet/test_convert_date_time_01.rb +439 -0
  198. data/test/worksheet/test_convert_date_time_02.rb +478 -0
  199. data/test/worksheet/test_convert_date_time_03.rb +435 -0
  200. data/test/worksheet/test_extract_filter_tokens.rb +109 -0
  201. data/test/worksheet/test_parse_filter_expression.rb +143 -0
  202. data/test/worksheet/test_position_object.rb +50 -0
  203. data/test/worksheet/test_repeat_formula.rb +55 -0
  204. data/test/worksheet/test_worksheet_01.rb +32 -0
  205. data/test/worksheet/test_worksheet_02.rb +38 -0
  206. data/test/worksheet/test_worksheet_03.rb +44 -0
  207. data/test/worksheet/test_worksheet_04.rb +45 -0
  208. data/test/worksheet/test_write_array_formula_01.rb +99 -0
  209. data/test/worksheet/test_write_autofilter.rb +260 -0
  210. data/test/worksheet/test_write_brk.rb +18 -0
  211. data/test/worksheet/test_write_cell.rb +49 -0
  212. data/test/worksheet/test_write_cell_value.rb +33 -0
  213. data/test/worksheet/test_write_col_breaks.rb +27 -0
  214. data/test/worksheet/test_write_col_info.rb +95 -0
  215. data/test/worksheet/test_write_conditional_formatting.rb +72 -0
  216. data/test/worksheet/test_write_custom_filter.rb +18 -0
  217. data/test/worksheet/test_write_custom_filters.rb +25 -0
  218. data/test/worksheet/test_write_data_validation_01.rb +113 -0
  219. data/test/worksheet/test_write_data_validation_02.rb +528 -0
  220. data/test/worksheet/test_write_dimension.rb +94 -0
  221. data/test/worksheet/test_write_ext.rb +18 -0
  222. data/test/worksheet/test_write_ext_lst.rb +18 -0
  223. data/test/worksheet/test_write_filter.rb +18 -0
  224. data/test/worksheet/test_write_filter_column.rb +18 -0
  225. data/test/worksheet/test_write_filters.rb +32 -0
  226. data/test/worksheet/test_write_header_footer.rb +53 -0
  227. data/test/worksheet/test_write_hyperlink.rb +39 -0
  228. data/test/worksheet/test_write_hyperlinks.rb +27 -0
  229. data/test/worksheet/test_write_legacy_drawing.rb +19 -0
  230. data/test/worksheet/test_write_merge_cell.rb +18 -0
  231. data/test/worksheet/test_write_merge_cells.rb +192 -0
  232. data/test/worksheet/test_write_methods.rb +353 -0
  233. data/test/worksheet/test_write_mx_plv.rb +19 -0
  234. data/test/worksheet/test_write_page_margins.rb +98 -0
  235. data/test/worksheet/test_write_page_set_up_pr.rb +19 -0
  236. data/test/worksheet/test_write_page_setup.rb +54 -0
  237. data/test/worksheet/test_write_pane.rb +123 -0
  238. data/test/worksheet/test_write_phonetic_pr.rb +19 -0
  239. data/test/worksheet/test_write_print_options.rb +77 -0
  240. data/test/worksheet/test_write_row_breaks.rb +27 -0
  241. data/test/worksheet/test_write_row_element.rb +69 -0
  242. data/test/worksheet/test_write_selection.rb +18 -0
  243. data/test/worksheet/test_write_sheet_calc_pr.rb +18 -0
  244. data/test/worksheet/test_write_sheet_data.rb +18 -0
  245. data/test/worksheet/test_write_sheet_format_pr.rb +18 -0
  246. data/test/worksheet/test_write_sheet_pr.rb +36 -0
  247. data/test/worksheet/test_write_sheet_protection.rb +174 -0
  248. data/test/worksheet/test_write_sheet_view.rb +62 -0
  249. data/test/worksheet/test_write_sheet_view1.rb +64 -0
  250. data/test/worksheet/test_write_sheet_view2.rb +56 -0
  251. data/test/worksheet/test_write_sheet_view3.rb +83 -0
  252. data/test/worksheet/test_write_sheet_view4.rb +83 -0
  253. data/test/worksheet/test_write_sheet_view5.rb +74 -0
  254. data/test/worksheet/test_write_sheet_view6.rb +51 -0
  255. data/test/worksheet/test_write_sheet_view7.rb +71 -0
  256. data/test/worksheet/test_write_sheet_view8.rb +51 -0
  257. data/test/worksheet/test_write_sheet_view9.rb +51 -0
  258. data/test/worksheet/test_write_tab_color.rb +23 -0
  259. data/test/worksheet/test_write_worksheet.rb +19 -0
  260. data/write_xlsx.gemspec +308 -0
  261. metadata +363 -0
@@ -0,0 +1,353 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWriteMethods < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_with_insufficient_args_raise_InsufficientArgumentError
13
+ assert_raise(WriteXLSXInsufficientArgumentError) do
14
+ @worksheet.write()
15
+ end
16
+ assert_raise(WriteXLSXInsufficientArgumentError) do
17
+ @worksheet.write(0)
18
+ end
19
+ end
20
+
21
+ def test_write_with_valid_arg_not_raise
22
+ assert_nothing_raised do
23
+ @worksheet.write(0, 0, 1)
24
+ end
25
+
26
+ # valid cell only not raised. (but ignored)
27
+ assert_nothing_raised do
28
+ @worksheet.write(0, 0)
29
+ end
30
+ assert_nothing_raised do
31
+ @worksheet.write('A1')
32
+ end
33
+ assert_nothing_raised do
34
+ @worksheet.write(0, 0, nil)
35
+ end
36
+ end
37
+
38
+ def test_write_number_with_insufficient_args_raise_InsufficientArgumentError
39
+ assert_raise(WriteXLSXInsufficientArgumentError) do
40
+ @worksheet.write_number()
41
+ end
42
+ assert_raise(WriteXLSXInsufficientArgumentError) do
43
+ @worksheet.write_number(0)
44
+ end
45
+ assert_raise(WriteXLSXInsufficientArgumentError) do
46
+ @worksheet.write_number(0, 0)
47
+ end
48
+ assert_raise(WriteXLSXInsufficientArgumentError) do
49
+ @worksheet.write_number('A1')
50
+ end
51
+ assert_raise(WriteXLSXInsufficientArgumentError) do
52
+ @worksheet.write_number(0, 0, nil)
53
+ end
54
+ end
55
+
56
+ def test_write_number_with_valid_arg_not_raise
57
+ assert_nothing_raised do
58
+ @worksheet.write_number(0, 0, 1)
59
+ end
60
+ end
61
+
62
+ def test_write_string_with_insufficient_args_raise_InsufficientArgumentError
63
+ assert_raise(WriteXLSXInsufficientArgumentError) do
64
+ @worksheet.write_string()
65
+ end
66
+ assert_raise(WriteXLSXInsufficientArgumentError) do
67
+ @worksheet.write_string(0)
68
+ end
69
+ assert_raise(WriteXLSXInsufficientArgumentError) do
70
+ @worksheet.write_string(0, 0)
71
+ end
72
+ assert_raise(WriteXLSXInsufficientArgumentError) do
73
+ @worksheet.write_string('A1')
74
+ end
75
+ assert_raise(WriteXLSXInsufficientArgumentError) do
76
+ @worksheet.write_string(0, 0, nil)
77
+ end
78
+ end
79
+
80
+ def test_write_string_with_valid_arg_not_raise
81
+ assert_nothing_raised do
82
+ @worksheet.write_string(0, 0, "WriteXLSX")
83
+ end
84
+ end
85
+
86
+ def test_write_rich_string_with_insufficient_args_raise_InsufficientArgumentError
87
+ assert_raise(WriteXLSXInsufficientArgumentError) do
88
+ @worksheet.write_rich_string()
89
+ end
90
+ assert_raise(WriteXLSXInsufficientArgumentError) do
91
+ @worksheet.write_rich_string(0)
92
+ end
93
+ assert_raise(WriteXLSXInsufficientArgumentError) do
94
+ @worksheet.write_rich_string(0, 0)
95
+ end
96
+ assert_raise(WriteXLSXInsufficientArgumentError) do
97
+ @worksheet.write_rich_string('A1')
98
+ end
99
+ assert_raise(WriteXLSXInsufficientArgumentError) do
100
+ @worksheet.write_rich_string(0, 0, nil)
101
+ end
102
+ end
103
+
104
+ def test_write_rich_string_with_valid_arg_not_raise
105
+ format = @workbook.add_format(:bold => 1)
106
+ assert_nothing_raised do
107
+ @worksheet.write_rich_string(0, 0, "WriteXLSX", format, 'bold')
108
+ end
109
+ end
110
+
111
+ def test_write_blank_with_insufficient_args_raise_InsufficientArgumentError
112
+ assert_raise(WriteXLSXInsufficientArgumentError) do
113
+ @worksheet.write_blank()
114
+ end
115
+ assert_raise(WriteXLSXInsufficientArgumentError) do
116
+ @worksheet.write_blank(0)
117
+ end
118
+ end
119
+
120
+ def test_write_blank_with_valid_arg_not_raise
121
+ format = @workbook.add_format
122
+ assert_nothing_raised do
123
+ @worksheet.write_blank(0, 0, format)
124
+ end
125
+ end
126
+
127
+ def test_write_array_formula_with_insufficient_args_raise_InsufficientArgumentError
128
+ assert_raise(WriteXLSXInsufficientArgumentError) do
129
+ @worksheet.write_array_formula()
130
+ end
131
+ assert_raise(WriteXLSXInsufficientArgumentError) do
132
+ @worksheet.write_array_formula(0)
133
+ end
134
+ assert_raise(WriteXLSXInsufficientArgumentError) do
135
+ @worksheet.write_array_formula(0, 0)
136
+ end
137
+ assert_raise(WriteXLSXInsufficientArgumentError) do
138
+ @worksheet.write_array_formula('A1')
139
+ end
140
+ assert_raise(WriteXLSXInsufficientArgumentError) do
141
+ @worksheet.write_array_formula(0, 0, 1)
142
+ end
143
+ assert_raise(WriteXLSXInsufficientArgumentError) do
144
+ @worksheet.write_array_formula(0, 0, 1, 1)
145
+ end
146
+ assert_raise(WriteXLSXInsufficientArgumentError) do
147
+ @worksheet.write_array_formula('A1:B3')
148
+ end
149
+ assert_raise(WriteXLSXInsufficientArgumentError) do
150
+ @worksheet.write_array_formula(0, 0, 1, 1, nil)
151
+ end
152
+ end
153
+
154
+ def test_write_array_formula_with_valid_arg_not_raise
155
+ assert_nothing_raised do
156
+ @worksheet.write_array_formula(0, 0, 2, 0, '{=TREND(C1:C3,B1:B3)}')
157
+ end
158
+ end
159
+
160
+ def test_write_url_with_insufficient_args_raise_InsufficientArgumentError
161
+ assert_raise(WriteXLSXInsufficientArgumentError) do
162
+ @worksheet.write_url()
163
+ end
164
+ assert_raise(WriteXLSXInsufficientArgumentError) do
165
+ @worksheet.write_url(0)
166
+ end
167
+ assert_raise(WriteXLSXInsufficientArgumentError) do
168
+ @worksheet.write_url(0, 0)
169
+ end
170
+ assert_raise(WriteXLSXInsufficientArgumentError) do
171
+ @worksheet.write_url('A1')
172
+ end
173
+ assert_raise(WriteXLSXInsufficientArgumentError) do
174
+ @worksheet.write_url(0, 0, nil)
175
+ end
176
+ end
177
+
178
+ def test_write_url_with_valid_arg_not_raise
179
+ assert_nothing_raised do
180
+ @worksheet.write_url(0, 0, "http://foo.bar.com")
181
+ end
182
+ end
183
+
184
+ def test_write_date_time_with_insufficient_args_raise_InsufficientArgumentError
185
+ assert_raise(WriteXLSXInsufficientArgumentError) do
186
+ @worksheet.write_date_time()
187
+ end
188
+ assert_raise(WriteXLSXInsufficientArgumentError) do
189
+ @worksheet.write_date_time(0)
190
+ end
191
+ assert_raise(WriteXLSXInsufficientArgumentError) do
192
+ @worksheet.write_date_time(0, 0)
193
+ end
194
+ assert_raise(WriteXLSXInsufficientArgumentError) do
195
+ @worksheet.write_date_time('A1')
196
+ end
197
+ assert_raise(WriteXLSXInsufficientArgumentError) do
198
+ @worksheet.write_date_time(0, 0, nil)
199
+ end
200
+ end
201
+
202
+ def test_write_date_time_with_valid_arg_not_raise
203
+ assert_nothing_raised do
204
+ @worksheet.write_date_time(0, 0, '2001-01-01T12:20')
205
+ end
206
+ end
207
+
208
+ def test_write_comment_with_insufficient_args_raise_InsufficientArgumentError
209
+ assert_raise(WriteXLSXInsufficientArgumentError) do
210
+ @worksheet.write_comment()
211
+ end
212
+ assert_raise(WriteXLSXInsufficientArgumentError) do
213
+ @worksheet.write_comment(0)
214
+ end
215
+ assert_raise(WriteXLSXInsufficientArgumentError) do
216
+ @worksheet.write_comment(0, 0)
217
+ end
218
+ assert_raise(WriteXLSXInsufficientArgumentError) do
219
+ @worksheet.write_comment('A1')
220
+ end
221
+ assert_raise(WriteXLSXInsufficientArgumentError) do
222
+ @worksheet.write_comment(0, 0, nil)
223
+ end
224
+ end
225
+
226
+ def test_write_comment_with_valid_arg_not_raise
227
+ assert_nothing_raised do
228
+ @worksheet.write_comment(0, 0, 'comment')
229
+ end
230
+ end
231
+
232
+ def test_insert_chart_with_insufficient_args_raise_InsufficientArgumentError
233
+ assert_raise(WriteXLSXInsufficientArgumentError) do
234
+ @worksheet.insert_chart()
235
+ end
236
+ assert_raise(WriteXLSXInsufficientArgumentError) do
237
+ @worksheet.insert_chart(0)
238
+ end
239
+ assert_raise(WriteXLSXInsufficientArgumentError) do
240
+ @worksheet.insert_chart(0, 0)
241
+ end
242
+ assert_raise(WriteXLSXInsufficientArgumentError) do
243
+ @worksheet.insert_chart('A1')
244
+ end
245
+ assert_raise(WriteXLSXInsufficientArgumentError) do
246
+ @worksheet.insert_chart(0, 0, nil)
247
+ end
248
+ end
249
+
250
+ def test_insert_chart_with_valid_arg_not_raise
251
+ chart = @workbook.add_chart(:type => 'line')
252
+ assert_nothing_raised do
253
+ @worksheet.insert_chart(0, 0, chart)
254
+ end
255
+ end
256
+
257
+ def test_coditional_formatting_with_insufficient_args_raise_InsufficientArgumentError
258
+ assert_raise(WriteXLSXInsufficientArgumentError) do
259
+ @worksheet.conditional_formatting()
260
+ end
261
+ assert_raise(WriteXLSXInsufficientArgumentError) do
262
+ @worksheet.conditional_formatting(0)
263
+ end
264
+ assert_raise(WriteXLSXInsufficientArgumentError) do
265
+ @worksheet.conditional_formatting(0, 0)
266
+ end
267
+ assert_raise(WriteXLSXInsufficientArgumentError) do
268
+ @worksheet.conditional_formatting('A1')
269
+ end
270
+ assert_raise(WriteXLSXInsufficientArgumentError) do
271
+ @worksheet.conditional_formatting(0, 0, nil)
272
+ end
273
+ assert_raise(WriteXLSXInsufficientArgumentError) do
274
+ @worksheet.conditional_formatting(0, 0, 1)
275
+ end
276
+ assert_raise(WriteXLSXInsufficientArgumentError) do
277
+ @worksheet.conditional_formatting(0, 0, 1, 1)
278
+ end
279
+ assert_raise(WriteXLSXInsufficientArgumentError) do
280
+ @worksheet.conditional_formatting('A1:B2')
281
+ end
282
+ assert_raise(WriteXLSXInsufficientArgumentError) do
283
+ @worksheet.conditional_formatting(0, 0, 1, 1)
284
+ end
285
+ assert_raise(WriteXLSXInsufficientArgumentError) do
286
+ @worksheet.conditional_formatting(0, 0, 1, 1, nil)
287
+ end
288
+ end
289
+
290
+ def test_conditional_formatting_with_valid_arg_not_raise
291
+ param = {
292
+ :type => 'cell',
293
+ :criteria => 'greater than',
294
+ :value => 5,
295
+ :format => $red_format
296
+ }
297
+
298
+ assert_nothing_raised do
299
+ @worksheet.conditional_formatting(0, 0, param)
300
+ end
301
+ assert_nothing_raised do
302
+ @worksheet.conditional_formatting(0, 0, 1, 1, param)
303
+ end
304
+ end
305
+
306
+ def test_data_validation_with_insufficient_args_raise_InsufficientArgumentError
307
+ assert_raise(WriteXLSXInsufficientArgumentError) do
308
+ @worksheet.data_validation()
309
+ end
310
+ assert_raise(WriteXLSXInsufficientArgumentError) do
311
+ @worksheet.data_validation(0)
312
+ end
313
+ assert_raise(WriteXLSXInsufficientArgumentError) do
314
+ @worksheet.data_validation(0, 0)
315
+ end
316
+ assert_raise(WriteXLSXInsufficientArgumentError) do
317
+ @worksheet.data_validation('A1')
318
+ end
319
+ assert_raise(WriteXLSXInsufficientArgumentError) do
320
+ @worksheet.data_validation(0, 0, nil)
321
+ end
322
+ assert_raise(WriteXLSXInsufficientArgumentError) do
323
+ @worksheet.data_validation(0, 0, 1)
324
+ end
325
+ assert_raise(WriteXLSXInsufficientArgumentError) do
326
+ @worksheet.data_validation(0, 0, 1, 1)
327
+ end
328
+ assert_raise(WriteXLSXInsufficientArgumentError) do
329
+ @worksheet.data_validation('A1:B2')
330
+ end
331
+ assert_raise(WriteXLSXInsufficientArgumentError) do
332
+ @worksheet.data_validation(0, 0, 1, 1)
333
+ end
334
+ assert_raise(WriteXLSXInsufficientArgumentError) do
335
+ @worksheet.data_validation(0, 0, 1, 1, nil)
336
+ end
337
+ end
338
+
339
+ def test_data_validation_with_valid_arg_not_raise
340
+ param = {
341
+ :validate => 'integer',
342
+ :criteria => '>',
343
+ :value => 100
344
+ }
345
+
346
+ assert_nothing_raised do
347
+ @worksheet.data_validation(0, 0, param)
348
+ end
349
+ assert_nothing_raised do
350
+ @worksheet.data_validation(0, 0, 1, 1, param)
351
+ end
352
+ end
353
+ end
@@ -0,0 +1,19 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx/workbook'
4
+ require 'write_xlsx/worksheet'
5
+ require 'stringio'
6
+
7
+ class TestWriteMxPlv < Test::Unit::TestCase
8
+ def setup
9
+ @workbook = WriteXLSX.new(StringIO.new)
10
+ @worksheet = @workbook.add_worksheet('')
11
+ end
12
+
13
+ def test_write_mx_plv
14
+ @worksheet.__send__('write_mx_plv')
15
+ result = @worksheet.instance_variable_get(:@writer).string
16
+ expected = '<mx:PLV Mode="1" OnePage="0" WScale="0" />'
17
+ assert_equal(expected, result)
18
+ end
19
+ end
@@ -0,0 +1,98 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'write_xlsx'
4
+ require 'stringio'
5
+
6
+ class TestWorksheetWritePageMargins < Test::Unit::TestCase
7
+ def setup
8
+ @workbook = WriteXLSX.new(StringIO.new)
9
+ @worksheet = @workbook.add_worksheet('')
10
+ end
11
+
12
+ def test_write_page_margins
13
+ @worksheet.__send__('write_page_margins')
14
+ result = @worksheet.instance_variable_get(:@writer).string
15
+ expected = '<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />'
16
+ assert_equal(expected, result)
17
+ end
18
+
19
+ def test_write_page_margins_05
20
+ @worksheet.margins = 0.5
21
+ @worksheet.__send__('write_page_margins')
22
+ result = @worksheet.instance_variable_get(:@writer).string
23
+ expected = '<pageMargins left="0.5" right="0.5" top="0.5" bottom="0.5" header="0.3" footer="0.3" />'
24
+ assert_equal(expected, result)
25
+ end
26
+
27
+ def test_write_page_margins_LR_05
28
+ @worksheet.margins_left_right = 0.5
29
+ @worksheet.__send__('write_page_margins')
30
+ result = @worksheet.instance_variable_get(:@writer).string
31
+ expected = '<pageMargins left="0.5" right="0.5" top="0.75" bottom="0.75" header="0.3" footer="0.3" />'
32
+ assert_equal(expected, result)
33
+ end
34
+
35
+ def test_write_page_margins_TB_05
36
+ @worksheet.margins_top_bottom = 0.5
37
+ @worksheet.__send__('write_page_margins')
38
+ result = @worksheet.instance_variable_get(:@writer).string
39
+ expected = '<pageMargins left="0.7" right="0.7" top="0.5" bottom="0.5" header="0.3" footer="0.3" />'
40
+ assert_equal(expected, result)
41
+ end
42
+
43
+ def test_write_page_margins_left_05
44
+ @worksheet.margin_left = 0.5
45
+ @worksheet.__send__('write_page_margins')
46
+ result = @worksheet.instance_variable_get(:@writer).string
47
+ expected = '<pageMargins left="0.5" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3" />'
48
+ assert_equal(expected, result)
49
+ end
50
+
51
+ def test_write_page_margins_right_05
52
+ @worksheet.margin_right = 0.5
53
+ @worksheet.__send__('write_page_margins')
54
+ result = @worksheet.instance_variable_get(:@writer).string
55
+ expected = '<pageMargins left="0.7" right="0.5" top="0.75" bottom="0.75" header="0.3" footer="0.3" />'
56
+ assert_equal(expected, result)
57
+ end
58
+
59
+ def test_write_page_margins_top_05
60
+ @worksheet.margin_top = 0.5
61
+ @worksheet.__send__('write_page_margins')
62
+ result = @worksheet.instance_variable_get(:@writer).string
63
+ expected = '<pageMargins left="0.7" right="0.7" top="0.5" bottom="0.75" header="0.3" footer="0.3" />'
64
+ assert_equal(expected, result)
65
+ end
66
+
67
+ def test_write_page_margins_bottom_05
68
+ @worksheet.margin_bottom = 0.5
69
+ @worksheet.__send__('write_page_margins')
70
+ result = @worksheet.instance_variable_get(:@writer).string
71
+ expected = '<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.5" header="0.3" footer="0.3" />'
72
+ assert_equal(expected, result)
73
+ end
74
+
75
+ def test_write_page_margins_header_05
76
+ @worksheet.set_header('', 0.5)
77
+ @worksheet.__send__('write_page_margins')
78
+ result = @worksheet.instance_variable_get(:@writer).string
79
+ expected = '<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.5" footer="0.3" />'
80
+ assert_equal(expected, result)
81
+ end
82
+
83
+ def test_write_page_margins_footer_05
84
+ @worksheet.set_footer('', 0.5)
85
+ @worksheet.__send__('write_page_margins')
86
+ result = @worksheet.instance_variable_get(:@writer).string
87
+ expected = '<pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.5" />'
88
+ assert_equal(expected, result)
89
+ end
90
+
91
+ def test_write_page_margins_with_white_space
92
+ @worksheet.margins = " 0.5\n"
93
+ @worksheet.__send__('write_page_margins')
94
+ result = @worksheet.instance_variable_get(:@writer).string
95
+ expected = '<pageMargins left="0.5" right="0.5" top="0.5" bottom="0.5" header="0.3" footer="0.3" />'
96
+ assert_equal(expected, result)
97
+ end
98
+ end