writeexcel 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. data/.gitattributes +1 -1
  2. data/.gitignore +24 -24
  3. data/README.rdoc +34 -55
  4. data/VERSION +1 -1
  5. data/charts/chartex.rb +316 -316
  6. data/charts/demo1.rb +46 -46
  7. data/charts/demo2.rb +65 -65
  8. data/charts/demo3.rb +117 -117
  9. data/charts/demo4.rb +119 -119
  10. data/charts/demo5.rb +48 -48
  11. data/examples/a_simple.rb +43 -43
  12. data/examples/autofilter.rb +265 -265
  13. data/examples/bigfile.rb +30 -30
  14. data/examples/chart_area.rb +121 -121
  15. data/examples/chart_bar.rb +120 -120
  16. data/examples/chart_column.rb +120 -120
  17. data/examples/chart_line.rb +120 -120
  18. data/examples/chart_pie.rb +108 -108
  19. data/examples/chart_scatter.rb +121 -121
  20. data/examples/chart_stock.rb +148 -148
  21. data/examples/chess.rb +142 -142
  22. data/examples/colors.rb +129 -129
  23. data/examples/comments1.rb +27 -27
  24. data/examples/comments2.rb +352 -352
  25. data/examples/copyformat.rb +52 -52
  26. data/examples/data_validate.rb +279 -279
  27. data/examples/date_time.rb +87 -87
  28. data/examples/defined_name.rb +32 -32
  29. data/examples/demo.rb +124 -124
  30. data/examples/diag_border.rb +36 -36
  31. data/examples/formats.rb +490 -490
  32. data/examples/formula_result.rb +30 -30
  33. data/examples/header.rb +137 -137
  34. data/examples/hide_sheet.rb +29 -29
  35. data/examples/hyperlink.rb +43 -43
  36. data/examples/images.rb +63 -63
  37. data/examples/indent.rb +31 -31
  38. data/examples/merge1.rb +40 -40
  39. data/examples/merge2.rb +45 -45
  40. data/examples/merge3.rb +66 -66
  41. data/examples/merge4.rb +83 -83
  42. data/examples/merge5.rb +80 -80
  43. data/examples/merge6.rb +67 -67
  44. data/examples/outline.rb +255 -255
  45. data/examples/outline_collapsed.rb +209 -209
  46. data/examples/panes.rb +113 -113
  47. data/examples/properties.rb +34 -34
  48. data/examples/properties_jp.rb +33 -33
  49. data/examples/protection.rb +47 -47
  50. data/examples/regions.rb +53 -53
  51. data/examples/repeat.rb +43 -43
  52. data/examples/right_to_left.rb +27 -27
  53. data/examples/row_wrap.rb +53 -53
  54. data/examples/stats.rb +74 -74
  55. data/examples/stocks.rb +81 -81
  56. data/examples/tab_colors.rb +31 -31
  57. data/examples/utf8.rb +15 -15
  58. data/examples/write_arrays.rb +83 -83
  59. data/lib/writeexcel/biffwriter.rb +232 -232
  60. data/lib/writeexcel/caller_info.rb +12 -12
  61. data/lib/writeexcel/chart.rb +2190 -2177
  62. data/lib/writeexcel/charts/area.rb +154 -154
  63. data/lib/writeexcel/charts/bar.rb +177 -177
  64. data/lib/writeexcel/charts/column.rb +156 -156
  65. data/lib/writeexcel/charts/external.rb +66 -66
  66. data/lib/writeexcel/charts/line.rb +154 -154
  67. data/lib/writeexcel/charts/pie.rb +169 -169
  68. data/lib/writeexcel/charts/scatter.rb +192 -192
  69. data/lib/writeexcel/charts/stock.rb +213 -213
  70. data/lib/writeexcel/colors.rb +64 -64
  71. data/lib/writeexcel/compatibility.rb +0 -255
  72. data/lib/writeexcel/debug_info.rb +37 -33
  73. data/lib/writeexcel/excelformulaparser.rb +587 -587
  74. data/lib/writeexcel/format.rb +13 -4
  75. data/lib/writeexcel/formula.rb +26 -9
  76. data/lib/writeexcel/helper.rb +68 -64
  77. data/lib/writeexcel/olewriter.rb +311 -311
  78. data/lib/writeexcel/properties.rb +242 -240
  79. data/lib/writeexcel/storage_lite.rb +984 -978
  80. data/lib/writeexcel/workbook.rb +3210 -3192
  81. data/lib/writeexcel/worksheet.rb +143 -51
  82. data/lib/writeexcel/write_file.rb +44 -40
  83. data/lib/writeexcel.rb +1159 -1159
  84. data/test/helper.rb +31 -28
  85. data/test/perl_output/README +31 -31
  86. data/test/test_00_IEEE_double.rb +13 -13
  87. data/test/test_01_add_worksheet.rb +10 -10
  88. data/test/test_02_merge_formats.rb +53 -53
  89. data/test/test_04_dimensions.rb +392 -392
  90. data/test/test_05_rows.rb +179 -179
  91. data/test/test_06_extsst.rb +77 -77
  92. data/test/test_11_date_time.rb +479 -479
  93. data/test/test_12_date_only.rb +501 -501
  94. data/test/test_13_date_seconds.rb +481 -481
  95. data/test/test_21_escher.rb +637 -637
  96. data/test/test_22_mso_drawing_group.rb +745 -745
  97. data/test/test_23_note.rb +73 -73
  98. data/test/test_24_txo.rb +75 -75
  99. data/test/test_25_position_object.rb +84 -84
  100. data/test/test_26_autofilter.rb +314 -314
  101. data/test/test_27_autofilter.rb +131 -131
  102. data/test/test_28_autofilter.rb +161 -161
  103. data/test/test_29_process_jpg.rb +683 -683
  104. data/test/test_30_validation_dval.rb +77 -77
  105. data/test/test_31_validation_dv_strings.rb +126 -126
  106. data/test/test_32_validation_dv_formula.rb +206 -206
  107. data/test/test_40_property_types.rb +188 -188
  108. data/test/test_41_properties.rb +235 -235
  109. data/test/test_42_set_properties.rb +437 -437
  110. data/test/test_50_name_stored.rb +299 -299
  111. data/test/test_51_name_print_area.rb +357 -357
  112. data/test/test_52_name_print_titles.rb +454 -454
  113. data/test/test_53_autofilter.rb +203 -203
  114. data/test/test_60_chart_generic.rb +578 -578
  115. data/test/test_61_chart_subclasses.rb +95 -95
  116. data/test/test_62_chart_formats.rb +272 -272
  117. data/test/test_63_chart_area_formats.rb +649 -649
  118. data/test/test_biff.rb +75 -75
  119. data/test/test_compatibility.rb +12 -627
  120. data/test/test_example_match.rb +3144 -3144
  121. data/test/test_formula.rb +61 -61
  122. data/test/test_ole.rb +106 -106
  123. data/test/test_storage_lite.rb +125 -125
  124. data/test/test_workbook.rb +139 -139
  125. data/test/test_worksheet.rb +110 -110
  126. data/utils/add_magic_comment.rb +80 -80
  127. data/writeexcel.gemspec +4 -6
  128. data/writeexcel.rdoc +58 -15
  129. metadata +9 -6
  130. data/test/test_new_encoding.rb +0 -205
@@ -1,437 +1,437 @@
1
- # -*- coding: utf-8 -*-
2
- ##########################################################################
3
- # test_42_set_properties.rb
4
- #
5
- # Tests for Workbook property_sets() interface.
6
- #
7
- # some test is commented out because related method was set to
8
- # private method. Before that, all test passed.
9
- #
10
- #
11
- #
12
- #
13
- # reverse('©'), September 2005, John McNamara, jmcnamara@cpan.org
14
- #
15
- # original written in Perl by John McNamara
16
- # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
17
- #
18
- #########################################################################
19
- require 'helper'
20
- require 'stringio'
21
-
22
- class TC_set_properties < Test::Unit::TestCase
23
-
24
- def test_dummy
25
- assert(true)
26
- end
27
-
28
- def setup
29
- @test_file = StringIO.new
30
- end
31
-
32
- def teardown
33
- end
34
-
35
- def test_same_as_previous_plus_creation_date
36
- smiley = '☺' # chr 0x263A; in perl
37
-
38
- workbook = WriteExcel.new(@test_file)
39
- worksheet = workbook.add_worksheet
40
-
41
- =begin
42
- ###############################################################################
43
- #
44
- # Test 1. _get_property_set_codepage() for default latin1 strings.
45
- #
46
- params ={
47
- :title => 'Title',
48
- :subject => 'Subject',
49
- :author => 'Author',
50
- :keywords => 'Keywords',
51
- :comments => 'Comments',
52
- :last_author => 'Username',
53
- }
54
-
55
- strings = %w(title subject author keywords comments last_author)
56
-
57
- caption = " \t_get_property_set_codepage('latin1')"
58
- target = 0x04E4
59
-
60
- result = workbook.get_property_set_codepage(params, strings)
61
- assert_equal(target, result, caption)
62
-
63
- ###############################################################################
64
- #
65
- # Test 2. _get_property_set_codepage() for manual utf8 strings.
66
- #
67
-
68
- params = {
69
- :title => 'Title',
70
- :subject => 'Subject',
71
- :author => 'Author',
72
- :keywords => 'Keywords',
73
- :comments => 'Comments',
74
- :last_author => 'Username',
75
- :utf8 => 1,
76
- }
77
-
78
- strings = %w(title subject author keywords comments last_author)
79
-
80
- caption = " \t_get_property_set_codepage('utf8')"
81
- target = 0xFDE9
82
-
83
- result = workbook.get_property_set_codepage(params, strings)
84
- assert_equal(target, result, caption)
85
-
86
- ###############################################################################
87
- #
88
- # Test 3. _get_property_set_codepage() for utf8 strings.
89
- #
90
- params = {
91
- :title => 'Title' + smiley,
92
- :subject => 'Subject',
93
- :author => 'Author',
94
- :keywords => 'Keywords',
95
- :comments => 'Comments',
96
- :last_author => 'Username',
97
- }
98
-
99
- strings = %w(title subject author keywords comments last_author)
100
-
101
- caption = " \t_get_property_set_codepage('utf8')";
102
- target = 0xFDE9;
103
-
104
- result = workbook.get_property_set_codepage(params, strings)
105
- assert_equal(target, result, caption)
106
- =end
107
-
108
- ###############################################################################
109
- #
110
- # Note, the "created => nil" parameters in some of the following tests is
111
- # used to avoid adding the default date to the property sets.
112
-
113
-
114
- ###############################################################################
115
- #
116
- # Test 4. Codepage only.
117
- #
118
-
119
- workbook.set_properties(
120
- :created => nil
121
- )
122
-
123
- caption = " \tset_properties(codepage)"
124
- target = %w(
125
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
126
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
127
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
128
- 18 00 00 00 01 00 00 00 01 00 00 00 10 00 00 00
129
- 02 00 00 00 E4 04 00 00
130
- ).join(' ')
131
-
132
- result = unpack_record(workbook.summary)
133
- assert_equal(target, result, caption)
134
-
135
- ###############################################################################
136
- #
137
- # Test 5. Same as previous + Title.
138
- #
139
-
140
- workbook.set_properties(
141
- :title => 'Title',
142
- :created => nil
143
- )
144
-
145
- caption = " \tset_properties('Title')"
146
- target = %w(
147
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
148
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
149
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
150
- 30 00 00 00 02 00 00 00 01 00 00 00 18 00 00 00
151
- 02 00 00 00 20 00 00 00 02 00 00 00 E4 04 00 00
152
- 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
153
- ).join(' ')
154
-
155
- result = unpack_record(workbook.summary)
156
- assert_equal(target, result, caption)
157
-
158
- ###############################################################################
159
- #
160
- # Test 6. Same as previous + Subject.
161
- #
162
-
163
- workbook.set_properties(
164
- :title => 'Title',
165
- :subject => 'Subject',
166
- :created => nil
167
- )
168
-
169
- caption = " \tset_properties('+ Subject')"
170
- target = %w(
171
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
172
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
173
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
174
- 48 00 00 00 03 00 00 00 01 00 00 00 20 00 00 00
175
- 02 00 00 00 28 00 00 00 03 00 00 00 38 00 00 00
176
- 02 00 00 00 E4 04 00 00 1E 00 00 00 06 00 00 00
177
- 54 69 74 6C 65 00 00 00 1E 00 00 00 08 00 00 00
178
- 53 75 62 6A 65 63 74 00
179
- ).join(' ')
180
-
181
- result = unpack_record(workbook.summary)
182
- assert_equal(target, result, caption)
183
-
184
- ###############################################################################
185
- #
186
- # Test 7. Same as previous + Author.
187
- #
188
-
189
- workbook.set_properties(
190
- :title => 'Title',
191
- :subject => 'Subject',
192
- :author => 'Author',
193
- :created => nil
194
- )
195
-
196
- caption = " \tset_properties('+ Author')"
197
- target = %w(
198
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
199
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
200
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
201
- 60 00 00 00 04 00 00 00 01 00 00 00 28 00 00 00
202
- 02 00 00 00 30 00 00 00 03 00 00 00 40 00 00 00
203
- 04 00 00 00 50 00 00 00 02 00 00 00 E4 04 00 00
204
- 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
205
- 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
206
- 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
207
- ).join(' ')
208
-
209
- result = unpack_record(workbook.summary)
210
- assert_equal(target, result, caption)
211
-
212
- ###############################################################################
213
- #
214
- # Test 8. Same as previous + Keywords.
215
- #
216
-
217
- workbook.set_properties(
218
- :title => 'Title',
219
- :subject => 'Subject',
220
- :author => 'Author',
221
- :keywords => 'Keywords',
222
- :created => nil
223
- )
224
-
225
- caption = " \tset_properties('+ Keywords')"
226
- target = %w(
227
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
228
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
229
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
230
- 7C 00 00 00 05 00 00 00 01 00 00 00 30 00 00 00
231
- 02 00 00 00 38 00 00 00 03 00 00 00 48 00 00 00
232
- 04 00 00 00 58 00 00 00 05 00 00 00 68 00 00 00
233
- 02 00 00 00 E4 04 00 00 1E 00 00 00 06 00 00 00
234
- 54 69 74 6C 65 00 00 00 1E 00 00 00 08 00 00 00
235
- 53 75 62 6A 65 63 74 00 1E 00 00 00 07 00 00 00
236
- 41 75 74 68 6F 72 00 00 1E 00 00 00 09 00 00 00
237
- 4B 65 79 77 6F 72 64 73 00 00 00 00
238
- ).join(' ')
239
-
240
- result = unpack_record(workbook.summary)
241
- assert_equal(target, result, caption)
242
-
243
- ###############################################################################
244
- #
245
- # Test 9. Same as previous + Comments.
246
- #
247
-
248
- workbook.set_properties(
249
- :title => 'Title',
250
- :subject => 'Subject',
251
- :author => 'Author',
252
- :keywords => 'Keywords',
253
- :comments => 'Comments',
254
- :created => nil
255
- )
256
-
257
- caption = " \tset_properties('+ Comments')"
258
- target = %w(
259
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
260
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
261
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
262
- 98 00 00 00 06 00 00 00 01 00 00 00 38 00 00 00
263
- 02 00 00 00 40 00 00 00 03 00 00 00 50 00 00 00
264
- 04 00 00 00 60 00 00 00 05 00 00 00 70 00 00 00
265
- 06 00 00 00 84 00 00 00 02 00 00 00 E4 04 00 00
266
- 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
267
- 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
268
- 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
269
- 1E 00 00 00 09 00 00 00 4B 65 79 77 6F 72 64 73
270
- 00 00 00 00 1E 00 00 00 09 00 00 00 43 6F 6D 6D
271
- 65 6E 74 73 00 00 00 00
272
- ).join(' ')
273
-
274
- result = unpack_record(workbook.summary)
275
- assert_equal(target, result, caption)
276
-
277
- ###############################################################################
278
- #
279
- # Test 10. Same as previous + Last author.
280
- #
281
-
282
- workbook.set_properties(
283
- :title => 'Title',
284
- :subject => 'Subject',
285
- :author => 'Author',
286
- :keywords => 'Keywords',
287
- :comments => 'Comments',
288
- :last_author => 'Username',
289
- :created => nil
290
- )
291
-
292
- caption = " \tset_properties('+ Last author')"
293
- target = %w(
294
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
295
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
296
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
297
- B4 00 00 00 07 00 00 00 01 00 00 00 40 00 00 00
298
- 02 00 00 00 48 00 00 00 03 00 00 00 58 00 00 00
299
- 04 00 00 00 68 00 00 00 05 00 00 00 78 00 00 00
300
- 06 00 00 00 8C 00 00 00 08 00 00 00 A0 00 00 00
301
- 02 00 00 00 E4 04 00 00 1E 00 00 00 06 00 00 00
302
- 54 69 74 6C 65 00 00 00 1E 00 00 00 08 00 00 00
303
- 53 75 62 6A 65 63 74 00 1E 00 00 00 07 00 00 00
304
- 41 75 74 68 6F 72 00 00 1E 00 00 00 09 00 00 00
305
- 4B 65 79 77 6F 72 64 73 00 00 00 00 1E 00 00 00
306
- 09 00 00 00 43 6F 6D 6D 65 6E 74 73 00 00 00 00
307
- 1E 00 00 00 09 00 00 00 55 73 65 72 6E 61 6D 65
308
- 00 00 00 00
309
- ).join(' ')
310
-
311
- result = unpack_record(workbook.summary)
312
- assert_equal(target, result, caption)
313
-
314
- ###############################################################################
315
- #
316
- # Test 11. Same as previous + Creation date.
317
- #
318
-
319
- # Aug 19 23:20:13 2008
320
- # $sec,$min,$hour,$mday,$mon,$year
321
- # We normalise the time using timegm() so that the tests don't fail due to
322
- # different timezones.
323
-
324
- filetime = Time.gm(2008,8,19,23,20,13)
325
- workbook.set_properties(
326
- :title => 'Title',
327
- :subject => 'Subject',
328
- :author => 'Author',
329
- :keywords => 'Keywords',
330
- :comments => 'Comments',
331
- :last_author => 'Username',
332
- :created => filetime
333
- )
334
-
335
- caption = " \tset_properties('+ Creation date')"
336
- target = %w(
337
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
338
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
339
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
340
- C8 00 00 00 08 00 00 00 01 00 00 00 48 00 00 00
341
- 02 00 00 00 50 00 00 00 03 00 00 00 60 00 00 00
342
- 04 00 00 00 70 00 00 00 05 00 00 00 80 00 00 00
343
- 06 00 00 00 94 00 00 00 08 00 00 00 A8 00 00 00
344
- 0C 00 00 00 BC 00 00 00 02 00 00 00 E4 04 00 00
345
- 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
346
- 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
347
- 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
348
- 1E 00 00 00 09 00 00 00 4B 65 79 77 6F 72 64 73
349
- 00 00 00 00 1E 00 00 00 09 00 00 00 43 6F 6D 6D
350
- 65 6E 74 73 00 00 00 00 1E 00 00 00 09 00 00 00
351
- 55 73 65 72 6E 61 6D 65 00 00 00 00 40 00 00 00
352
- 80 74 89 21 52 02 C9 01
353
- ).join(' ')
354
-
355
- result = unpack_record(workbook.summary)
356
- assert_equal(target, result, caption)
357
-
358
- ###############################################################################
359
- #
360
- # Test 12. Same as previous. Date set at the workbook level.
361
- #
362
-
363
- # Wed Aug 20 00:20:13 2008
364
- # $sec,$min,$hour,$mday,$mon,$year
365
- # We normalise the time using timegm() so that the tests don't fail due to
366
- # different timezones.
367
- workbook.localtime = Time.gm(2008,8,19,23,20,13)
368
-
369
- workbook.set_properties(
370
- :title => 'Title',
371
- :subject => 'Subject',
372
- :author => 'Author',
373
- :keywords => 'Keywords',
374
- :comments => 'Comments',
375
- :last_author => 'Username'
376
- )
377
-
378
- caption = " \tset_properties('+ Creation date')"
379
- target = %w(
380
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
381
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
382
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
383
- C8 00 00 00 08 00 00 00 01 00 00 00 48 00 00 00
384
- 02 00 00 00 50 00 00 00 03 00 00 00 60 00 00 00
385
- 04 00 00 00 70 00 00 00 05 00 00 00 80 00 00 00
386
- 06 00 00 00 94 00 00 00 08 00 00 00 A8 00 00 00
387
- 0C 00 00 00 BC 00 00 00 02 00 00 00 E4 04 00 00
388
- 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
389
- 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
390
- 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
391
- 1E 00 00 00 09 00 00 00 4B 65 79 77 6F 72 64 73
392
- 00 00 00 00 1E 00 00 00 09 00 00 00 43 6F 6D 6D
393
- 65 6E 74 73 00 00 00 00 1E 00 00 00 09 00 00 00
394
- 55 73 65 72 6E 61 6D 65 00 00 00 00 40 00 00 00
395
- 80 74 89 21 52 02 C9 01
396
- ).join(' ')
397
-
398
- result = unpack_record(workbook.summary)
399
- assert_equal(target, result, caption)
400
-
401
- ###############################################################################
402
- #
403
- # Test 14. UTF-8 string used.
404
- #
405
-
406
- workbook.set_properties(
407
- :title => 'Title' + smiley,
408
- :created => nil
409
- )
410
-
411
- caption = " \tset_properties(utf8)"
412
- target = %w(
413
- FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
414
- 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
415
- F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
416
- 34 00 00 00 02 00 00 00 01 00 00 00 18 00 00 00
417
- 02 00 00 00 20 00 00 00 02 00 00 00 E9 FD 00 00
418
- 1E 00 00 00 09 00 00 00 54 69 74 6C 65 E2 98 BA
419
- 00 00 00 00
420
- ).join(' ')
421
-
422
- result = unpack_record(workbook.summary)
423
- assert_equal(target, result, caption)
424
-
425
- workbook.close
426
-
427
- end
428
-
429
- ###############################################################################
430
- #
431
- # Unpack the binary data into a format suitable for printing in tests.
432
- #
433
- def unpack_record(data)
434
- data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
435
- end
436
-
437
- end
1
+ # -*- coding: utf-8 -*-
2
+ ##########################################################################
3
+ # test_42_set_properties.rb
4
+ #
5
+ # Tests for Workbook property_sets() interface.
6
+ #
7
+ # some test is commented out because related method was set to
8
+ # private method. Before that, all test passed.
9
+ #
10
+ #
11
+ #
12
+ #
13
+ # reverse('©'), September 2005, John McNamara, jmcnamara@cpan.org
14
+ #
15
+ # original written in Perl by John McNamara
16
+ # converted to Ruby by Hideo Nakamura, cxn03651@msj.biglobe.ne.jp
17
+ #
18
+ #########################################################################
19
+ require 'helper'
20
+ require 'stringio'
21
+
22
+ class TC_set_properties < Test::Unit::TestCase
23
+
24
+ def test_dummy
25
+ assert(true)
26
+ end
27
+
28
+ def setup
29
+ @test_file = StringIO.new
30
+ end
31
+
32
+ def teardown
33
+ end
34
+
35
+ def test_same_as_previous_plus_creation_date
36
+ smiley = '☺' # chr 0x263A; in perl
37
+
38
+ workbook = WriteExcel.new(@test_file)
39
+ worksheet = workbook.add_worksheet
40
+
41
+ =begin
42
+ ###############################################################################
43
+ #
44
+ # Test 1. _get_property_set_codepage() for default latin1 strings.
45
+ #
46
+ params ={
47
+ :title => 'Title',
48
+ :subject => 'Subject',
49
+ :author => 'Author',
50
+ :keywords => 'Keywords',
51
+ :comments => 'Comments',
52
+ :last_author => 'Username',
53
+ }
54
+
55
+ strings = %w(title subject author keywords comments last_author)
56
+
57
+ caption = " \t_get_property_set_codepage('latin1')"
58
+ target = 0x04E4
59
+
60
+ result = workbook.get_property_set_codepage(params, strings)
61
+ assert_equal(target, result, caption)
62
+
63
+ ###############################################################################
64
+ #
65
+ # Test 2. _get_property_set_codepage() for manual utf8 strings.
66
+ #
67
+
68
+ params = {
69
+ :title => 'Title',
70
+ :subject => 'Subject',
71
+ :author => 'Author',
72
+ :keywords => 'Keywords',
73
+ :comments => 'Comments',
74
+ :last_author => 'Username',
75
+ :utf8 => 1,
76
+ }
77
+
78
+ strings = %w(title subject author keywords comments last_author)
79
+
80
+ caption = " \t_get_property_set_codepage('utf8')"
81
+ target = 0xFDE9
82
+
83
+ result = workbook.get_property_set_codepage(params, strings)
84
+ assert_equal(target, result, caption)
85
+
86
+ ###############################################################################
87
+ #
88
+ # Test 3. _get_property_set_codepage() for utf8 strings.
89
+ #
90
+ params = {
91
+ :title => 'Title' + smiley,
92
+ :subject => 'Subject',
93
+ :author => 'Author',
94
+ :keywords => 'Keywords',
95
+ :comments => 'Comments',
96
+ :last_author => 'Username',
97
+ }
98
+
99
+ strings = %w(title subject author keywords comments last_author)
100
+
101
+ caption = " \t_get_property_set_codepage('utf8')";
102
+ target = 0xFDE9;
103
+
104
+ result = workbook.get_property_set_codepage(params, strings)
105
+ assert_equal(target, result, caption)
106
+ =end
107
+
108
+ ###############################################################################
109
+ #
110
+ # Note, the "created => nil" parameters in some of the following tests is
111
+ # used to avoid adding the default date to the property sets.
112
+
113
+
114
+ ###############################################################################
115
+ #
116
+ # Test 4. Codepage only.
117
+ #
118
+
119
+ workbook.set_properties(
120
+ :created => nil
121
+ )
122
+
123
+ caption = " \tset_properties(codepage)"
124
+ target = %w(
125
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
126
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
127
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
128
+ 18 00 00 00 01 00 00 00 01 00 00 00 10 00 00 00
129
+ 02 00 00 00 E4 04 00 00
130
+ ).join(' ')
131
+
132
+ result = unpack_record(workbook.summary)
133
+ assert_equal(target, result, caption)
134
+
135
+ ###############################################################################
136
+ #
137
+ # Test 5. Same as previous + Title.
138
+ #
139
+
140
+ workbook.set_properties(
141
+ :title => 'Title',
142
+ :created => nil
143
+ )
144
+
145
+ caption = " \tset_properties('Title')"
146
+ target = %w(
147
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
148
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
149
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
150
+ 30 00 00 00 02 00 00 00 01 00 00 00 18 00 00 00
151
+ 02 00 00 00 20 00 00 00 02 00 00 00 E4 04 00 00
152
+ 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
153
+ ).join(' ')
154
+
155
+ result = unpack_record(workbook.summary)
156
+ assert_equal(target, result, caption)
157
+
158
+ ###############################################################################
159
+ #
160
+ # Test 6. Same as previous + Subject.
161
+ #
162
+
163
+ workbook.set_properties(
164
+ :title => 'Title',
165
+ :subject => 'Subject',
166
+ :created => nil
167
+ )
168
+
169
+ caption = " \tset_properties('+ Subject')"
170
+ target = %w(
171
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
172
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
173
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
174
+ 48 00 00 00 03 00 00 00 01 00 00 00 20 00 00 00
175
+ 02 00 00 00 28 00 00 00 03 00 00 00 38 00 00 00
176
+ 02 00 00 00 E4 04 00 00 1E 00 00 00 06 00 00 00
177
+ 54 69 74 6C 65 00 00 00 1E 00 00 00 08 00 00 00
178
+ 53 75 62 6A 65 63 74 00
179
+ ).join(' ')
180
+
181
+ result = unpack_record(workbook.summary)
182
+ assert_equal(target, result, caption)
183
+
184
+ ###############################################################################
185
+ #
186
+ # Test 7. Same as previous + Author.
187
+ #
188
+
189
+ workbook.set_properties(
190
+ :title => 'Title',
191
+ :subject => 'Subject',
192
+ :author => 'Author',
193
+ :created => nil
194
+ )
195
+
196
+ caption = " \tset_properties('+ Author')"
197
+ target = %w(
198
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
199
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
200
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
201
+ 60 00 00 00 04 00 00 00 01 00 00 00 28 00 00 00
202
+ 02 00 00 00 30 00 00 00 03 00 00 00 40 00 00 00
203
+ 04 00 00 00 50 00 00 00 02 00 00 00 E4 04 00 00
204
+ 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
205
+ 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
206
+ 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
207
+ ).join(' ')
208
+
209
+ result = unpack_record(workbook.summary)
210
+ assert_equal(target, result, caption)
211
+
212
+ ###############################################################################
213
+ #
214
+ # Test 8. Same as previous + Keywords.
215
+ #
216
+
217
+ workbook.set_properties(
218
+ :title => 'Title',
219
+ :subject => 'Subject',
220
+ :author => 'Author',
221
+ :keywords => 'Keywords',
222
+ :created => nil
223
+ )
224
+
225
+ caption = " \tset_properties('+ Keywords')"
226
+ target = %w(
227
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
228
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
229
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
230
+ 7C 00 00 00 05 00 00 00 01 00 00 00 30 00 00 00
231
+ 02 00 00 00 38 00 00 00 03 00 00 00 48 00 00 00
232
+ 04 00 00 00 58 00 00 00 05 00 00 00 68 00 00 00
233
+ 02 00 00 00 E4 04 00 00 1E 00 00 00 06 00 00 00
234
+ 54 69 74 6C 65 00 00 00 1E 00 00 00 08 00 00 00
235
+ 53 75 62 6A 65 63 74 00 1E 00 00 00 07 00 00 00
236
+ 41 75 74 68 6F 72 00 00 1E 00 00 00 09 00 00 00
237
+ 4B 65 79 77 6F 72 64 73 00 00 00 00
238
+ ).join(' ')
239
+
240
+ result = unpack_record(workbook.summary)
241
+ assert_equal(target, result, caption)
242
+
243
+ ###############################################################################
244
+ #
245
+ # Test 9. Same as previous + Comments.
246
+ #
247
+
248
+ workbook.set_properties(
249
+ :title => 'Title',
250
+ :subject => 'Subject',
251
+ :author => 'Author',
252
+ :keywords => 'Keywords',
253
+ :comments => 'Comments',
254
+ :created => nil
255
+ )
256
+
257
+ caption = " \tset_properties('+ Comments')"
258
+ target = %w(
259
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
260
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
261
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
262
+ 98 00 00 00 06 00 00 00 01 00 00 00 38 00 00 00
263
+ 02 00 00 00 40 00 00 00 03 00 00 00 50 00 00 00
264
+ 04 00 00 00 60 00 00 00 05 00 00 00 70 00 00 00
265
+ 06 00 00 00 84 00 00 00 02 00 00 00 E4 04 00 00
266
+ 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
267
+ 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
268
+ 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
269
+ 1E 00 00 00 09 00 00 00 4B 65 79 77 6F 72 64 73
270
+ 00 00 00 00 1E 00 00 00 09 00 00 00 43 6F 6D 6D
271
+ 65 6E 74 73 00 00 00 00
272
+ ).join(' ')
273
+
274
+ result = unpack_record(workbook.summary)
275
+ assert_equal(target, result, caption)
276
+
277
+ ###############################################################################
278
+ #
279
+ # Test 10. Same as previous + Last author.
280
+ #
281
+
282
+ workbook.set_properties(
283
+ :title => 'Title',
284
+ :subject => 'Subject',
285
+ :author => 'Author',
286
+ :keywords => 'Keywords',
287
+ :comments => 'Comments',
288
+ :last_author => 'Username',
289
+ :created => nil
290
+ )
291
+
292
+ caption = " \tset_properties('+ Last author')"
293
+ target = %w(
294
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
295
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
296
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
297
+ B4 00 00 00 07 00 00 00 01 00 00 00 40 00 00 00
298
+ 02 00 00 00 48 00 00 00 03 00 00 00 58 00 00 00
299
+ 04 00 00 00 68 00 00 00 05 00 00 00 78 00 00 00
300
+ 06 00 00 00 8C 00 00 00 08 00 00 00 A0 00 00 00
301
+ 02 00 00 00 E4 04 00 00 1E 00 00 00 06 00 00 00
302
+ 54 69 74 6C 65 00 00 00 1E 00 00 00 08 00 00 00
303
+ 53 75 62 6A 65 63 74 00 1E 00 00 00 07 00 00 00
304
+ 41 75 74 68 6F 72 00 00 1E 00 00 00 09 00 00 00
305
+ 4B 65 79 77 6F 72 64 73 00 00 00 00 1E 00 00 00
306
+ 09 00 00 00 43 6F 6D 6D 65 6E 74 73 00 00 00 00
307
+ 1E 00 00 00 09 00 00 00 55 73 65 72 6E 61 6D 65
308
+ 00 00 00 00
309
+ ).join(' ')
310
+
311
+ result = unpack_record(workbook.summary)
312
+ assert_equal(target, result, caption)
313
+
314
+ ###############################################################################
315
+ #
316
+ # Test 11. Same as previous + Creation date.
317
+ #
318
+
319
+ # Aug 19 23:20:13 2008
320
+ # $sec,$min,$hour,$mday,$mon,$year
321
+ # We normalise the time using timegm() so that the tests don't fail due to
322
+ # different timezones.
323
+
324
+ filetime = Time.gm(2008,8,19,23,20,13)
325
+ workbook.set_properties(
326
+ :title => 'Title',
327
+ :subject => 'Subject',
328
+ :author => 'Author',
329
+ :keywords => 'Keywords',
330
+ :comments => 'Comments',
331
+ :last_author => 'Username',
332
+ :created => filetime
333
+ )
334
+
335
+ caption = " \tset_properties('+ Creation date')"
336
+ target = %w(
337
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
338
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
339
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
340
+ C8 00 00 00 08 00 00 00 01 00 00 00 48 00 00 00
341
+ 02 00 00 00 50 00 00 00 03 00 00 00 60 00 00 00
342
+ 04 00 00 00 70 00 00 00 05 00 00 00 80 00 00 00
343
+ 06 00 00 00 94 00 00 00 08 00 00 00 A8 00 00 00
344
+ 0C 00 00 00 BC 00 00 00 02 00 00 00 E4 04 00 00
345
+ 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
346
+ 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
347
+ 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
348
+ 1E 00 00 00 09 00 00 00 4B 65 79 77 6F 72 64 73
349
+ 00 00 00 00 1E 00 00 00 09 00 00 00 43 6F 6D 6D
350
+ 65 6E 74 73 00 00 00 00 1E 00 00 00 09 00 00 00
351
+ 55 73 65 72 6E 61 6D 65 00 00 00 00 40 00 00 00
352
+ 80 74 89 21 52 02 C9 01
353
+ ).join(' ')
354
+
355
+ result = unpack_record(workbook.summary)
356
+ assert_equal(target, result, caption)
357
+
358
+ ###############################################################################
359
+ #
360
+ # Test 12. Same as previous. Date set at the workbook level.
361
+ #
362
+
363
+ # Wed Aug 20 00:20:13 2008
364
+ # $sec,$min,$hour,$mday,$mon,$year
365
+ # We normalise the time using timegm() so that the tests don't fail due to
366
+ # different timezones.
367
+ workbook.localtime = Time.gm(2008,8,19,23,20,13)
368
+
369
+ workbook.set_properties(
370
+ :title => 'Title',
371
+ :subject => 'Subject',
372
+ :author => 'Author',
373
+ :keywords => 'Keywords',
374
+ :comments => 'Comments',
375
+ :last_author => 'Username'
376
+ )
377
+
378
+ caption = " \tset_properties('+ Creation date')"
379
+ target = %w(
380
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
381
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
382
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
383
+ C8 00 00 00 08 00 00 00 01 00 00 00 48 00 00 00
384
+ 02 00 00 00 50 00 00 00 03 00 00 00 60 00 00 00
385
+ 04 00 00 00 70 00 00 00 05 00 00 00 80 00 00 00
386
+ 06 00 00 00 94 00 00 00 08 00 00 00 A8 00 00 00
387
+ 0C 00 00 00 BC 00 00 00 02 00 00 00 E4 04 00 00
388
+ 1E 00 00 00 06 00 00 00 54 69 74 6C 65 00 00 00
389
+ 1E 00 00 00 08 00 00 00 53 75 62 6A 65 63 74 00
390
+ 1E 00 00 00 07 00 00 00 41 75 74 68 6F 72 00 00
391
+ 1E 00 00 00 09 00 00 00 4B 65 79 77 6F 72 64 73
392
+ 00 00 00 00 1E 00 00 00 09 00 00 00 43 6F 6D 6D
393
+ 65 6E 74 73 00 00 00 00 1E 00 00 00 09 00 00 00
394
+ 55 73 65 72 6E 61 6D 65 00 00 00 00 40 00 00 00
395
+ 80 74 89 21 52 02 C9 01
396
+ ).join(' ')
397
+
398
+ result = unpack_record(workbook.summary)
399
+ assert_equal(target, result, caption)
400
+
401
+ ###############################################################################
402
+ #
403
+ # Test 14. UTF-8 string used.
404
+ #
405
+
406
+ workbook.set_properties(
407
+ :title => 'Title' + smiley,
408
+ :created => nil
409
+ )
410
+
411
+ caption = " \tset_properties(utf8)"
412
+ target = %w(
413
+ FE FF 00 00 05 01 02 00 00 00 00 00 00 00 00 00
414
+ 00 00 00 00 00 00 00 00 01 00 00 00 E0 85 9F F2
415
+ F9 4F 68 10 AB 91 08 00 2B 27 B3 D9 30 00 00 00
416
+ 34 00 00 00 02 00 00 00 01 00 00 00 18 00 00 00
417
+ 02 00 00 00 20 00 00 00 02 00 00 00 E9 FD 00 00
418
+ 1E 00 00 00 09 00 00 00 54 69 74 6C 65 E2 98 BA
419
+ 00 00 00 00
420
+ ).join(' ')
421
+
422
+ result = unpack_record(workbook.summary)
423
+ assert_equal(target, result, caption)
424
+
425
+ workbook.close
426
+
427
+ end
428
+
429
+ ###############################################################################
430
+ #
431
+ # Unpack the binary data into a format suitable for printing in tests.
432
+ #
433
+ def unpack_record(data)
434
+ data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
435
+ end
436
+
437
+ end