require "spec_helper"
require "fileutils"
RSpec.describe IsoDoc::Iso do
FileUtils.rm_f "test.html"
it "processes isodoc as ISO: HTML output" do
IsoDoc::Iso::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[\bpre[^{]+\{[^{]+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::Iso::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[\bpre[^{]+\{[^{]+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::Iso::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[\bpre[^{]+\{[^{]+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::Iso::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[\bpre[^{]+\{[^{]+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::Iso::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[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
expect(html).to match(%r[Quote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
end
it "does not include IEV in references" do
expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
IEV
ISO 20483
1Normative 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}
1 Normative References
ISO 20483, Cereals and pulses