slaw 5.0.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,714 +7,6 @@ describe Slaw::Parse::Builder do
7
7
  let(:parser) { double("parser") }
8
8
  subject { Slaw::Parse::Builder.new(parser: parser) }
9
9
 
10
- describe '#adjust_blocklists' do
11
- it 'should nest simple blocks' do
12
- doc = xml2doc(subsection(<<XML
13
- <blockList id="section-10.1.lst0" renest="true">
14
- <item id="section-10.1.lst0.a">
15
- <num>(a)</num>
16
- <p>foo</p>
17
- </item>
18
- <item id="section-10.1.lst0.i">
19
- <num>(i)</num>
20
- <p>item-i</p>
21
- </item>
22
- <item id="section-10.1.lst0.ii">
23
- <num>(ii)</num>
24
- <p>item-ii</p>
25
- </item>
26
- <item id="section-10.1.lst0.iii">
27
- <num>(iii)</num>
28
- <p>item-iii</p>
29
- </item>
30
- <item id="section-10.1.lst0.aa">
31
- <num>(aa)</num>
32
- <p>item-aa</p>
33
- </item>
34
- <item id="section-10.1.lst0.bb">
35
- <num>(bb)</num>
36
- <p>item-bb</p>
37
- </item>
38
- </blockList>
39
- XML
40
- ))
41
-
42
- subject.adjust_blocklists(doc)
43
- doc.to_s.should == subsection(<<XML
44
- <blockList id="section-10.1.lst0">
45
- <item id="section-10.1.lst0.a">
46
- <num>(a)</num>
47
- <blockList id="section-10.1.lst0.a.list0">
48
- <listIntroduction>foo</listIntroduction>
49
- <item id="section-10.1.lst0.a.list0.i">
50
- <num>(i)</num>
51
- <p>item-i</p>
52
- </item>
53
- <item id="section-10.1.lst0.a.list0.ii">
54
- <num>(ii)</num>
55
- <p>item-ii</p>
56
- </item>
57
- <item id="section-10.1.lst0.a.list0.iii">
58
- <num>(iii)</num>
59
- <blockList id="section-10.1.lst0.a.list0.iii.list0">
60
- <listIntroduction>item-iii</listIntroduction>
61
- <item id="section-10.1.lst0.a.list0.iii.list0.aa">
62
- <num>(aa)</num>
63
- <p>item-aa</p>
64
- </item>
65
- <item id="section-10.1.lst0.a.list0.iii.list0.bb">
66
- <num>(bb)</num>
67
- <p>item-bb</p>
68
- </item>
69
- </blockList>
70
- </item>
71
- </blockList>
72
- </item>
73
- </blockList>
74
- XML
75
- )
76
- end
77
-
78
- # -------------------------------------------------------------------------
79
-
80
- it 'should jump back up a level' do
81
- doc = xml2doc(subsection(<<XML
82
- <blockList id="section-10.1.lst0" renest="true">
83
- <item id="section-10.1.lst0.a">
84
- <num>(a)</num>
85
- <p>foo</p>
86
- </item>
87
- <item id="section-10.1.lst0.i">
88
- <num>(i)</num>
89
- <p>item-i</p>
90
- </item>
91
- <item id="section-10.1.lst0.ii">
92
- <num>(ii)</num>
93
- <p>item-ii</p>
94
- </item>
95
- <item id="section-10.1.lst0.c">
96
- <num>(c)</num>
97
- <p>item-c</p>
98
- </item>
99
- </blockList>
100
- XML
101
- ))
102
-
103
- subject.adjust_blocklists(doc)
104
- doc.to_s.should == subsection(<<XML
105
- <blockList id="section-10.1.lst0">
106
- <item id="section-10.1.lst0.a">
107
- <num>(a)</num>
108
- <blockList id="section-10.1.lst0.a.list0">
109
- <listIntroduction>foo</listIntroduction>
110
- <item id="section-10.1.lst0.a.list0.i">
111
- <num>(i)</num>
112
- <p>item-i</p>
113
- </item>
114
- <item id="section-10.1.lst0.a.list0.ii">
115
- <num>(ii)</num>
116
- <p>item-ii</p>
117
- </item>
118
- </blockList>
119
- </item>
120
- <item id="section-10.1.lst0.c">
121
- <num>(c)</num>
122
- <p>item-c</p>
123
- </item>
124
- </blockList>
125
- XML
126
- )
127
- end
128
-
129
- # -------------------------------------------------------------------------
130
-
131
- it 'should handle (i) correctly' do
132
- doc = xml2doc(subsection(<<XML
133
- <blockList id="section-10.1.lst0" renest="true">
134
- <item id="section-10.1.lst0.h">
135
- <num>(h)</num>
136
- <p>foo</p>
137
- </item>
138
- <item id="section-10.1.lst0.i">
139
- <num>(i)</num>
140
- <p>item-i</p>
141
- </item>
142
- <item id="section-10.1.lst0.j">
143
- <num>(j)</num>
144
- <p>item-ii</p>
145
- </item>
146
- </blockList>
147
- XML
148
- ))
149
-
150
- subject.adjust_blocklists(doc)
151
- doc.to_s.should == subsection(<<XML
152
- <blockList id="section-10.1.lst0">
153
- <item id="section-10.1.lst0.h">
154
- <num>(h)</num>
155
- <p>foo</p>
156
- </item>
157
- <item id="section-10.1.lst0.i">
158
- <num>(i)</num>
159
- <p>item-i</p>
160
- </item>
161
- <item id="section-10.1.lst0.j">
162
- <num>(j)</num>
163
- <p>item-ii</p>
164
- </item>
165
- </blockList>
166
- XML
167
- )
168
- end
169
-
170
- # -------------------------------------------------------------------------
171
-
172
- it 'should handle (u) (v) and (x) correctly' do
173
- doc = xml2doc(subsection(<<XML
174
- <blockList id="section-10.1.lst0" renest="true">
175
- <item id="section-10.1.lst0.t">
176
- <num>(t)</num>
177
- <p>foo</p>
178
- </item>
179
- <item id="section-10.1.lst0.u">
180
- <num>(u)</num>
181
- <p>item-i</p>
182
- </item>
183
- <item id="section-10.1.lst0.v">
184
- <num>(v)</num>
185
- <p>item-ii</p>
186
- </item>
187
- <item id="section-10.1.lst0.w">
188
- <num>(w)</num>
189
- <p>item-ii</p>
190
- </item>
191
- <item id="section-10.1.lst0.x">
192
- <num>(x)</num>
193
- <p>item-ii</p>
194
- </item>
195
- </blockList>
196
- XML
197
- ))
198
-
199
- subject.adjust_blocklists(doc)
200
- doc.to_s.should == subsection(<<XML
201
- <blockList id="section-10.1.lst0">
202
- <item id="section-10.1.lst0.t">
203
- <num>(t)</num>
204
- <p>foo</p>
205
- </item>
206
- <item id="section-10.1.lst0.u">
207
- <num>(u)</num>
208
- <p>item-i</p>
209
- </item>
210
- <item id="section-10.1.lst0.v">
211
- <num>(v)</num>
212
- <p>item-ii</p>
213
- </item>
214
- <item id="section-10.1.lst0.w">
215
- <num>(w)</num>
216
- <p>item-ii</p>
217
- </item>
218
- <item id="section-10.1.lst0.x">
219
- <num>(x)</num>
220
- <p>item-ii</p>
221
- </item>
222
- </blockList>
223
- XML
224
- )
225
- end
226
-
227
-
228
- # -------------------------------------------------------------------------
229
-
230
- it 'should handle (j) correctly' do
231
- doc = xml2doc(subsection(<<XML
232
- <blockList id="section-28.3.list2" renest="true">
233
- <item id="section-28.3.list2.g">
234
- <num>(g)</num>
235
- <p>all <term refersTo="#term-memorial_work" id="trm381">memorial work</term> up to 150 mm in thickness must be securely attached to the base;</p>
236
- </item>
237
- <item id="section-28.3.list2.h">
238
- <num>(h)</num>
239
- <p>all the components of <term refersTo="#term-memorial_work" id="trm382">memorial work</term> must be completed before being brought into a <term refersTo="#term-cemetery" id="trm383">cemetery</term>;</p>
240
- </item>
241
- <item id="section-28.3.list2.i">
242
- <num>(i)</num>
243
- <p>footstones must consist of one solid piece;</p>
244
- </item>
245
- <item id="section-28.3.list2.j">
246
- <num>(j)</num>
247
- <p>in all cases where <term refersTo="#term-memorial_work" id="trm384">memorial work</term> rests on a base -</p>
248
- </item>
249
- <item id="section-28.3.list2.i">
250
- <num>(i)</num>
251
- <p>such <term refersTo="#term-memorial_work" id="trm385">memorial work</term> must have a foundation;</p>
252
- </item>
253
- <item id="section-28.3.list2.ii">
254
- <num>(ii)</num>
255
- <p>such <term refersTo="#term-memorial_work" id="trm386">memorial work</term> must be set with cement mortar;</p>
256
- </item>
257
- <item id="section-28.3.list2.iii">
258
- <num>(iii)</num>
259
- <p>the bottom base of a single <term refersTo="#term-memorial_work" id="trm387">memorial work</term> must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double <term refersTo="#term-memorial_work" id="trm388">memorial work</term> not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
260
- </item>
261
- </blockList>
262
- XML
263
- ))
264
-
265
- subject.adjust_blocklists(doc)
266
- doc.to_s.should == subsection(<<XML
267
- <blockList id="section-28.3.list2">
268
- <item id="section-28.3.list2.g">
269
- <num>(g)</num>
270
- <p>all <term refersTo="#term-memorial_work" id="trm381">memorial work</term> up to 150 mm in thickness must be securely attached to the base;</p>
271
- </item>
272
- <item id="section-28.3.list2.h">
273
- <num>(h)</num>
274
- <p>all the components of <term refersTo="#term-memorial_work" id="trm382">memorial work</term> must be completed before being brought into a <term refersTo="#term-cemetery" id="trm383">cemetery</term>;</p>
275
- </item>
276
- <item id="section-28.3.list2.i">
277
- <num>(i)</num>
278
- <p>footstones must consist of one solid piece;</p>
279
- </item>
280
- <item id="section-28.3.list2.j">
281
- <num>(j)</num>
282
- <blockList id="section-28.3.list2.j.list0">
283
- <listIntroduction>in all cases where <term refersTo="#term-memorial_work" id="trm384">memorial work</term> rests on a base -</listIntroduction>
284
- <item id="section-28.3.list2.j.list0.i">
285
- <num>(i)</num>
286
- <p>such <term refersTo="#term-memorial_work" id="trm385">memorial work</term> must have a foundation;</p>
287
- </item>
288
- <item id="section-28.3.list2.j.list0.ii">
289
- <num>(ii)</num>
290
- <p>such <term refersTo="#term-memorial_work" id="trm386">memorial work</term> must be set with cement mortar;</p>
291
- </item>
292
- <item id="section-28.3.list2.j.list0.iii">
293
- <num>(iii)</num>
294
- <p>the bottom base of a single <term refersTo="#term-memorial_work" id="trm387">memorial work</term> must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double <term refersTo="#term-memorial_work" id="trm388">memorial work</term> not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
295
- </item>
296
- </blockList>
297
- </item>
298
- </blockList>
299
- XML
300
- )
301
- end
302
-
303
- # -------------------------------------------------------------------------
304
- it 'should handle (I) correctly' do
305
- doc = xml2doc(subsection(<<XML
306
- <blockList id="section-28.3.list2" renest="true">
307
- <item id="section-28.3.list2.g">
308
- <num>(g)</num>
309
- <p>all memorial work up to 150 mm in thickness must be securely attached to the base;</p>
310
- </item>
311
- <item id="section-28.3.list2.h">
312
- <num>(h)</num>
313
- <p>all the components of memorial work must be completed before being brought into a cemetery;</p>
314
- </item>
315
- <item id="section-28.3.list2.i">
316
- <num>(i)</num>
317
- <p>item i</p>
318
- </item>
319
- <item id="section-28.3.list2.I">
320
- <num>(I)</num>
321
- <p>a subitem</p>
322
- </item>
323
- <item id="section-28.3.list2.II">
324
- <num>(II)</num>
325
- <p>another subitem</p>
326
- </item>
327
- <item id="section-28.3.list2.j">
328
- <num>(j)</num>
329
- <p>in all cases where memorial work rests on a base -</p>
330
- </item>
331
- <item id="section-28.3.list2.i">
332
- <num>(i)</num>
333
- <p>such memorial work must have a foundation;</p>
334
- </item>
335
- <item id="section-28.3.list2.ii">
336
- <num>(ii)</num>
337
- <p>such memorial work must be set with cement mortar;</p>
338
- </item>
339
- <item id="section-28.3.list2.iii">
340
- <num>(iii)</num>
341
- <p>the bottom base of a single memorial work must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double memorial work not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
342
- </item>
343
- </blockList>
344
- XML
345
- ))
346
-
347
- subject.adjust_blocklists(doc)
348
- doc.to_s.should == subsection(<<XML
349
- <blockList id="section-28.3.list2">
350
- <item id="section-28.3.list2.g">
351
- <num>(g)</num>
352
- <p>all memorial work up to 150 mm in thickness must be securely attached to the base;</p>
353
- </item>
354
- <item id="section-28.3.list2.h">
355
- <num>(h)</num>
356
- <p>all the components of memorial work must be completed before being brought into a cemetery;</p>
357
- </item>
358
- <item id="section-28.3.list2.i">
359
- <num>(i)</num>
360
- <blockList id="section-28.3.list2.i.list0">
361
- <listIntroduction>item i</listIntroduction>
362
- <item id="section-28.3.list2.i.list0.I">
363
- <num>(I)</num>
364
- <p>a subitem</p>
365
- </item>
366
- <item id="section-28.3.list2.i.list0.II">
367
- <num>(II)</num>
368
- <p>another subitem</p>
369
- </item>
370
- </blockList>
371
- </item>
372
- <item id="section-28.3.list2.j">
373
- <num>(j)</num>
374
- <blockList id="section-28.3.list2.j.list1">
375
- <listIntroduction>in all cases where memorial work rests on a base -</listIntroduction>
376
- <item id="section-28.3.list2.j.list1.i">
377
- <num>(i)</num>
378
- <p>such memorial work must have a foundation;</p>
379
- </item>
380
- <item id="section-28.3.list2.j.list1.ii">
381
- <num>(ii)</num>
382
- <p>such memorial work must be set with cement mortar;</p>
383
- </item>
384
- <item id="section-28.3.list2.j.list1.iii">
385
- <num>(iii)</num>
386
- <p>the bottom base of a single memorial work must not be less than 900mm long 220 mm wide x 250 mm thick and that of a double memorial work not less than 2 286 mm long x 200 mm wide x 250 mm thick; and</p>
387
- </item>
388
- </blockList>
389
- </item>
390
- </blockList>
391
- XML
392
- )
393
- end
394
-
395
- # -------------------------------------------------------------------------
396
-
397
- it 'should treat (aa) after (z) as siblings' do
398
- doc = xml2doc(subsection(<<XML
399
- <blockList id="list0">
400
- <item id="list0.y">
401
- <num>(y)</num>
402
- <p>foo</p>
403
- </item>
404
- <item id="list0.z">
405
- <num>(z)</num>
406
- <p>item-z</p>
407
- </item>
408
- <item id="list0.aa">
409
- <num>(aa)</num>
410
- <p>item-aa</p>
411
- </item>
412
- <item id="list0.bb">
413
- <num>(bb)</num>
414
- <p>item-bb</p>
415
- </item>
416
- </blockList>
417
- XML
418
- ))
419
-
420
- subject.adjust_blocklists(doc)
421
- doc.to_s.should == subsection(<<XML
422
- <blockList id="list0">
423
- <item id="list0.y">
424
- <num>(y)</num>
425
- <p>foo</p>
426
- </item>
427
- <item id="list0.z">
428
- <num>(z)</num>
429
- <p>item-z</p>
430
- </item>
431
- <item id="list0.aa">
432
- <num>(aa)</num>
433
- <p>item-aa</p>
434
- </item>
435
- <item id="list0.bb">
436
- <num>(bb)</num>
437
- <p>item-bb</p>
438
- </item>
439
- </blockList>
440
- XML
441
- )
442
- end
443
-
444
- # -------------------------------------------------------------------------
445
-
446
- it 'should treat (AA) after (z) a sublist' do
447
- doc = xml2doc(subsection(<<XML
448
- <blockList id="list0" renest="true">
449
- <item id="list0.y">
450
- <num>(y)</num>
451
- <p>foo</p>
452
- </item>
453
- <item id="list0.z">
454
- <num>(z)</num>
455
- <p>item-z</p>
456
- </item>
457
- <item id="list0.AA">
458
- <num>(AA)</num>
459
- <p>item-AA</p>
460
- </item>
461
- <item id="list0.BB">
462
- <num>(BB)</num>
463
- <p>item-BB</p>
464
- </item>
465
- </blockList>
466
- XML
467
- ))
468
-
469
- subject.adjust_blocklists(doc)
470
- doc.to_s.should == subsection(<<XML
471
- <blockList id="list0">
472
- <item id="list0.y">
473
- <num>(y)</num>
474
- <p>foo</p>
475
- </item>
476
- <item id="list0.z">
477
- <num>(z)</num>
478
- <blockList id="list0.z.list0">
479
- <listIntroduction>item-z</listIntroduction>
480
- <item id="list0.z.list0.AA">
481
- <num>(AA)</num>
482
- <p>item-AA</p>
483
- </item>
484
- <item id="list0.z.list0.BB">
485
- <num>(BB)</num>
486
- <p>item-BB</p>
487
- </item>
488
- </blockList>
489
- </item>
490
- </blockList>
491
- XML
492
- )
493
- end
494
-
495
- # -------------------------------------------------------------------------
496
-
497
- it 'should handle deeply nested lists' do
498
- doc = xml2doc(subsection(<<XML
499
- <blockList id="list0" renest="true">
500
- <item id="list0.a">
501
- <num>(a)</num>
502
- <p>foo</p>
503
- </item>
504
- <item id="list0.b">
505
- <num>(b)</num>
506
- <p>item-b</p>
507
- </item>
508
- <item id="list0.i">
509
- <num>(i)</num>
510
- <p>item-b-i</p>
511
- </item>
512
- <item id="list0.aa">
513
- <num>(aa)</num>
514
- <p>item-i-aa</p>
515
- </item>
516
- <item id="list0.bb">
517
- <num>(bb)</num>
518
- <p>item-i-bb</p>
519
- </item>
520
- <item id="list0.ii">
521
- <num>(ii)</num>
522
- <p>item-b-ii</p>
523
- </item>
524
- <item id="list0.c">
525
- <num>(c)</num>
526
- <p>item-c</p>
527
- </item>
528
- <item id="list0.i">
529
- <num>(i)</num>
530
- <p>item-c-i</p>
531
- </item>
532
- <item id="list0.ii">
533
- <num>(ii)</num>
534
- <p>item-c-ii</p>
535
- </item>
536
- <item id="list0.iii">
537
- <num>(iii)</num>
538
- <p>item-c-iii</p>
539
- </item>
540
- </blockList>
541
- XML
542
- ))
543
-
544
- subject.adjust_blocklists(doc)
545
- doc.to_s.should == subsection(<<XML
546
- <blockList id="list0">
547
- <item id="list0.a">
548
- <num>(a)</num>
549
- <p>foo</p>
550
- </item>
551
- <item id="list0.b">
552
- <num>(b)</num>
553
- <blockList id="list0.b.list0">
554
- <listIntroduction>item-b</listIntroduction>
555
- <item id="list0.b.list0.i">
556
- <num>(i)</num>
557
- <blockList id="list0.b.list0.i.list0">
558
- <listIntroduction>item-b-i</listIntroduction>
559
- <item id="list0.b.list0.i.list0.aa">
560
- <num>(aa)</num>
561
- <p>item-i-aa</p>
562
- </item>
563
- <item id="list0.b.list0.i.list0.bb">
564
- <num>(bb)</num>
565
- <p>item-i-bb</p>
566
- </item>
567
- </blockList>
568
- </item>
569
- <item id="list0.b.list0.ii">
570
- <num>(ii)</num>
571
- <p>item-b-ii</p>
572
- </item>
573
- </blockList>
574
- </item>
575
- <item id="list0.c">
576
- <num>(c)</num>
577
- <blockList id="list0.c.list1">
578
- <listIntroduction>item-c</listIntroduction>
579
- <item id="list0.c.list1.i">
580
- <num>(i)</num>
581
- <p>item-c-i</p>
582
- </item>
583
- <item id="list0.c.list1.ii">
584
- <num>(ii)</num>
585
- <p>item-c-ii</p>
586
- </item>
587
- <item id="list0.c.list1.iii">
588
- <num>(iii)</num>
589
- <p>item-c-iii</p>
590
- </item>
591
- </blockList>
592
- </item>
593
- </blockList>
594
- XML
595
- )
596
- end
597
-
598
- # -------------------------------------------------------------------------
599
-
600
- it 'should jump back up a level when finding (i) near (h)' do
601
- doc = xml2doc(subsection(<<XML
602
- <blockList id="section-10.1.lst0" renest="true">
603
- <item id="section-10.1.lst0.h">
604
- <num>(h)</num>
605
- <p>foo</p>
606
- </item>
607
- <item id="section-10.1.lst0.i">
608
- <num>(i)</num>
609
- <p>item-i</p>
610
- </item>
611
- <item id="section-10.1.lst0.ii">
612
- <num>(ii)</num>
613
- <p>item-ii</p>
614
- </item>
615
- <item id="section-10.1.lst0.i">
616
- <num>(i)</num>
617
- <p>item-i</p>
618
- </item>
619
- </blockList>
620
- XML
621
- ))
622
-
623
- subject.adjust_blocklists(doc)
624
- doc.to_s.should == subsection(<<XML
625
- <blockList id="section-10.1.lst0">
626
- <item id="section-10.1.lst0.h">
627
- <num>(h)</num>
628
- <blockList id="section-10.1.lst0.h.list0">
629
- <listIntroduction>foo</listIntroduction>
630
- <item id="section-10.1.lst0.h.list0.i">
631
- <num>(i)</num>
632
- <p>item-i</p>
633
- </item>
634
- <item id="section-10.1.lst0.h.list0.ii">
635
- <num>(ii)</num>
636
- <p>item-ii</p>
637
- </item>
638
- </blockList>
639
- </item>
640
- <item id="section-10.1.lst0.i">
641
- <num>(i)</num>
642
- <p>item-i</p>
643
- </item>
644
- </blockList>
645
- XML
646
- )
647
- end
648
-
649
- # -------------------------------------------------------------------------
650
-
651
- it 'should handle dotted numbers correctly' do
652
- doc = xml2doc(subsection(<<XML
653
- <blockList id="section-9.subsection-2.list2" renest="true">
654
- <item id="section-9.subsection-2.list2.9.2.1">
655
- <num>9.2.1</num>
656
- <p>is incapable of trading because of an illness, provided that:</p>
657
- </item>
658
- <item id="section-9.subsection-2.list2.9.2.1.1">
659
- <num>9.2.1.1</num>
660
- <p>proof from a medical practitioner is provided to the City which certifies that the permit-holder is unable to trade; and</p>
661
- </item>
662
- <item id="section-9.subsection-2.list2.9.2.1.2">
663
- <num>9.2.1.2</num>
664
- <p>the dependent or assistant is only permitted to replace the permit-</p>
665
- </item>
666
- </blockList>
667
- XML
668
- ))
669
-
670
- subject.adjust_blocklists(doc)
671
- doc.to_s.should == subsection(<<XML
672
- <blockList id="section-9.subsection-2.list2">
673
- <item id="section-9.subsection-2.list2.9.2.1">
674
- <num>9.2.1</num>
675
- <blockList id="section-9.subsection-2.list2.9.2.1.list0">
676
- <listIntroduction>is incapable of trading because of an illness, provided that:</listIntroduction>
677
- <item id="section-9.subsection-2.list2.9.2.1.list0.9.2.1.1">
678
- <num>9.2.1.1</num>
679
- <p>proof from a medical practitioner is provided to the City which certifies that the permit-holder is unable to trade; and</p>
680
- </item>
681
- <item id="section-9.subsection-2.list2.9.2.1.list0.9.2.1.2">
682
- <num>9.2.1.2</num>
683
- <p>the dependent or assistant is only permitted to replace the permit-</p>
684
- </item>
685
- </blockList>
686
- </item>
687
- </blockList>
688
- XML
689
- )
690
- end
691
-
692
- it 'should handle p tags just before' do
693
- doc = xml2doc(subsection(<<XML
694
- <p>intro</p>
695
- <blockList id="section-10.1.lst0">
696
- <item id="section-10.1.lst0.a">
697
- <num>(a)</num>
698
- <p>foo</p>
699
- </item>
700
- </blockList>
701
- XML
702
- ))
703
-
704
- subject.adjust_blocklists(doc)
705
- doc.to_s.should == subsection(<<XML
706
- <blockList id="section-10.1.lst0">
707
- <listIntroduction>intro</listIntroduction>
708
- <item id="section-10.1.lst0.a">
709
- <num>(a)</num>
710
- <p>foo</p>
711
- </item>
712
- </blockList>
713
- XML
714
- )
715
- end
716
- end
717
-
718
10
  describe '#preprocess' do
719
11
  it 'should split inline table cells into block table cells' do
720
12
  text = <<EOS