require "spec_helper"
require "fileutils"
RSpec.describe IsoDoc::Iec do
FileUtils.rm_f "test.html"
it "processes isodoc as ISO: HTML output" do
IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", false)
These results are based on a study carried out on three different types of kernel.
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
end
it "processes isodoc as ISO: alt HTML output" do
FileUtils.rm_f "test.html"
IsoDoc::Iec::HtmlConvert.new({alt: true}).convert("test", <<~"INPUT", false)
These results are based on a study carried out on three different types of kernel.
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: "Space Mono", monospace;]m)
expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
end
it "processes isodoc as ISO: Chinese HTML output" do
FileUtils.rm_f "test.html"
IsoDoc::Iec::HtmlConvert.new({script: "Hans"}).convert("test", <<~"INPUT", false)
These results are based on a study carried out on three different types of kernel.
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "SimSun", serif;]m)
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "SimHei", sans-serif;]m)
end
it "processes isodoc as ISO: user nominated fonts" do
FileUtils.rm_f "test.html"
IsoDoc::Iec::HtmlConvert.new({bodyfont: "Zapf Chancery", headerfont: "Comic Sans", monospacefont: "Andale Mono"}).convert("test", <<~"INPUT", false)
These results are based on a study carried out on three different types of kernel.
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: Andale Mono;]m)
expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: Zapf Chancery;]m)
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: Comic Sans;]m)
end
it "processes isodoc as ISO: Word output" do
FileUtils.rm_f "test.doc"
IsoDoc::Iec::WordConvert.new({}).convert("test", <<~"INPUT", false)
These results are based on a study carried out on three different types of kernel.
INPUT
html = File.read("test.doc", encoding: "utf-8")
expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: "Courier New",monospace;]m)
expect(html).to match(%r[Quote[^{]+\{[^{]+font-family: "Arial", sans-serif;]m)
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Arial",sans-serif;]m)
end
it "does not include IEV in references" do
expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
Normative References
Electropedia:
The World's Online Electrotechnical Vocabulary
http://www.electropedia.org
IEV
International Electrotechnical Commission
IEC
www.iec.ch
en fr
International Electrotechnical Commission
IEC
www.iec.ch
IEC 60050
Cereals and pulses
ISO 20483
20132014
International Organization for Standardization
INPUT
#{HTML_HDR}
#{IEC_TITLE}
1 Normative references
The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.
ISO 20483, Cereals and pulses