metanorma-iec 2.1.11 → 2.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isodoc/iec/html/htmlstyle.css +6 -0
  3. data/lib/isodoc/iec/iec.international-standard.xsl +460 -152
  4. data/lib/isodoc/iec/presentation_xml_convert.rb +8 -6
  5. data/lib/isodoc/iec/word_convert.rb +9 -35
  6. data/lib/metanorma/iec/biblio.rng +5 -0
  7. data/lib/metanorma/iec/iec_intro_en.xml +11 -12
  8. data/lib/metanorma/iec/iec_intro_fr.xml +11 -11
  9. data/lib/metanorma/iec/isodoc.rng +47 -13
  10. data/lib/metanorma/iec/version.rb +1 -1
  11. data/metanorma-iec.gemspec +5 -2
  12. metadata +4 -36
  13. data/.github/workflows/automerge.yml +0 -31
  14. data/.github/workflows/rake.yml +0 -15
  15. data/.github/workflows/release.yml +0 -24
  16. data/Rakefile +0 -8
  17. data/bin/rspec +0 -18
  18. data/spec/assets/header.html +0 -7
  19. data/spec/assets/html.css +0 -2
  20. data/spec/assets/iso.xml +0 -71
  21. data/spec/assets/rice_image1.png +0 -0
  22. data/spec/assets/word.css +0 -2
  23. data/spec/assets/wordintro.html +0 -4
  24. data/spec/assets/xref_error.adoc +0 -7
  25. data/spec/isodoc/blocks_spec.rb +0 -200
  26. data/spec/isodoc/i18n_spec.rb +0 -607
  27. data/spec/isodoc/iev_spec.rb +0 -888
  28. data/spec/isodoc/inline_spec.rb +0 -256
  29. data/spec/isodoc/iso_spec.rb +0 -211
  30. data/spec/isodoc/metadata_spec.rb +0 -251
  31. data/spec/isodoc/postproc_spec.rb +0 -303
  32. data/spec/isodoc/ref_spec.rb +0 -335
  33. data/spec/isodoc/section_spec.rb +0 -566
  34. data/spec/isodoc/terms_spec.rb +0 -192
  35. data/spec/metanorma/base_spec.rb +0 -1041
  36. data/spec/metanorma/blocks_spec.rb +0 -470
  37. data/spec/metanorma/cleanup_spec.rb +0 -372
  38. data/spec/metanorma/iev_spec.rb +0 -254
  39. data/spec/metanorma/inline_spec.rb +0 -145
  40. data/spec/metanorma/lists_spec.rb +0 -194
  41. data/spec/metanorma/processor_spec.rb +0 -171
  42. data/spec/metanorma/section_spec.rb +0 -348
  43. data/spec/metanorma/validate_spec.rb +0 -56
  44. data/spec/spec_helper.rb +0 -305
@@ -1,566 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe IsoDoc do
4
- it "processes section names" do
5
- input = <<~INPUT
6
- <iso-standard xmlns="http://riboseinc.com/isoxml">
7
- <preface>
8
- <foreword obligation="informative">
9
- <title>Foreword</title>
10
- <p id="A">This is a preamble</p>
11
- </foreword>
12
- <introduction id="B" obligation="informative"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
13
- <title>Introduction Subsection</title>
14
- </clause>
15
- <p>This is patent boilerplate</p>
16
- </introduction></preface><sections>
17
- <clause id="D" obligation="normative" type="scope">
18
- <title>Scope</title>
19
- <p id="E">Text</p>
20
- </clause>
21
-
22
- <clause id="H" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
23
- <title>Normal Terms</title>
24
- <term id="J">
25
- <preferred>Term2</preferred>
26
- </term>
27
- </terms>
28
- <definitions id="K">
29
- <dl>
30
- <dt>Symbol</dt>
31
- <dd>Definition</dd>
32
- </dl>
33
- </definitions>
34
- </clause>
35
- <definitions id="L">
36
- <dl>
37
- <dt>Symbol</dt>
38
- <dd>Definition</dd>
39
- </dl>
40
- </definitions>
41
- <clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
42
- <title>Introduction</title>
43
- </clause>
44
- <clause id="O" inline-header="false" obligation="normative">
45
- <title>Clause 4.2</title>
46
- </clause></clause>
47
-
48
- </sections><annex id="P" inline-header="false" obligation="normative">
49
- <title>Annex</title>
50
- <clause id="Q" inline-header="false" obligation="normative">
51
- <title>Annex A.1</title>
52
- <clause id="Q1" inline-header="false" obligation="normative">
53
- <title>Annex A.1a</title>
54
- </clause>
55
- </clause>
56
- <appendix id="Q2" inline-header="false" obligation="normative">
57
- <title>An Appendix</title>
58
- </appendix>
59
- </annex><bibliography><references id="R" obligation="informative" normative="true">
60
- <title>Normative References</title>
61
- </references><clause id="S" obligation="informative">
62
- <title>Bibliography</title>
63
- <references id="T" obligation="informative" normative="false">
64
- <title>Bibliography Subsection</title>
65
- </references>
66
- </clause>
67
- </bibliography>
68
- </iso-standard>
69
- INPUT
70
-
71
- presxml = <<~OUTPUT
72
- <iso-standard xmlns="http://riboseinc.com/isoxml" type="presentation">
73
- <preface>
74
- <foreword obligation="informative" displayorder="1">
75
- <title>Foreword</title>
76
- <p id="A">This is a preamble</p>
77
- </foreword>
78
- <introduction id="B" obligation="informative" displayorder="2"><title depth="1">0<tab/>Introduction</title><clause id="C" inline-header="false" obligation="informative">
79
- <title depth="2">0.1<tab/>Introduction Subsection</title>
80
- </clause>
81
- <p>This is patent boilerplate</p>
82
- </introduction></preface><sections>
83
- <clause id="D" obligation="normative" type="scope" displayorder="3">
84
- <title depth="1">1<tab/>Scope</title>
85
- <p id="E">Text</p>
86
- </clause>
87
-
88
- <clause id="H" obligation="normative" displayorder="5"><title depth="1">3<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
89
- <title depth="2">3.1<tab/>Normal Terms</title>
90
- <term id="J"><name>3.1.1</name>
91
- <preferred>Term2</preferred>
92
- </term>
93
- </terms>
94
- <definitions id="K"><title>3.2</title>
95
- <dl>
96
- <dt>Symbol</dt>
97
- <dd>Definition</dd>
98
- </dl>
99
- </definitions>
100
- </clause>
101
- <definitions id="L" displayorder="6"><title>4</title>
102
- <dl>
103
- <dt>Symbol</dt>
104
- <dd>Definition</dd>
105
- </dl>
106
- </definitions>
107
- <clause id="M" inline-header="false" obligation="normative" displayorder="7"><title depth="1">5<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
108
- <title depth="2">5.1<tab/>Introduction</title>
109
- </clause>
110
- <clause id="O" inline-header="false" obligation="normative">
111
- <title depth="2">5.2<tab/>Clause 4.2</title>
112
- </clause></clause>
113
-
114
- </sections><annex id="P" inline-header="false" obligation="normative" displayorder="8">
115
- <title><strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
116
- <clause id="Q" inline-header="false" obligation="normative">
117
- <title depth="2">A.1<tab/>Annex A.1</title>
118
- <clause id="Q1" inline-header="false" obligation="normative">
119
- <title depth="3">A.1.1<tab/>Annex A.1a</title>
120
- </clause>
121
- </clause>
122
- <appendix id="Q2" inline-header="false" obligation="normative">
123
- <title depth="2">Appendix 1<tab/>An Appendix</title>
124
- </appendix>
125
- </annex><bibliography><references id="R" obligation="informative" normative="true" displayorder="4">
126
- <title depth="1">2<tab/>Normative References</title>
127
- </references><clause id="S" obligation="informative" displayorder="9">
128
- <title depth="1">Bibliography</title>
129
- <references id="T" obligation="informative" normative="false">
130
- <title depth="2">Bibliography Subsection</title>
131
- </references>
132
- </clause>
133
- </bibliography>
134
- </iso-standard>
135
- OUTPUT
136
-
137
- html = <<~OUTPUT
138
- <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
139
- <head/>
140
- <body lang="en">
141
- <div class="title-section">
142
- <p>&#160;</p>
143
- </div>
144
- <br/>
145
- <div class="prefatory-section">
146
- <p>&#160;</p>
147
- </div>
148
- <br/>
149
- <div class="main-section">
150
- <br/>
151
- #{IEC_TITLE}
152
- <div>
153
- <h1 class="ForewordTitle">FOREWORD</h1>
154
- <div class="boilerplate_legal"/>
155
- <p id="A">This is a preamble</p>
156
- </div>
157
- <br/>
158
- <div class="Section3" id="B">
159
- <h1 class="IntroTitle">0&#160; Introduction</h1>
160
- <div id="C">
161
- <h2>0.1&#160; Introduction Subsection</h2>
162
- </div>
163
- <p>This is patent boilerplate</p>
164
- </div>
165
- #{IEC_TITLE1}
166
- <div id="D">
167
- <h1>1&#160; Scope</h1>
168
- <p id="E">Text</p>
169
- </div>
170
- <div>
171
- <h1>2&#160; Normative References</h1>
172
- </div>
173
- <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1>
174
- <div id="I">
175
- <h2>3.1&#160; Normal Terms</h2>
176
- <p class="TermNum" id="J">3.1.1</p>
177
- <p class="Terms" style="text-align:left;">Term2</p>
178
- </div><div id="K"><h2>3.2</h2>
179
- <dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
180
- </div></div>
181
- <div id="L" class="Symbols">
182
- <h1>4</h1>
183
- <dl>
184
- <dt>
185
- <p>Symbol</p>
186
- </dt>
187
- <dd>Definition</dd>
188
- </dl>
189
- </div>
190
- <div id="M">
191
- <h1>5&#160; Clause 4</h1>
192
- <div id="N">
193
- <h2>5.1&#160; Introduction</h2>
194
- </div>
195
- <div id="O">
196
- <h2>5.2&#160; Clause 4.2</h2>
197
- </div>
198
- </div>
199
- <br/>
200
- <div id="P" class="Section3">
201
- <h1 class="Annex"><b>Annex A</b><br/>(normative)<br/><br/><b>Annex</b></h1>
202
- <div id="Q">
203
- <h2>A.1&#160; Annex A.1</h2>
204
- <div id="Q1">
205
- <h3>A.1.1&#160; Annex A.1a</h3>
206
- </div>
207
- </div>
208
- <div id="Q2">
209
- <h2>Appendix 1&#160; An Appendix</h2>
210
- </div>
211
- </div>
212
- <br/>
213
- <div>
214
- <h1 class="Section3">Bibliography</h1>
215
- <div>
216
- <h2 class="Section3">Bibliography Subsection</h2>
217
- </div>
218
- </div>
219
- </div>
220
- </body>
221
- </html>
222
- OUTPUT
223
-
224
- word = <<~OUTPUT
225
- <body lang="EN-US" link="blue" vlink="#954F72">
226
- <div class="WordSection2">
227
- <p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
228
- #{IEC_TITLE}
229
- <div>
230
- <h1 class="ForewordTitle">FOREWORD</h1>
231
- <div class="boilerplate_legal"/>
232
- <p id="A">This is a preamble</p>
233
- </div>
234
- <p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
235
- <div class="Section3" id="B">
236
- <h1 class="IntroTitle">0<span style="mso-tab-count:1">&#160; </span>Introduction</h1>
237
- <div id="C">
238
- <h2>0.1<span style="mso-tab-count:1">&#160; </span>Introduction Subsection</h2>
239
- </div>
240
- <p>This is patent boilerplate</p>
241
- </div>
242
- <p>&#160;</p>
243
- </div>
244
- <p><br clear="all" class="section"/></p>
245
- <div class="WordSection3">
246
- #{IEC_TITLE1}
247
- <div id="D">
248
- <h1>1<span style="mso-tab-count:1">&#160; </span>Scope</h1>
249
- <p id="E">Text</p>
250
- </div>
251
- <div>
252
- <h1>2<span style="mso-tab-count:1">&#160; </span>Normative References</h1>
253
- </div>
254
- <div id="H"><h1>3<span style="mso-tab-count:1">&#160; </span>Terms, definitions, symbols and abbreviated terms</h1>
255
- <div id="I">
256
- <h2>3.1<span style="mso-tab-count:1">&#160; </span>Normal Terms</h2>
257
- <p class="TermNum" id="J">3.1.1</p>
258
- <p class="Terms" style="text-align:left;">Term2</p>
259
-
260
- </div><div id="K"><h2>3.2</h2>
261
- <table class="dl"><tr><td valign="top" align="left"><p align="left" style="margin-left:0pt;text-align:left;">Symbol</p></td><td valign="top">Definition</td></tr></table>
262
- </div></div>
263
- <div id="L" class="Symbols">
264
- <h1>4</h1>
265
- <table class="dl">
266
- <tr>
267
- <td valign="top" align="left">
268
- <p align="left" style="margin-left:0pt;text-align:left;">Symbol</p>
269
- </td>
270
- <td valign="top">Definition</td>
271
- </tr>
272
- </table>
273
- </div>
274
- <div id="M">
275
- <h1>5<span style="mso-tab-count:1">&#160; </span>Clause 4</h1>
276
- <div id="N">
277
- <h2>5.1<span style="mso-tab-count:1">&#160; </span>Introduction</h2>
278
- </div>
279
- <div id="O">
280
- <h2>5.2<span style="mso-tab-count:1">&#160; </span>Clause 4.2</h2>
281
- </div>
282
- </div>
283
- <p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
284
- <div id="P" class="Section3">
285
- <h1 class="Annex"><b>Annex A</b><br/>(normative)<br/><br/><b>Annex</b></h1>
286
- <div id="Q">
287
- <h2>A.1<span style="mso-tab-count:1">&#160; </span>Annex A.1</h2>
288
- <div id="Q1">
289
- <h3>A.1.1<span style="mso-tab-count:1">&#160; </span>Annex A.1a</h3>
290
- </div>
291
- </div>
292
- <div id="Q2">
293
- <h2>Appendix 1<span style="mso-tab-count:1">&#160; </span>An Appendix</h2>
294
- </div>
295
- </div>
296
- <p><br clear="all" style="mso-special-character:line-break;page-break-before:always"/></p>
297
- <div>
298
- <h1 class="Section3">Bibliography</h1>
299
- <div>
300
- <h2 class="Section3">Bibliography Subsection</h2>
301
- </div>
302
- </div>
303
- </div>
304
- <br clear="all" style="page-break-before:left;mso-break-type:section-break"/>
305
- <div class="colophon"/>
306
- </body>
307
- OUTPUT
308
- expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({})
309
- .convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
310
- expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({})
311
- .convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
312
- expect(xmlpp(IsoDoc::Iec::WordConvert.new({})
313
- .convert("test", presxml, true)
314
- .sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>")))
315
- .to be_equivalent_to xmlpp(word)
316
- end
317
-
318
- it "processes subclauses with and without titles" do
319
- input = <<~INPUT
320
- <iso-standard xmlns="http://riboseinc.com/isoxml">
321
- <sections>
322
- <clause id="D" obligation="normative">
323
- <title>Scope</title>
324
- <clause id="D1" obligation="normative">
325
- <title>Scope 1</title>
326
- </clause>
327
- <clause id="D2" obligation="normative">
328
- </clause>
329
- </clause>
330
- </sections>
331
- </iso-standard>
332
- INPUT
333
- output = <<~OUTPUT
334
- <iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
335
- <sections>
336
- <clause id='D' obligation='normative' displayorder="1">
337
- <title depth='1'>
338
- 1
339
- <tab/>
340
- Scope
341
- </title>
342
- <clause id='D1' obligation='normative'>
343
- <title depth='2'>
344
- 1.1
345
- <tab/>
346
- Scope 1
347
- </title>
348
- </clause>
349
- <clause id='D2' obligation='normative'>
350
- <title>1.2</title>
351
- </clause>
352
- </clause>
353
- </sections>
354
- </iso-standard>
355
- OUTPUT
356
- expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({})
357
- .convert("test", input, true))).to be_equivalent_to xmlpp(output)
358
- end
359
-
360
- it "processes simple terms & definitions" do
361
- input = <<~INPUT
362
- <iso-standard xmlns="http://riboseinc.com/isoxml">
363
- <sections>
364
- <terms id="H" obligation="normative"><title>1<tab/>Terms, Definitions, Symbols and Abbreviated Terms</title>
365
- <term id="J">
366
- <name>1.1</name>
367
- <preferred>Term2</preferred>
368
- </term>
369
- </terms>
370
- </sections>
371
- </iso-standard>
372
- INPUT
373
- output = <<~OUTPUT
374
- #{HTML_HDR}
375
- <div id="">
376
- <h1 class="ForewordTitle">FOREWORD</h1>
377
- <div class="boilerplate_legal"/>
378
- </div>
379
- #{IEC_TITLE1}
380
- <div id="H"><h1>1&#160; Terms, Definitions, Symbols and Abbreviated Terms</h1>
381
- <p class="TermNum" id="J">1.1</p>
382
- <p class="Terms" style="text-align:left;">Term2</p>
383
- </div>
384
- </div>
385
- </body>
386
- </html>
387
- OUTPUT
388
- expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", input, true)))
389
- .to be_equivalent_to xmlpp(output)
390
- end
391
-
392
- it "processes inline section headers" do
393
- input = <<~INPUT
394
- <iso-standard xmlns="http://riboseinc.com/isoxml">
395
- <sections>
396
- <clause id="M" inline-header="false" obligation="normative"><title>1<tab/>Clause 4</title>
397
- <clause id="N" inline-header="false" obligation="normative">
398
- <title>1.1<tab/>Introduction</title>
399
- </clause>
400
- <clause id="O" inline-header="true" obligation="normative">
401
- <title>1.2<tab/>Clause 4.2</title>
402
- </clause></clause>
403
- </sections>
404
- </iso-standard>
405
- INPUT
406
- output = <<~OUTPUT
407
- #{HTML_HDR}
408
- <div id="">
409
- <h1 class="ForewordTitle">FOREWORD</h1>
410
- <div class="boilerplate_legal"/>
411
- </div>
412
- #{IEC_TITLE1}
413
- <div id="M">
414
- <h1>1&#160; Clause 4</h1>
415
- <div id="N">
416
- <h2>1.1&#160; Introduction</h2>
417
- </div>
418
- <div id="O">
419
- <span class="zzMoveToFollowing"><b>1.2&#160; Clause 4.2&#160; </b></span>
420
- </div>
421
- </div>
422
- </div>
423
- </body>
424
- </html>
425
- OUTPUT
426
- expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", input, true)))
427
- .to be_equivalent_to xmlpp(output)
428
- end
429
-
430
- it "adds colophon to published standard (Word)" do
431
- input = <<~INPUT
432
- <iso-standard xmlns="http://riboseinc.com/isoxml">
433
- <bibdata>
434
- <status>
435
- <stage abbreviation="PPUB">60</stage>
436
- <substage abbreviation="PPUB">60</substage>
437
- </status>
438
- </bibdata>
439
- <sections>
440
- </sections>
441
- </iso-standard>
442
- INPUT
443
- output = <<~OUTPUT
444
- <body lang='EN-US' link='blue' vlink='#954F72'>
445
- <div class='WordSection1'>
446
- <p>&#xa0;</p>
447
- </div>
448
- <p>
449
- <br clear='all' class='section'/>
450
- </p>
451
- <div class='WordSection2'>
452
- <p>&#xa0;</p>
453
- </div>
454
- <p>
455
- <br clear='all' class='section'/>
456
- </p>
457
- <div class='WordSection3'>
458
- <p class='zzSTDTitle'/>
459
- </div>
460
- <br clear='all' style='page-break-before:left;mso-break-type:section-break'/>
461
- <div class='colophon'/>
462
- </body>
463
- OUTPUT
464
- expect(xmlpp(IsoDoc::Iec::WordConvert.new({}).convert("test", input, true)
465
- .sub(/^.*<body /m, "<body ").sub(%r{</body>.*$}m, "</body>")))
466
- .to be_equivalent_to xmlpp(output)
467
- end
468
-
469
- it "does not add colophon to draft standard (Word)" do
470
- input = <<~INPUT
471
- <iso-standard xmlns="http://riboseinc.com/isoxml">
472
- <bibdata>
473
- <status>
474
- <stage abbreviation="CD">30</stage>
475
- <substage abbreviation="CD">00</substage>
476
- </status>
477
- </bibdata>
478
- <sections>
479
- </sections>
480
- </iso-standard>
481
- INPUT
482
- output = <<~OUTPUT
483
- <body lang="EN-US" link="blue" vlink="#954F72">
484
- <div class="WordSection2">
485
- <p>
486
- <br clear="all" style="mso-special-character:line-break;page-break-before:always"/>
487
- </p>
488
- #{IEC_TITLE}
489
- <div id="">
490
- <h1 class="ForewordTitle">FOREWORD</h1>
491
- <div class="boilerplate_legal"/>
492
- </div>
493
- <p>&#160;</p>
494
- </div>
495
- <p><br clear="all" class="section"/></p>
496
- <div class="WordSection3">
497
- #{IEC_TITLE1}
498
- </div>
499
- </body>
500
- OUTPUT
501
- expect(xmlpp(IsoDoc::Iec::WordConvert.new({})
502
- .convert("test", input, true)
503
- .sub(/^.*<body /m, "<body ")
504
- .sub(%r{</body>.*$}m, "</body>")))
505
- .to be_equivalent_to xmlpp(output)
506
- end
507
-
508
- it "adds boilerplate to foreword" do
509
- input = <<~INPUT
510
- <iso-standard xmlns="http://riboseinc.com/isoxml">
511
- <bibdata>
512
- <ext><doctype>International Standard</doctype></ext>
513
- </bibdata>
514
- <boilerplate>
515
- <legal-statement>
516
- <p>Boilerplate</p>
517
- </legal-statement>
518
- </boilerplate>
519
- <sections/>
520
- </iso-standard>
521
- INPUT
522
- output = <<~OUTPUT
523
- #{HTML_HDR}
524
- <div id="">
525
- <h1 class="ForewordTitle">FOREWORD</h1>
526
- <div class="boilerplate_legal">
527
- <p>Boilerplate</p>
528
- </div>
529
- </div>
530
- #{IEC_TITLE1}
531
- </div>
532
- </body>
533
- </html>
534
- OUTPUT
535
- expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({})
536
- .convert("test", input, true))).to be_equivalent_to xmlpp(output)
537
- end
538
-
539
- it "does not add boilerplate to foreword in amendments" do
540
- input = <<~INPUT
541
- <iso-standard xmlns="http://riboseinc.com/isoxml">
542
- <bibdata>
543
- <ext><doctype>Amendment</doctype></ext>
544
- </bibdata>
545
- <boilerplate>
546
- <legal-statement>
547
- <p>Boilerplate</p>
548
- </legal-statement>
549
- </boilerplate>
550
- <sections/>
551
- </iso-standard>
552
- INPUT
553
- output = <<~OUTPUT
554
- #{HTML_HDR}
555
- <div id="">
556
- <h1 class="ForewordTitle">FOREWORD</h1>
557
- </div>
558
- #{IEC_TITLE1}
559
- </div>
560
- </body>
561
- </html>
562
- OUTPUT
563
- expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({})
564
- .convert("test", input, true))).to be_equivalent_to xmlpp(output)
565
- end
566
- end