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
data/test/test_formula.rb CHANGED
@@ -1,61 +1,61 @@
1
- # -*- coding: utf-8 -*-
2
- require 'helper'
3
-
4
- class TC_Formula < Test::Unit::TestCase
5
-
6
- def setup
7
- @formula = Writeexcel::Formula.new(0)
8
- end
9
-
10
- def test_scan
11
- # scan must return array of token info
12
- string01 = '1 + 2 * LEN("String")'
13
- expected01 = [
14
- [:NUMBER, '1'],
15
- ['+', '+'],
16
- [:NUMBER, '2'],
17
- ['*', '*'],
18
- [:FUNC, 'LEN'],
19
- ['(', '('],
20
- [:STRING, '"String"'],
21
- [')', ')'],
22
- [:EOL, nil]
23
- ]
24
- assert_kind_of(Array, @formula.scan(string01))
25
- assert_equal(expected01, @formula.scan(string01))
26
-
27
- string02 = 'IF(A1>=0,SIN(0),COS(90))'
28
- expected02 = [
29
- [:FUNC, 'IF'],
30
- ['(', '('],
31
- [:REF2D, 'A1'],
32
- [:GE, '>='],
33
- [:NUMBER, '0'],
34
- [',', ','],
35
- [:FUNC, 'SIN'],
36
- ['(', '('],
37
- [:NUMBER, '0'],
38
- [')', ')'],
39
- [',', ','],
40
- [:FUNC, 'COS'],
41
- ['(', '('],
42
- [:NUMBER, '90'],
43
- [')', ')'],
44
- [')', ')'],
45
- [:EOL, nil]
46
- ]
47
- assert_kind_of(Array, @formula.scan(string02))
48
- assert_equal(expected02, @formula.scan(string02))
49
- end
50
-
51
- def test_reverse
52
- testcase = [
53
- [ [0,1,2,3,4], [0,[1,[2,3,[4]]]] ],
54
- [ [0,1,2,3,4,5], [[0,1,[2,3]],[4,5]] ]
55
- ]
56
- testcase.each do |t|
57
- assert_equal(t[0], @formula.reverse(t[1]))
58
- end
59
- end
60
-
61
- end
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+
4
+ class TC_Formula < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @formula = Writeexcel::Formula.new(0)
8
+ end
9
+
10
+ def test_scan
11
+ # scan must return array of token info
12
+ string01 = '1 + 2 * LEN("String")'
13
+ expected01 = [
14
+ [:NUMBER, '1'],
15
+ ['+', '+'],
16
+ [:NUMBER, '2'],
17
+ ['*', '*'],
18
+ [:FUNC, 'LEN'],
19
+ ['(', '('],
20
+ [:STRING, '"String"'],
21
+ [')', ')'],
22
+ [:EOL, nil]
23
+ ]
24
+ assert_kind_of(Array, @formula.scan(string01))
25
+ assert_equal(expected01, @formula.scan(string01))
26
+
27
+ string02 = 'IF(A1>=0,SIN(0),COS(90))'
28
+ expected02 = [
29
+ [:FUNC, 'IF'],
30
+ ['(', '('],
31
+ [:REF2D, 'A1'],
32
+ [:GE, '>='],
33
+ [:NUMBER, '0'],
34
+ [',', ','],
35
+ [:FUNC, 'SIN'],
36
+ ['(', '('],
37
+ [:NUMBER, '0'],
38
+ [')', ')'],
39
+ [',', ','],
40
+ [:FUNC, 'COS'],
41
+ ['(', '('],
42
+ [:NUMBER, '90'],
43
+ [')', ')'],
44
+ [')', ')'],
45
+ [:EOL, nil]
46
+ ]
47
+ assert_kind_of(Array, @formula.scan(string02))
48
+ assert_equal(expected02, @formula.scan(string02))
49
+ end
50
+
51
+ def test_reverse
52
+ testcase = [
53
+ [ [0,1,2,3,4], [0,[1,[2,3,[4]]]] ],
54
+ [ [0,1,2,3,4,5], [[0,1,[2,3]],[4,5]] ]
55
+ ]
56
+ testcase.each do |t|
57
+ assert_equal(t[0], @formula.reverse(t[1]))
58
+ end
59
+ end
60
+
61
+ end
data/test/test_ole.rb CHANGED
@@ -1,106 +1,106 @@
1
- # -*- coding: utf-8 -*-
2
- require 'helper'
3
- require 'stringio'
4
-
5
- class TC_OLE < Test::Unit::TestCase
6
-
7
- def setup
8
- @file = StringIO.new
9
- @ole = OLEWriter.new(@file)
10
- end
11
-
12
- def test_constructor
13
- assert_kind_of(OLEWriter, @ole)
14
- end
15
-
16
- def test_constants
17
- assert_equal(7087104, OLEWriter::MaxSize)
18
- assert_equal(4096, OLEWriter::BlockSize)
19
- assert_equal(512, OLEWriter::BlockDiv)
20
- assert_equal(127, OLEWriter::ListBlocks)
21
- end
22
-
23
- def test_calculate_sizes
24
- assert_respond_to(@ole, :calculate_sizes)
25
- assert_nothing_raised{ @ole.calculate_sizes }
26
- assert_equal(0, @ole.big_blocks)
27
- assert_equal(1, @ole.list_blocks)
28
- assert_equal(0, @ole.root_start)
29
- end
30
-
31
- def test_set_size_too_big
32
- assert(!@ole.set_size(999999999))
33
- end
34
-
35
- def test_book_size_large
36
- assert_nothing_raised{ @ole.set_size(8192) }
37
- assert_equal(8192, @ole.book_size)
38
- end
39
-
40
- def test_book_size_small
41
- assert_nothing_raised{ @ole.set_size(2048) }
42
- assert_equal(4096, @ole.book_size)
43
- end
44
-
45
- def test_biff_size
46
- assert_nothing_raised{ @ole.set_size(2048) }
47
- assert_equal(2048, @ole.biff_size)
48
- end
49
-
50
- def test_size_allowed
51
- assert_nothing_raised{ @ole.set_size }
52
- assert_equal(true, @ole.size_allowed)
53
- end
54
-
55
- def test_big_block_size_default
56
- assert_nothing_raised{ @ole.set_size }
57
- assert_nothing_raised{ @ole.calculate_sizes }
58
- assert_equal(8, @ole.big_blocks, "Bad big block size")
59
- end
60
-
61
- def test_big_block_size_rounded_up
62
- assert_nothing_raised{ @ole.set_size(4099) }
63
- assert_nothing_raised{ @ole.calculate_sizes }
64
- assert_equal(9, @ole.big_blocks, "Bad big block size")
65
- end
66
-
67
- def test_list_block_size
68
- assert_nothing_raised{ @ole.set_size }
69
- assert_nothing_raised{ @ole.calculate_sizes }
70
- assert_equal(1, @ole.list_blocks, "Bad list block size")
71
- end
72
-
73
- def test_root_start_size_default
74
- assert_nothing_raised{ @ole.set_size }
75
- assert_nothing_raised{ @ole.calculate_sizes }
76
- assert_equal(8, @ole.big_blocks, "Bad root start size")
77
- end
78
-
79
- def test_root_start_size_rounded_up
80
- assert_nothing_raised{ @ole.set_size(4099) }
81
- assert_nothing_raised{ @ole.calculate_sizes }
82
- assert_equal(9, @ole.big_blocks, "Bad root start size")
83
- end
84
-
85
- def test_write_header
86
- assert_nothing_raised{ @ole.write_header }
87
- #assert_nothing_raised{ @ole.close }
88
- #assert_equal(512, File.size(@file))
89
- end
90
-
91
- def test_write_big_block_depot
92
- assert_nothing_raised{ @ole.write_big_block_depot }
93
- #assert_nothing_raised{ @ole.close }
94
- #assert_equal(8, File.size(@file))
95
- end
96
-
97
- def test_write_property_storage_size
98
- assert_nothing_raised{ @ole.write_property_storage }
99
- #assert_nothing_raised{ @ole.close }
100
- #assert_equal(512, File.size(@file))
101
- end
102
-
103
- def teardown
104
- @ole.close rescue nil
105
- end
106
- end
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'stringio'
4
+
5
+ class TC_OLE < Test::Unit::TestCase
6
+
7
+ def setup
8
+ @file = StringIO.new
9
+ @ole = OLEWriter.new(@file)
10
+ end
11
+
12
+ def test_constructor
13
+ assert_kind_of(OLEWriter, @ole)
14
+ end
15
+
16
+ def test_constants
17
+ assert_equal(7087104, OLEWriter::MaxSize)
18
+ assert_equal(4096, OLEWriter::BlockSize)
19
+ assert_equal(512, OLEWriter::BlockDiv)
20
+ assert_equal(127, OLEWriter::ListBlocks)
21
+ end
22
+
23
+ def test_calculate_sizes
24
+ assert_respond_to(@ole, :calculate_sizes)
25
+ assert_nothing_raised{ @ole.calculate_sizes }
26
+ assert_equal(0, @ole.big_blocks)
27
+ assert_equal(1, @ole.list_blocks)
28
+ assert_equal(0, @ole.root_start)
29
+ end
30
+
31
+ def test_set_size_too_big
32
+ assert(!@ole.set_size(999999999))
33
+ end
34
+
35
+ def test_book_size_large
36
+ assert_nothing_raised{ @ole.set_size(8192) }
37
+ assert_equal(8192, @ole.book_size)
38
+ end
39
+
40
+ def test_book_size_small
41
+ assert_nothing_raised{ @ole.set_size(2048) }
42
+ assert_equal(4096, @ole.book_size)
43
+ end
44
+
45
+ def test_biff_size
46
+ assert_nothing_raised{ @ole.set_size(2048) }
47
+ assert_equal(2048, @ole.biff_size)
48
+ end
49
+
50
+ def test_size_allowed
51
+ assert_nothing_raised{ @ole.set_size }
52
+ assert_equal(true, @ole.size_allowed)
53
+ end
54
+
55
+ def test_big_block_size_default
56
+ assert_nothing_raised{ @ole.set_size }
57
+ assert_nothing_raised{ @ole.calculate_sizes }
58
+ assert_equal(8, @ole.big_blocks, "Bad big block size")
59
+ end
60
+
61
+ def test_big_block_size_rounded_up
62
+ assert_nothing_raised{ @ole.set_size(4099) }
63
+ assert_nothing_raised{ @ole.calculate_sizes }
64
+ assert_equal(9, @ole.big_blocks, "Bad big block size")
65
+ end
66
+
67
+ def test_list_block_size
68
+ assert_nothing_raised{ @ole.set_size }
69
+ assert_nothing_raised{ @ole.calculate_sizes }
70
+ assert_equal(1, @ole.list_blocks, "Bad list block size")
71
+ end
72
+
73
+ def test_root_start_size_default
74
+ assert_nothing_raised{ @ole.set_size }
75
+ assert_nothing_raised{ @ole.calculate_sizes }
76
+ assert_equal(8, @ole.big_blocks, "Bad root start size")
77
+ end
78
+
79
+ def test_root_start_size_rounded_up
80
+ assert_nothing_raised{ @ole.set_size(4099) }
81
+ assert_nothing_raised{ @ole.calculate_sizes }
82
+ assert_equal(9, @ole.big_blocks, "Bad root start size")
83
+ end
84
+
85
+ def test_write_header
86
+ assert_nothing_raised{ @ole.write_header }
87
+ #assert_nothing_raised{ @ole.close }
88
+ #assert_equal(512, File.size(@file))
89
+ end
90
+
91
+ def test_write_big_block_depot
92
+ assert_nothing_raised{ @ole.write_big_block_depot }
93
+ #assert_nothing_raised{ @ole.close }
94
+ #assert_equal(8, File.size(@file))
95
+ end
96
+
97
+ def test_write_property_storage_size
98
+ assert_nothing_raised{ @ole.write_property_storage }
99
+ #assert_nothing_raised{ @ole.close }
100
+ #assert_equal(512, File.size(@file))
101
+ end
102
+
103
+ def teardown
104
+ @ole.close rescue nil
105
+ end
106
+ end
@@ -1,125 +1,125 @@
1
- # -*- coding: utf-8 -*-
2
- require 'helper'
3
- require 'stringio'
4
-
5
- class TC_OLEStorageLite < Test::Unit::TestCase
6
- TEST_DIR = File.expand_path(File.dirname(__FILE__))
7
- PERL_OUTDIR = File.join(TEST_DIR, 'perl_output')
8
- EXCEL_OUTDIR = File.join(TEST_DIR, 'excelfile')
9
-
10
- def setup
11
- @ole = OLEStorageLite.new
12
- end
13
-
14
- def teardown
15
- end
16
-
17
- def test_olestoragelite_new
18
- ole = OLEStorageLite.new
19
- assert_nil(ole.file)
20
-
21
- io = StringIO.new
22
- ole = OLEStorageLite.new(io)
23
- assert_equal(io, ole.file)
24
-
25
- file = 'test.ole'
26
- ole = OLEStorageLite.new(file)
27
- assert_equal(file, ole.file)
28
-
29
- end
30
-
31
- def test_asc2ucs
32
- result = @ole.asc2ucs('Root Entry')
33
- target = %w(
34
- 52 00 6F 00 6F 00 74 00 20 00 45 00 6E 00 74 00 72 00 79 00
35
- ).join(" ")
36
- assert_equal(target, unpack_record(result))
37
- end
38
-
39
- def test_ucs2asc
40
- strings = [
41
- 'Root Entry',
42
- ''
43
- ]
44
- strings.each do |str|
45
- result = @ole.ucs2asc(@ole.asc2ucs(str))
46
- assert_equal(str, result)
47
- end
48
- end
49
-
50
- def unpack_record(data)
51
- data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
52
- end
53
-
54
- end
55
-
56
- class TC_OLEStorageLitePPSFile < Test::Unit::TestCase
57
- def setup
58
- end
59
-
60
- def teardown
61
- end
62
-
63
- def test_constructor
64
- data = [
65
- { :name => 'name', :data => 'data' },
66
- { :name => '', :data => 'data' },
67
- { :name => 'name', :data => '' },
68
- { :name => '', :data => '' },
69
- ]
70
- data.each do |d|
71
- olefile = OLEStorageLitePPSFile.new(d[:name])
72
- assert_equal(d[:name], olefile.name)
73
- end
74
- data.each do |d|
75
- olefile = OLEStorageLitePPSFile.new(d[:name], d[:data])
76
- assert_equal(d[:name], olefile.name)
77
- assert_equal(d[:data], olefile.data)
78
- end
79
- end
80
-
81
- def test_append_no_file
82
- olefile = OLEStorageLitePPSFile.new('name')
83
- assert_equal('', olefile.data)
84
-
85
- data = [ "data", "\r\n", "\r", "\n" ]
86
- data.each do |d|
87
- olefile = OLEStorageLitePPSFile.new('name')
88
- olefile.append(d)
89
- assert_equal(d, olefile.data)
90
- end
91
- end
92
-
93
- def test_append_tempfile
94
- data = [ "data", "\r\n", "\r", "\n" ]
95
- data.each do |d|
96
- olefile = OLEStorageLitePPSFile.new('name')
97
- olefile.set_file
98
- pps_file = olefile.pps_file
99
-
100
- olefile.append(d)
101
- pps_file.open
102
- pps_file.binmode
103
- assert_equal(d, pps_file.read)
104
- end
105
- end
106
-
107
- def test_append_stringio
108
- data = [ "data", "\r\n", "\r", "\n" ]
109
- data.each do |d|
110
- sio = StringIO.new
111
- olefile = OLEStorageLitePPSFile.new('name')
112
- olefile.set_file(sio)
113
- pps_file = olefile.pps_file
114
-
115
- olefile.append(d)
116
- pps_file.rewind
117
- assert_equal(d, pps_file.read)
118
- end
119
- end
120
-
121
- def unpack_record(data)
122
- data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
123
- end
124
-
125
- end
1
+ # -*- coding: utf-8 -*-
2
+ require 'helper'
3
+ require 'stringio'
4
+
5
+ class TC_OLEStorageLite < Test::Unit::TestCase
6
+ TEST_DIR = File.expand_path(File.dirname(__FILE__))
7
+ PERL_OUTDIR = File.join(TEST_DIR, 'perl_output')
8
+ EXCEL_OUTDIR = File.join(TEST_DIR, 'excelfile')
9
+
10
+ def setup
11
+ @ole = OLEStorageLite.new
12
+ end
13
+
14
+ def teardown
15
+ end
16
+
17
+ def test_olestoragelite_new
18
+ ole = OLEStorageLite.new
19
+ assert_nil(ole.file)
20
+
21
+ io = StringIO.new
22
+ ole = OLEStorageLite.new(io)
23
+ assert_equal(io, ole.file)
24
+
25
+ file = 'test.ole'
26
+ ole = OLEStorageLite.new(file)
27
+ assert_equal(file, ole.file)
28
+
29
+ end
30
+
31
+ def test_asc2ucs
32
+ result = @ole.asc2ucs('Root Entry')
33
+ target = %w(
34
+ 52 00 6F 00 6F 00 74 00 20 00 45 00 6E 00 74 00 72 00 79 00
35
+ ).join(" ")
36
+ assert_equal(target, unpack_record(result))
37
+ end
38
+
39
+ def test_ucs2asc
40
+ strings = [
41
+ 'Root Entry',
42
+ ''
43
+ ]
44
+ strings.each do |str|
45
+ result = @ole.ucs2asc(@ole.asc2ucs(str))
46
+ assert_equal(str, result)
47
+ end
48
+ end
49
+
50
+ def unpack_record(data)
51
+ data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
52
+ end
53
+
54
+ end
55
+
56
+ class TC_OLEStorageLitePPSFile < Test::Unit::TestCase
57
+ def setup
58
+ end
59
+
60
+ def teardown
61
+ end
62
+
63
+ def test_constructor
64
+ data = [
65
+ { :name => 'name', :data => 'data' },
66
+ { :name => '', :data => 'data' },
67
+ { :name => 'name', :data => '' },
68
+ { :name => '', :data => '' },
69
+ ]
70
+ data.each do |d|
71
+ olefile = OLEStorageLitePPSFile.new(d[:name])
72
+ assert_equal(d[:name], olefile.name)
73
+ end
74
+ data.each do |d|
75
+ olefile = OLEStorageLitePPSFile.new(d[:name], d[:data])
76
+ assert_equal(d[:name], olefile.name)
77
+ assert_equal(d[:data], olefile.data)
78
+ end
79
+ end
80
+
81
+ def test_append_no_file
82
+ olefile = OLEStorageLitePPSFile.new('name')
83
+ assert_equal('', olefile.data)
84
+
85
+ data = [ "data", "\r\n", "\r", "\n" ]
86
+ data.each do |d|
87
+ olefile = OLEStorageLitePPSFile.new('name')
88
+ olefile.append(d)
89
+ assert_equal(d, olefile.data)
90
+ end
91
+ end
92
+
93
+ def test_append_tempfile
94
+ data = [ "data", "\r\n", "\r", "\n" ]
95
+ data.each do |d|
96
+ olefile = OLEStorageLitePPSFile.new('name')
97
+ olefile.set_file
98
+ pps_file = olefile.pps_file
99
+
100
+ olefile.append(d)
101
+ pps_file.open
102
+ pps_file.binmode
103
+ assert_equal(d, pps_file.read)
104
+ end
105
+ end
106
+
107
+ def test_append_stringio
108
+ data = [ "data", "\r\n", "\r", "\n" ]
109
+ data.each do |d|
110
+ sio = StringIO.new
111
+ olefile = OLEStorageLitePPSFile.new('name')
112
+ olefile.set_file(sio)
113
+ pps_file = olefile.pps_file
114
+
115
+ olefile.append(d)
116
+ pps_file.rewind
117
+ assert_equal(d, pps_file.read)
118
+ end
119
+ end
120
+
121
+ def unpack_record(data)
122
+ data.unpack('C*').map! {|c| sprintf("%02X", c) }.join(' ')
123
+ end
124
+
125
+ end