rbpdf 1.19.0 → 1.19.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +10 -0
  3. data/Gemfile +4 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.md +16 -0
  6. data/Rakefile +4 -0
  7. data/lib/core/rmagick.rb +1 -1
  8. data/lib/rbpdf.rb +82 -47
  9. data/lib/rbpdf/version.rb +5 -1
  10. data/lib/rbpdf_encode_ok.rb +15170 -0
  11. data/lib/rbpdf_encode_ok2.rb +15178 -0
  12. data/lib/unicode_data.rb +18 -1
  13. data/rbpdf.gemspec +21 -5
  14. data/test/_rbpdf_image_test.rb_ +161 -0
  15. data/test/err_font1.rb +4 -0
  16. data/test/err_font2.rb +4 -0
  17. data/test/logo_rbpdf_8bit .png +0 -0
  18. data/test/logo_rbpdf_8bit+ .png +0 -0
  19. data/test/logo_rbpdf_8bit_/343/201/202/343/201/204/343/201/206/343/201/210/343/201/212.png +0 -0
  20. data/test/rbpdf_bidi_test.rb +76 -71
  21. data/test/rbpdf_bookmark_test.rb +38 -28
  22. data/test/rbpdf_cell_test.rb +120 -40
  23. data/test/rbpdf_content_test.rb +62 -45
  24. data/test/rbpdf_css_test.rb +275 -271
  25. data/test/rbpdf_dom_test.rb +123 -113
  26. data/test/rbpdf_font_func_test.rb +6 -2
  27. data/test/rbpdf_font_style_test.rb +7 -3
  28. data/test/rbpdf_font_test.rb +44 -27
  29. data/test/rbpdf_format_test.rb +15 -11
  30. data/test/rbpdf_func_test.rb +26 -22
  31. data/test/rbpdf_html_anchor_test.rb +11 -13
  32. data/test/rbpdf_html_func_test.rb +34 -30
  33. data/test/rbpdf_html_test.rb +58 -5
  34. data/test/rbpdf_htmlcell_test.rb +10 -6
  35. data/test/rbpdf_http_test.rb +67 -0
  36. data/test/rbpdf_image_rmagick_test.rb +70 -87
  37. data/test/rbpdf_image_test.rb +86 -22
  38. data/test/rbpdf_test.rb +88 -90
  39. data/test/rbpdf_transaction_test.rb +4 -0
  40. data/test/rbpdf_viewerpreferences_test.rb +5 -1
  41. data/test/rbpdf_write_test.rb +49 -45
  42. data/test/test_helper.rb +5 -0
  43. data/test_unicode.rbpdf +4 -0
  44. metadata +22 -9
@@ -1,3 +1,7 @@
1
+ # Copyright (c) 2011-2017 NAITOH Jun
2
+ # Released under the MIT license
3
+ # http://www.opensource.org/licenses/MIT
4
+
1
5
  require 'test_helper'
2
6
 
3
7
  class RbpdfCssTest < Test::Unit::TestCase
@@ -21,42 +25,42 @@ class RbpdfCssTest < Test::Unit::TestCase
21
25
 
22
26
  # empty
23
27
  css = pdf.extractCSSproperties('')
24
- assert_equal css, {}
28
+ assert_equal({}, css)
25
29
  # empty blocks
26
30
  css = pdf.extractCSSproperties('h1 {}')
27
- assert_equal css, {}
31
+ assert_equal({}, css)
28
32
  # comment
29
33
  css = pdf.extractCSSproperties('/* comment */')
30
- assert_equal css, {}
34
+ assert_equal({}, css)
31
35
 
32
36
  css = pdf.extractCSSproperties('h1 { color: navy; font-family: times; }')
33
- assert_equal css, {"0001 h1"=>"color:navy;font-family:times;"}
37
+ assert_equal({"0001 h1"=>"color:navy;font-family:times;"}, css)
34
38
 
35
39
  css = pdf.extractCSSproperties('h1 { color: navy; font-family: times; } p.first { color: #003300; font-family: helvetica; font-size: 12pt; }')
36
- assert_equal css, {"0001 h1"=>"color:navy;font-family:times;", "0021 p.first"=>"color:#003300;font-family:helvetica;font-size:12pt;"}
40
+ assert_equal({"0001 h1"=>"color:navy;font-family:times;", "0021 p.first"=>"color:#003300;font-family:helvetica;font-size:12pt;"}, css)
37
41
 
38
42
  css = pdf.extractCSSproperties('h1,h2,h3{background-color:#e0e0e0}')
39
- assert_equal css, {"0001 h1"=>"background-color:#e0e0e0", "0001 h2"=>"background-color:#e0e0e0", "0001 h3"=>"background-color:#e0e0e0"}
43
+ assert_equal({"0001 h1"=>"background-color:#e0e0e0", "0001 h2"=>"background-color:#e0e0e0", "0001 h3"=>"background-color:#e0e0e0"}, css)
40
44
 
41
45
  css = pdf.extractCSSproperties('p.second { color: rgb(00,63,127); font-family: times; font-size: 12pt; text-align: justify; }')
42
- assert_equal css, {"0011 p.second"=>"color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;"}
46
+ assert_equal({"0011 p.second"=>"color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;"}, css)
43
47
 
44
48
  css = pdf.extractCSSproperties('p#second { color: rgb(00,63,127); font-family: times; font-size: 12pt; text-align: justify; }')
45
- assert_equal css, {"0101 p#second"=>"color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;"}
49
+ assert_equal({"0101 p#second"=>"color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;"}, css)
46
50
 
47
51
  css = pdf.extractCSSproperties('p.first { color: rgb(00,63,127); } p.second { font-family: times; }')
48
- assert_equal css, {"0021 p.first"=>"color:rgb(00,63,127);", "0011 p.second"=>"font-family:times;"}
52
+ assert_equal({"0021 p.first"=>"color:rgb(00,63,127);", "0011 p.second"=>"font-family:times;"}, css)
49
53
 
50
54
  css = pdf.extractCSSproperties('p#first { color: rgb(00,63,127); } p#second { color: rgb(00,63,127); }')
51
- assert_equal css, {"0111 p#first"=>"color:rgb(00,63,127);", "0101 p#second"=>"color:rgb(00,63,127);"}
55
+ assert_equal({"0111 p#first"=>"color:rgb(00,63,127);", "0101 p#second"=>"color:rgb(00,63,127);"}, css)
52
56
 
53
57
  # media
54
58
  css = pdf.extractCSSproperties('@media print { body { font: 10pt serif } }')
55
- assert_equal css, {"0001 body"=>"font:10pt serif"}
59
+ assert_equal({"0001 body"=>"font:10pt serif"}, css)
56
60
  css = pdf.extractCSSproperties('@media screen { body { font: 12pt sans-serif } }')
57
- assert_equal css, {}
61
+ assert_equal({}, css)
58
62
  css = pdf.extractCSSproperties('@media all { body { line-height: 1.2 } }')
59
- assert_equal css, {"0001 body"=>"line-height:1.2"}
63
+ assert_equal({"0001 body"=>"line-height:1.2"}, css)
60
64
 
61
65
  css = pdf.extractCSSproperties('@media print {
62
66
  #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
@@ -68,7 +72,7 @@ class RbpdfCssTest < Test::Unit::TestCase
68
72
  table.list {margin-top:0.5em;}
69
73
  table.list th, table.list td {border: 1px solid #aaa;}
70
74
  } @media all { body { line-height: 1.2 } }')
71
- assert_equal css, {"0100 #top-menu"=>"display:none;",
75
+ assert_equal({"0100 #top-menu"=>"display:none;",
72
76
  "0100 #header"=>"display:none;",
73
77
  "0100 #main-menu"=>"display:none;",
74
78
  "0100 #sidebar"=>"display:none;",
@@ -83,7 +87,7 @@ class RbpdfCssTest < Test::Unit::TestCase
83
87
  "0011 table.list"=>"margin-top:0.5em;",
84
88
  "0012 table.list th"=>"border:1px solid #aaa;",
85
89
  "0012 table.list td"=>"border:1px solid #aaa;",
86
- "0001 body"=>"line-height:1.2"}
90
+ "0001 body"=>"line-height:1.2"}, css)
87
91
  end
88
92
 
89
93
  test "CSS Selector Valid test" do
@@ -91,34 +95,34 @@ class RbpdfCssTest < Test::Unit::TestCase
91
95
 
92
96
  # Simple CSS
93
97
  dom = pdf.getHtmlDomArray('<p>abc</p>')
94
- assert_equal dom.length, 4
98
+ assert_equal 4, dom.length
95
99
  valid = pdf.isValidCSSSelectorForTag(dom, 1, ' p') # dom, key, css selector
96
- assert_equal valid, true
100
+ assert_equal true, valid
97
101
 
98
102
  dom = pdf.getHtmlDomArray('<h1>abc</h1>')
99
- assert_equal dom.length, 4
103
+ assert_equal 4, dom.length
100
104
  valid = pdf.isValidCSSSelectorForTag(dom, 1, ' h1') # dom, key, css selector
101
- assert_equal valid, true
105
+ assert_equal true, valid
102
106
 
103
107
  dom = pdf.getHtmlDomArray('<p class="first">abc</p>')
104
- assert_equal dom.length, 4
108
+ assert_equal 4, dom.length
105
109
  valid = pdf.isValidCSSSelectorForTag(dom, 1, ' p.first') # dom, key, css selector
106
- assert_equal valid, true
110
+ assert_equal true, valid
107
111
 
108
112
  dom = pdf.getHtmlDomArray('<p class="first">abc<span>def</span></p>')
109
- assert_equal dom.length, 7
113
+ assert_equal 7, dom.length
110
114
  valid = pdf.isValidCSSSelectorForTag(dom, 3, ' p.first span') # dom, key, css selector
111
- assert_equal valid, true
115
+ assert_equal true, valid
112
116
 
113
117
  dom = pdf.getHtmlDomArray('<p id="second">abc</p>')
114
- assert_equal dom.length, 4
118
+ assert_equal 4, dom.length
115
119
  valid = pdf.isValidCSSSelectorForTag(dom, 1, ' p#second') # dom, key, css selector
116
- assert_equal valid, true
120
+ assert_equal true, valid
117
121
 
118
122
  dom = pdf.getHtmlDomArray('<p id="second">abc<span>def</span></p>')
119
- assert_equal dom.length, 7
123
+ assert_equal 7, dom.length
120
124
  valid = pdf.isValidCSSSelectorForTag(dom, 3, ' p#second > span') # dom, key, css selector
121
- assert_equal valid, true
125
+ assert_equal true, valid
122
126
  end
123
127
 
124
128
  test "CSS Tag Sytle test 1" do
@@ -126,32 +130,32 @@ class RbpdfCssTest < Test::Unit::TestCase
126
130
 
127
131
  # Simple CSS
128
132
  dom = pdf.getHtmlDomArray('<h1>abc</h1>')
129
- assert_equal dom.length, 4
133
+ assert_equal 4, dom.length
130
134
 
131
135
  tag = pdf.getTagStyleFromCSS(dom, 1, {'0001 h1'=>'color:navy;font-family:times;'}) # dom, key, css selector
132
- assert_equal tag, ';color:navy;font-family:times;'
136
+ assert_equal ';color:navy;font-family:times;', tag
133
137
 
134
138
  tag = pdf.getTagStyleFromCSS(dom, 1, {'0001h1'=>'color:navy;font-family:times;'}) # dom, key, css selector
135
- assert_equal tag, ''
139
+ assert_equal '', tag
136
140
 
137
141
  tag = pdf.getTagStyleFromCSS(dom, 1, {'0001 h2'=>'color:navy;font-family:times;'}) # dom, key, css selector
138
- assert_equal tag, ''
142
+ assert_equal '', tag
139
143
  end
140
144
 
141
145
  test "CSS Tag Sytle test 2" do
142
146
  pdf = MYPDF.new
143
147
 
144
148
  dom = pdf.getHtmlDomArray('<p class="first">abc</p>')
145
- assert_equal dom.length, 4
149
+ assert_equal 4, dom.length
146
150
 
147
151
  tag = pdf.getTagStyleFromCSS(dom, 1, {'0021 p.first'=>'color:rgb(00,63,127);'})
148
- assert_equal tag, ';color:rgb(00,63,127);'
152
+ assert_equal ';color:rgb(00,63,127);', tag
149
153
 
150
154
  dom = pdf.getHtmlDomArray('<p id="second">abc</p>')
151
- assert_equal dom.length, 4
155
+ assert_equal 4, dom.length
152
156
 
153
157
  tag = pdf.getTagStyleFromCSS(dom, 1, {'0101 p#second'=>'color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;'})
154
- assert_equal tag, ';color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;'
158
+ assert_equal ';color:rgb(00,63,127);font-family:times;font-size:12pt;text-align:justify;', tag
155
159
  end
156
160
 
157
161
  test "CSS Dom test" do
@@ -167,25 +171,25 @@ class RbpdfCssTest < Test::Unit::TestCase
167
171
  # '<h2>HTML TABLE:</h2>
168
172
  # <table><tr><th>abc<marker style="font-size:0"/></th></tr>
169
173
  # <tr><td>def<marker style="font-size:0"/></td></tr></table>'
170
- assert_equal dom.length, 18
174
+ assert_equal 18, dom.length
171
175
 
172
- assert_equal dom[0]['parent'], 0 # Root
173
- assert_equal dom[0]['tag'], false
174
- assert_equal dom[0]['attribute'], {}
176
+ assert_equal 0, dom[0]['parent'] # Root
177
+ assert_equal false, dom[0]['tag']
178
+ assert_equal({}, dom[0]['attribute'])
175
179
 
176
180
  # <h2>
177
- assert_equal dom[1]['elkey'], 0
178
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
179
- assert_equal dom[1]['tag'], true
180
- assert_equal dom[1]['opening'], true
181
- assert_equal dom[1]['value'], 'h2'
181
+ assert_equal 0, dom[1]['elkey']
182
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
183
+ assert_equal true, dom[1]['tag']
184
+ assert_equal true, dom[1]['opening']
185
+ assert_equal 'h2', dom[1]['value']
182
186
 
183
187
  # <table>
184
- assert_equal dom[4]['elkey'], 3
185
- assert_equal dom[4]['value'], 'table'
186
- assert_equal dom[4]['attribute'], {'border'=>'2px #ff0000 solid', 'style'=>';border:2px #ff0000 solid;'}
187
- assert_equal dom[4]['style']['border'], '2px #ff0000 solid'
188
- assert_equal dom[4]['attribute']['border'], '2px #ff0000 solid'
188
+ assert_equal 3, dom[4]['elkey']
189
+ assert_equal 'table', dom[4]['value']
190
+ assert_equal({'border'=>'2px #ff0000 solid', 'style'=>';border:2px #ff0000 solid;'}, dom[4]['attribute'])
191
+ assert_equal '2px #ff0000 solid', dom[4]['style']['border']
192
+ assert_equal '2px #ff0000 solid', dom[4]['attribute']['border']
189
193
  end
190
194
 
191
195
  test "CSS Dom table thead test" do
@@ -208,26 +212,26 @@ class RbpdfCssTest < Test::Unit::TestCase
208
212
  # '<h2>HTML TABLE:</h2>
209
213
  # <table><tr><th>abc<marker style="font-size:0"/></th></tr>
210
214
  # <tr><td>def<marker style="font-size:0"/></td></tr></table>'
211
- assert_equal dom.length, 24
215
+ assert_equal 24, dom.length
212
216
 
213
- assert_equal dom[0]['parent'], 0 # Root
214
- assert_equal dom[0]['tag'], false
215
- assert_equal dom[0]['attribute'], {}
217
+ assert_equal 0, dom[0]['parent'] # Root
218
+ assert_equal false, dom[0]['tag']
219
+ assert_equal({}, dom[0]['attribute'])
216
220
 
217
221
  # <h2>
218
- assert_equal dom[1]['elkey'], 0
219
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
220
- assert_equal dom[1]['tag'], true
221
- assert_equal dom[1]['opening'], true
222
- assert_equal dom[1]['value'], 'h2'
222
+ assert_equal 0, dom[1]['elkey']
223
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
224
+ assert_equal true, dom[1]['tag']
225
+ assert_equal true, dom[1]['opening']
226
+ assert_equal 'h2', dom[1]['value']
223
227
 
224
228
  # <table>
225
- assert_equal dom[4]['elkey'], 3
226
- assert_equal dom[4]['value'], 'table'
227
- assert_equal dom[4]['attribute'], {'border'=>'2px #ff0000 solid', 'style'=>';border:2px #ff0000 solid;'}
228
- assert_equal dom[4]['style']['border'], '2px #ff0000 solid'
229
- assert_equal dom[4]['attribute']['border'], '2px #ff0000 solid'
230
- assert_equal dom[4]['thead'], '<style>table {;border:2px #ff0000 solid;}</style><table tablehead="1"><tr><th>abc<marker style="font-size:0"/></th></tr></table>'
229
+ assert_equal 3, dom[4]['elkey']
230
+ assert_equal 'table', dom[4]['value']
231
+ assert_equal({'border'=>'2px #ff0000 solid', 'style'=>';border:2px #ff0000 solid;'}, dom[4]['attribute'])
232
+ assert_equal '2px #ff0000 solid', dom[4]['style']['border']
233
+ assert_equal '2px #ff0000 solid', dom[4]['attribute']['border']
234
+ assert_equal '<style>table {;border:2px #ff0000 solid;}</style><table tablehead="1"><tr><th>abc<marker style="font-size:0"/></th></tr></table>', dom[4]['thead']
231
235
  end
232
236
 
233
237
  test "CSS Dom line-height test normal" do
@@ -238,15 +242,15 @@ class RbpdfCssTest < Test::Unit::TestCase
238
242
  dom = pdf.getHtmlDomArray(html)
239
243
  ## remove style tag block (by getHtmlDomArray()) ##
240
244
  # '<h2>HTML TEST</h2>'
241
- assert_equal dom.length, 4
245
+ assert_equal 4, dom.length
242
246
 
243
247
  # <h2>
244
- assert_equal dom[1]['elkey'], 0
245
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
246
- assert_equal dom[1]['tag'], true
247
- assert_equal dom[1]['opening'], true
248
- assert_equal dom[1]['value'], 'h2'
249
- assert_equal dom[1]['line-height'], 1.25
248
+ assert_equal 0, dom[1]['elkey']
249
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
250
+ assert_equal true, dom[1]['tag']
251
+ assert_equal true, dom[1]['opening']
252
+ assert_equal 'h2', dom[1]['value']
253
+ assert_equal 1.25, dom[1]['line-height']
250
254
  end
251
255
 
252
256
  test "CSS Dom line-height test numeric" do
@@ -260,12 +264,12 @@ class RbpdfCssTest < Test::Unit::TestCase
260
264
  assert_equal dom.length, 4
261
265
 
262
266
  # <h2>
263
- assert_equal dom[1]['elkey'], 0
264
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
265
- assert_equal dom[1]['tag'], true
266
- assert_equal dom[1]['opening'], true
267
- assert_equal dom[1]['value'], 'h2'
268
- assert_equal dom[1]['line-height'], 1.4
267
+ assert_equal 0, dom[1]['elkey']
268
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
269
+ assert_equal true, dom[1]['tag']
270
+ assert_equal true, dom[1]['opening']
271
+ assert_equal 'h2', dom[1]['value']
272
+ assert_equal 1.4, dom[1]['line-height']
269
273
  end
270
274
 
271
275
  test "CSS Dom line-height test percentage" do
@@ -279,12 +283,12 @@ class RbpdfCssTest < Test::Unit::TestCase
279
283
  assert_equal dom.length, 4
280
284
 
281
285
  # <h2>
282
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
283
- assert_equal dom[1]['elkey'], 0
284
- assert_equal dom[1]['tag'], true
285
- assert_equal dom[1]['opening'], true
286
- assert_equal dom[1]['value'], 'h2'
287
- assert_equal dom[1]['line-height'], 0.1
286
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
287
+ assert_equal 0, dom[1]['elkey']
288
+ assert_equal true, dom[1]['tag']
289
+ assert_equal true, dom[1]['opening']
290
+ assert_equal 'h2', dom[1]['value']
291
+ assert_equal 0.1, dom[1]['line-height']
288
292
  end
289
293
 
290
294
  test "CSS Dom class test" do
@@ -299,30 +303,30 @@ class RbpdfCssTest < Test::Unit::TestCase
299
303
  assert_equal dom.length, 7
300
304
 
301
305
  # <p class="first">
302
- assert_equal dom[1]['elkey'], 0
303
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
304
- assert_equal dom[1]['tag'], true
305
- assert_equal dom[1]['opening'], true
306
- assert_equal dom[1]['value'], 'p'
307
- assert_equal dom[1]['attribute']['class'], 'first'
308
- assert_equal dom[1]['style']['color'], '#003300'
309
- assert_equal dom[1]['style']['font-family'], 'helvetica'
310
- assert_equal dom[1]['style']['font-size'], '12pt'
306
+ assert_equal 0, dom[1]['elkey']
307
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
308
+ assert_equal true, dom[1]['tag']
309
+ assert_equal true, dom[1]['opening']
310
+ assert_equal 'p', dom[1]['value']
311
+ assert_equal 'first', dom[1]['attribute']['class']
312
+ assert_equal '#003300', dom[1]['style']['color']
313
+ assert_equal 'helvetica', dom[1]['style']['font-family']
314
+ assert_equal '12pt', dom[1]['style']['font-size']
311
315
 
312
316
  # Example
313
- assert_equal dom[2]['elkey'], 1
314
- assert_equal dom[2]['parent'], 1
315
- assert_equal dom[2]['tag'], false
316
- assert_equal dom[2]['value'], 'Example '
317
+ assert_equal 1, dom[2]['elkey']
318
+ assert_equal 1, dom[2]['parent']
319
+ assert_equal false, dom[2]['tag']
320
+ assert_equal 'Example ', dom[2]['value']
317
321
 
318
322
  # <span>
319
- assert_equal dom[3]['elkey'], 2
320
- assert_equal dom[3]['parent'], 1
321
- assert_equal dom[3]['tag'], true
322
- assert_equal dom[3]['opening'], true
323
- assert_equal dom[3]['value'], 'span'
324
- assert_equal dom[3]['style']['color'], '#006600'
325
- assert_equal dom[3]['style']['font-style'], 'italic'
323
+ assert_equal 2, dom[3]['elkey']
324
+ assert_equal 1, dom[3]['parent']
325
+ assert_equal true, dom[3]['tag']
326
+ assert_equal true, dom[3]['opening']
327
+ assert_equal 'span', dom[3]['value']
328
+ assert_equal '#006600', dom[3]['style']['color']
329
+ assert_equal 'italic', dom[3]['style']['font-style']
326
330
  end
327
331
 
328
332
  test "CSS Dom height width test" do
@@ -332,33 +336,33 @@ class RbpdfCssTest < Test::Unit::TestCase
332
336
  p.second { width: 70%; }</style>
333
337
  <p class="first">ABC</p><p class="second">DEF</p>'
334
338
  dom = pdf.getHtmlDomArray(html)
335
- assert_equal dom.length, 7
339
+ assert_equal 7, dom.length
336
340
 
337
341
  # <p class="first">
338
- assert_equal dom[1]['elkey'], 0
339
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
340
- assert_equal dom[1]['tag'], true
341
- assert_equal dom[1]['opening'], true
342
- assert_equal dom[1]['value'], 'p'
342
+ assert_equal 0, dom[1]['elkey']
343
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
344
+ assert_equal true, dom[1]['tag']
345
+ assert_equal true, dom[1]['opening']
346
+ assert_equal 'p', dom[1]['value']
343
347
  assert_not_nil dom[1]['style']
344
- assert_equal dom[1]['style']['height'], '60%'
345
- assert_equal dom[1]['height'], '60%'
348
+ assert_equal '60%', dom[1]['style']['height']
349
+ assert_equal '60%', dom[1]['height']
346
350
 
347
351
  # ABC
348
- assert_equal dom[2]['elkey'], 1
349
- assert_equal dom[2]['parent'], 1
350
- assert_equal dom[2]['tag'], false
351
- assert_equal dom[2]['value'], 'ABC'
352
+ assert_equal 1, dom[2]['elkey']
353
+ assert_equal 1, dom[2]['parent']
354
+ assert_equal false, dom[2]['tag']
355
+ assert_equal 'ABC', dom[2]['value']
352
356
 
353
357
  # <p class="second">
354
- assert_equal dom[4]['elkey'], 3
355
- assert_equal dom[4]['parent'], 0 # parent -> parent tag key
356
- assert_equal dom[4]['tag'], true
357
- assert_equal dom[4]['opening'], true
358
- assert_equal dom[4]['value'], 'p'
358
+ assert_equal 3, dom[4]['elkey']
359
+ assert_equal 0, dom[4]['parent'] # parent -> parent tag key
360
+ assert_equal true, dom[4]['tag']
361
+ assert_equal true, dom[4]['opening']
362
+ assert_equal 'p', dom[4]['value']
359
363
  assert_not_nil dom[4]['style']
360
- assert_equal dom[4]['style']['width'], '70%'
361
- assert_equal dom[4]['width'], '70%'
364
+ assert_equal '70%', dom[4]['style']['width']
365
+ assert_equal '70%', dom[4]['width']
362
366
  end
363
367
 
364
368
  test "CSS Dom font-weight test" do
@@ -367,23 +371,23 @@ class RbpdfCssTest < Test::Unit::TestCase
367
371
  html = '<style> p.first { font-weight: bold; }</style>
368
372
  <p class="first">ABC</p><p class="second">DEF</p>'
369
373
  dom = pdf.getHtmlDomArray(html)
370
- assert_equal dom.length, 7
374
+ assert_equal 7, dom.length
371
375
 
372
376
  # <p class="first">
373
- assert_equal dom[1]['elkey'], 0
374
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
375
- assert_equal dom[1]['tag'], true
376
- assert_equal dom[1]['opening'], true
377
- assert_equal dom[1]['value'], 'p'
377
+ assert_equal 0, dom[1]['elkey']
378
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
379
+ assert_equal true, dom[1]['tag']
380
+ assert_equal true, dom[1]['opening']
381
+ assert_equal 'p', dom[1]['value']
378
382
  assert_not_nil dom[1]['style']
379
- assert_equal dom[1]['style']['font-weight'], 'bold'
380
- assert_equal dom[1]['fontstyle'], 'B'
383
+ assert_equal 'bold', dom[1]['style']['font-weight']
384
+ assert_equal 'B', dom[1]['fontstyle']
381
385
 
382
386
  # ABC
383
- assert_equal dom[2]['elkey'], 1
384
- assert_equal dom[2]['parent'], 1
385
- assert_equal dom[2]['tag'], false
386
- assert_equal dom[2]['value'], 'ABC'
387
+ assert_equal 1, dom[2]['elkey']
388
+ assert_equal 1, dom[2]['parent']
389
+ assert_equal false, dom[2]['tag']
390
+ assert_equal 'ABC', dom[2]['value']
387
391
  end
388
392
 
389
393
  test "CSS Dom id test" do
@@ -394,29 +398,29 @@ class RbpdfCssTest < Test::Unit::TestCase
394
398
  dom = pdf.getHtmlDomArray(html)
395
399
  ## remove style tag block (by getHtmlDomArray()) ##
396
400
  # '<p id="second">Example <span>Fusce</span></p>'
397
- assert_equal dom.length, 7
401
+ assert_equal 7, dom.length
398
402
 
399
403
  # <p id="second">
400
- assert_equal dom[1]['elkey'], 0
401
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
402
- assert_equal dom[1]['tag'], true
403
- assert_equal dom[1]['opening'], true
404
- assert_equal dom[1]['value'], 'p'
405
- assert_equal dom[1]['attribute']['id'], 'second'
404
+ assert_equal 0, dom[1]['elkey']
405
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
406
+ assert_equal true, dom[1]['tag']
407
+ assert_equal true, dom[1]['opening']
408
+ assert_equal 'p', dom[1]['value']
409
+ assert_equal 'second', dom[1]['attribute']['id']
406
410
 
407
411
  # Example
408
- assert_equal dom[2]['elkey'], 1
409
- assert_equal dom[2]['parent'], 1
410
- assert_equal dom[2]['tag'], false
411
- assert_equal dom[2]['value'], 'Example '
412
+ assert_equal 1, dom[2]['elkey']
413
+ assert_equal 1, dom[2]['parent']
414
+ assert_equal false, dom[2]['tag']
415
+ assert_equal 'Example ', dom[2]['value']
412
416
 
413
417
  # <span>
414
- assert_equal dom[3]['elkey'], 2
415
- assert_equal dom[3]['parent'], 1
416
- assert_equal dom[3]['tag'], true
417
- assert_equal dom[3]['opening'], true
418
- assert_equal dom[3]['value'], 'span'
419
- assert_equal dom[3]['style']['background-color'], '#FFFFAA'
418
+ assert_equal 2, dom[3]['elkey']
419
+ assert_equal 1, dom[3]['parent']
420
+ assert_equal true, dom[3]['tag']
421
+ assert_equal true, dom[3]['opening']
422
+ assert_equal 'span', dom[3]['value']
423
+ assert_equal '#FFFFAA', dom[3]['style']['background-color']
420
424
  end
421
425
 
422
426
  test "CSS Dom text-decoration test" do
@@ -429,63 +433,63 @@ class RbpdfCssTest < Test::Unit::TestCase
429
433
  p.fifth {text-decoration: underline overline line-through;}</style>
430
434
  <p class="first">ABC</p><p class="second">DEF</p><p class="third">GHI</p><p class="fourth">JKL</p><p class="fifth">MNO</p>'
431
435
  dom = pdf.getHtmlDomArray(html)
432
- assert_equal dom.length, 16
436
+ assert_equal 16, dom.length
433
437
 
434
438
  # <p class="first">
435
- assert_equal dom[1]['elkey'], 0
436
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
437
- assert_equal dom[1]['tag'], true
438
- assert_equal dom[1]['opening'], true
439
- assert_equal dom[1]['value'], 'p'
439
+ assert_equal 0, dom[1]['elkey']
440
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
441
+ assert_equal true, dom[1]['tag']
442
+ assert_equal true, dom[1]['opening']
443
+ assert_equal 'p', dom[1]['value']
440
444
  assert_not_nil dom[1]['style']
441
- assert_equal dom[1]['style']['text-decoration'], 'none'
442
- assert_equal dom[1]['fontstyle'], ''
445
+ assert_equal 'none', dom[1]['style']['text-decoration']
446
+ assert_equal '', dom[1]['fontstyle']
443
447
 
444
448
  # ABC
445
- assert_equal dom[2]['elkey'], 1
446
- assert_equal dom[2]['parent'], 1
447
- assert_equal dom[2]['tag'], false
448
- assert_equal dom[2]['value'], 'ABC'
449
+ assert_equal 1, dom[2]['elkey']
450
+ assert_equal 1, dom[2]['parent']
451
+ assert_equal false, dom[2]['tag']
452
+ assert_equal 'ABC', dom[2]['value']
449
453
 
450
454
  # <p class="second">
451
- assert_equal dom[4]['elkey'], 3
452
- assert_equal dom[4]['parent'], 0 # parent -> parent tag key
453
- assert_equal dom[4]['tag'], true
454
- assert_equal dom[4]['opening'], true
455
- assert_equal dom[4]['value'], 'p'
455
+ assert_equal 3, dom[4]['elkey']
456
+ assert_equal 0, dom[4]['parent'] # parent -> parent tag key
457
+ assert_equal true, dom[4]['tag']
458
+ assert_equal true, dom[4]['opening']
459
+ assert_equal 'p', dom[4]['value']
456
460
  assert_not_nil dom[1]['style']
457
- assert_equal dom[4]['style']['text-decoration'], 'underline'
458
- assert_equal dom[4]['fontstyle'], 'U'
461
+ assert_equal 'underline', dom[4]['style']['text-decoration']
462
+ assert_equal 'U', dom[4]['fontstyle']
459
463
 
460
464
  # <p class="third">
461
- assert_equal dom[7]['elkey'], 6
462
- assert_equal dom[7]['parent'], 0 # parent -> parent tag key
463
- assert_equal dom[7]['tag'], true
464
- assert_equal dom[7]['opening'], true
465
- assert_equal dom[7]['value'], 'p'
465
+ assert_equal 6, dom[7]['elkey']
466
+ assert_equal 0, dom[7]['parent'] # parent -> parent tag key
467
+ assert_equal true, dom[7]['tag']
468
+ assert_equal true, dom[7]['opening']
469
+ assert_equal 'p', dom[7]['value']
466
470
  assert_not_nil dom[7]['style']
467
- assert_equal dom[7]['style']['text-decoration'], 'overline'
468
- assert_equal dom[7]['fontstyle'], 'O'
471
+ assert_equal 'overline', dom[7]['style']['text-decoration']
472
+ assert_equal 'O', dom[7]['fontstyle']
469
473
 
470
474
  # <p class="fourth">
471
- assert_equal dom[10]['elkey'], 9
472
- assert_equal dom[10]['parent'], 0 # parent -> parent tag key
473
- assert_equal dom[10]['tag'], true
474
- assert_equal dom[10]['opening'], true
475
- assert_equal dom[10]['value'], 'p'
475
+ assert_equal 9, dom[10]['elkey']
476
+ assert_equal 0, dom[10]['parent'] # parent -> parent tag key
477
+ assert_equal true, dom[10]['tag']
478
+ assert_equal true, dom[10]['opening']
479
+ assert_equal 'p', dom[10]['value']
476
480
  assert_not_nil dom[10]['style']
477
- assert_equal dom[10]['style']['text-decoration'], 'line-through'
478
- assert_equal dom[10]['fontstyle'], 'D'
481
+ assert_equal 'line-through', dom[10]['style']['text-decoration']
482
+ assert_equal 'D', dom[10]['fontstyle']
479
483
 
480
484
  # <p class="fifth">
481
- assert_equal dom[13]['elkey'], 12
482
- assert_equal dom[13]['parent'], 0 # parent -> parent tag key
483
- assert_equal dom[13]['tag'], true
484
- assert_equal dom[13]['opening'], true
485
- assert_equal dom[13]['value'], 'p'
485
+ assert_equal 12, dom[13]['elkey']
486
+ assert_equal 0, dom[13]['parent'] # parent -> parent tag key
487
+ assert_equal true, dom[13]['tag']
488
+ assert_equal true, dom[13]['opening']
489
+ assert_equal 'p', dom[13]['value']
486
490
  assert_not_nil dom[13]['style']
487
- assert_equal dom[13]['style']['text-decoration'], 'underline overline line-through'
488
- assert_equal dom[13]['fontstyle'], 'UOD'
491
+ assert_equal 'underline overline line-through', dom[13]['style']['text-decoration']
492
+ assert_equal 'UOD', dom[13]['fontstyle']
489
493
  end
490
494
 
491
495
  test "CSS Dom text-indent test" do
@@ -497,53 +501,53 @@ class RbpdfCssTest < Test::Unit::TestCase
497
501
  p.fourth { text-indent: 50%; }</style>
498
502
  <p class="first">ABC</p><p class="second">DEF</p><p class="third">GHI</p><p class="fourth">JKL</p>'
499
503
  dom = pdf.getHtmlDomArray(html)
500
- assert_equal dom.length, 13
504
+ assert_equal 13, dom.length
501
505
 
502
506
  # <p class="first">
503
- assert_equal dom[1]['elkey'], 0
504
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
505
- assert_equal dom[1]['tag'], true
506
- assert_equal dom[1]['opening'], true
507
- assert_equal dom[1]['value'], 'p'
507
+ assert_equal 0, dom[1]['elkey']
508
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
509
+ assert_equal true, dom[1]['tag']
510
+ assert_equal true, dom[1]['opening']
511
+ assert_equal 'p', dom[1]['value']
508
512
  assert_not_nil dom[1]['style']
509
- assert_equal dom[1]['style']['text-indent'], '10px'
510
- assert_in_delta dom[1]['text-indent'], 3.53, 0.01
513
+ assert_equal '10px', dom[1]['style']['text-indent']
514
+ assert_in_delta 3.53, dom[1]['text-indent'], 0.01
511
515
 
512
516
  # ABC
513
- assert_equal dom[2]['elkey'], 1
514
- assert_equal dom[2]['parent'], 1
515
- assert_equal dom[2]['tag'], false
516
- assert_equal dom[2]['value'], 'ABC'
517
+ assert_equal 1, dom[2]['elkey']
518
+ assert_equal 1, dom[2]['parent']
519
+ assert_equal false, dom[2]['tag']
520
+ assert_equal 'ABC', dom[2]['value']
517
521
 
518
522
  # <p class="second">
519
- assert_equal dom[4]['elkey'], 3
520
- assert_equal dom[4]['parent'], 0 # parent -> parent tag key
521
- assert_equal dom[4]['tag'], true
522
- assert_equal dom[4]['opening'], true
523
- assert_equal dom[4]['value'], 'p'
523
+ assert_equal 3, dom[4]['elkey']
524
+ assert_equal 0, dom[4]['parent'] # parent -> parent tag key
525
+ assert_equal true, dom[4]['tag']
526
+ assert_equal true, dom[4]['opening']
527
+ assert_equal 'p', dom[4]['value']
524
528
  assert_not_nil dom[4]['style']
525
- assert_equal dom[4]['style']['text-indent'], '5em'
526
- assert_equal dom[4]['text-indent'], 5.0
529
+ assert_equal '5em', dom[4]['style']['text-indent']
530
+ assert_equal 5.0, dom[4]['text-indent']
527
531
 
528
532
  # <p class="third">
529
- assert_equal dom[7]['elkey'], 6
530
- assert_equal dom[7]['parent'], 0 # parent -> parent tag key
531
- assert_equal dom[7]['tag'], true
532
- assert_equal dom[7]['opening'], true
533
- assert_equal dom[7]['value'], 'p'
533
+ assert_equal 6, dom[7]['elkey']
534
+ assert_equal 0, dom[7]['parent'] # parent -> parent tag key
535
+ assert_equal true, dom[7]['tag']
536
+ assert_equal true, dom[7]['opening']
537
+ assert_equal 'p', dom[7]['value']
534
538
  assert_not_nil dom[7]['style']
535
- assert_equal dom[7]['style']['text-indent'], '5ex'
536
- assert_equal dom[7]['text-indent'], 2.5
539
+ assert_equal '5ex', dom[7]['style']['text-indent']
540
+ assert_equal 2.5, dom[7]['text-indent']
537
541
 
538
542
  # <p class="fourth">
539
- assert_equal dom[10]['elkey'], 9
540
- assert_equal dom[10]['parent'], 0 # parent -> parent tag key
541
- assert_equal dom[10]['tag'], true
542
- assert_equal dom[10]['opening'], true
543
- assert_equal dom[10]['value'], 'p'
543
+ assert_equal 9, dom[10]['elkey']
544
+ assert_equal 0, dom[10]['parent'] # parent -> parent tag key
545
+ assert_equal true, dom[10]['tag']
546
+ assert_equal true, dom[10]['opening']
547
+ assert_equal 'p', dom[10]['value']
544
548
  assert_not_nil dom[10]['style']
545
- assert_equal dom[10]['style']['text-indent'], '50%'
546
- assert_equal dom[10]['text-indent'], 0.5
549
+ assert_equal '50%', dom[10]['style']['text-indent']
550
+ assert_equal 0.5, dom[10]['text-indent']
547
551
  end
548
552
 
549
553
  test "CSS Dom list-style-type test" do
@@ -555,43 +559,43 @@ class RbpdfCssTest < Test::Unit::TestCase
555
559
  p.fourth { list-style-type: square; }</style>
556
560
  <p class="first">ABC</p><p class="second">DEF</p><p class="third">GHI</p><p class="fourth">JKL</p>'
557
561
  dom = pdf.getHtmlDomArray(html)
558
- assert_equal dom.length, 13
562
+ assert_equal 13, dom.length
559
563
 
560
564
  # <p class="first">
561
- assert_equal dom[1]['elkey'], 0
562
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
563
- assert_equal dom[1]['tag'], true
564
- assert_equal dom[1]['opening'], true
565
- assert_equal dom[1]['value'], 'p'
565
+ assert_equal 0, dom[1]['elkey']
566
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
567
+ assert_equal true, dom[1]['tag']
568
+ assert_equal true, dom[1]['opening']
569
+ assert_equal 'p', dom[1]['value']
566
570
  assert_not_nil dom[1]['style']
567
- assert_equal dom[1]['style']['list-style-type'], 'none'
568
- assert_equal dom[1]['listtype'], 'none'
571
+ assert_equal 'none', dom[1]['style']['list-style-type']
572
+ assert_equal 'none', dom[1]['listtype']
569
573
 
570
574
  # ABC
571
- assert_equal dom[2]['elkey'], 1
572
- assert_equal dom[2]['parent'], 1
573
- assert_equal dom[2]['tag'], false
574
- assert_equal dom[2]['value'], 'ABC'
575
+ assert_equal 1, dom[2]['elkey']
576
+ assert_equal 1, dom[2]['parent']
577
+ assert_equal false, dom[2]['tag']
578
+ assert_equal 'ABC', dom[2]['value']
575
579
 
576
580
  # <p class="second">
577
- assert_equal dom[4]['elkey'], 3
578
- assert_equal dom[4]['parent'], 0 # parent -> parent tag key
579
- assert_equal dom[4]['tag'], true
580
- assert_equal dom[4]['opening'], true
581
- assert_equal dom[4]['value'], 'p'
581
+ assert_equal 3, dom[4]['elkey']
582
+ assert_equal 0, dom[4]['parent'] # parent -> parent tag key
583
+ assert_equal true, dom[4]['tag']
584
+ assert_equal true, dom[4]['opening']
585
+ assert_equal 'p', dom[4]['value']
582
586
  assert_not_nil dom[4]['style']
583
- assert_equal dom[4]['style']['list-style-type'], 'disc'
584
- assert_equal dom[4]['listtype'], 'disc'
587
+ assert_equal 'disc', dom[4]['style']['list-style-type']
588
+ assert_equal 'disc', dom[4]['listtype']
585
589
 
586
590
  # <p class="third">
587
- assert_equal dom[7]['elkey'], 6
588
- assert_equal dom[7]['parent'], 0 # parent -> parent tag key
589
- assert_equal dom[7]['tag'], true
590
- assert_equal dom[7]['opening'], true
591
- assert_equal dom[7]['value'], 'p'
591
+ assert_equal 6, dom[7]['elkey']
592
+ assert_equal 0, dom[7]['parent'] # parent -> parent tag key
593
+ assert_equal true, dom[7]['tag']
594
+ assert_equal true, dom[7]['opening']
595
+ assert_equal 'p', dom[7]['value']
592
596
  assert_not_nil dom[7]['style']
593
- assert_equal dom[7]['style']['list-style-type'], 'circle'
594
- assert_equal dom[7]['listtype'], 'circle'
597
+ assert_equal 'circle', dom[7]['style']['list-style-type']
598
+ assert_equal 'circle', dom[7]['listtype']
595
599
  end
596
600
 
597
601
  test "CSS Dom page-break test" do
@@ -601,36 +605,36 @@ class RbpdfCssTest < Test::Unit::TestCase
601
605
  p.second { page-break-inside:avoid; }</style>
602
606
  <p class="first">ABC</p><p class="second">DEF</p>'
603
607
  dom = pdf.getHtmlDomArray(html)
604
- assert_equal dom.length, 7
608
+ assert_equal 7, dom.length
605
609
 
606
610
  # <p class="first">
607
- assert_equal dom[1]['elkey'], 0
608
- assert_equal dom[1]['parent'], 0 # parent -> parent tag key
609
- assert_equal dom[1]['tag'], true
610
- assert_equal dom[1]['opening'], true
611
- assert_equal dom[1]['value'], 'p'
611
+ assert_equal 0, dom[1]['elkey']
612
+ assert_equal 0, dom[1]['parent'] # parent -> parent tag key
613
+ assert_equal true, dom[1]['tag']
614
+ assert_equal true, dom[1]['opening']
615
+ assert_equal 'p', dom[1]['value']
612
616
  assert_not_nil dom[1]['style']
613
- assert_equal dom[1]['style']['page-break-before'], 'left'
614
- assert_equal dom[1]['style']['page-break-after'], 'always'
617
+ assert_equal 'left', dom[1]['style']['page-break-before']
618
+ assert_equal 'always', dom[1]['style']['page-break-after']
615
619
  assert_not_nil dom[1]['attribute']
616
- assert_equal dom[1]['attribute']['pagebreak'], 'left'
617
- assert_equal dom[1]['attribute']['pagebreakafter'], 'true'
620
+ assert_equal 'left', dom[1]['attribute']['pagebreak']
621
+ assert_equal 'true', dom[1]['attribute']['pagebreakafter']
618
622
 
619
623
  # ABC
620
- assert_equal dom[2]['elkey'], 1
621
- assert_equal dom[2]['parent'], 1
622
- assert_equal dom[2]['tag'], false
623
- assert_equal dom[2]['value'], 'ABC'
624
+ assert_equal 1, dom[2]['elkey']
625
+ assert_equal 1, dom[2]['parent']
626
+ assert_equal false, dom[2]['tag']
627
+ assert_equal 'ABC', dom[2]['value']
624
628
 
625
629
  # <p class="second">
626
- assert_equal dom[4]['elkey'], 3
627
- assert_equal dom[4]['parent'], 0 # parent -> parent tag key
628
- assert_equal dom[4]['tag'], true
629
- assert_equal dom[4]['opening'], true
630
- assert_equal dom[4]['value'], 'p'
630
+ assert_equal 3, dom[4]['elkey']
631
+ assert_equal 0, dom[4]['parent'] # parent -> parent tag key
632
+ assert_equal true, dom[4]['tag']
633
+ assert_equal true, dom[4]['opening']
634
+ assert_equal 'p', dom[4]['value']
631
635
  assert_not_nil dom[1]['style']
632
- assert_equal dom[4]['style']['page-break-inside'], 'avoid'
636
+ assert_equal 'avoid', dom[4]['style']['page-break-inside']
633
637
  assert_not_nil dom[4]['attribute']
634
- assert_equal dom[4]['attribute']['nobr'], 'true'
638
+ assert_equal 'true', dom[4]['attribute']['nobr']
635
639
  end
636
640
  end