require "spec_helper"
require "fileutils"
RSpec.describe Asciidoctor::ISO do
it "has a version number" do
expect(Metanorma::ISO::VERSION).not_to be nil
end
it "generates output for the Rice document" do
FileUtils.rm_f %w(spec/examples/rice.xml spec/examples/rice.doc spec/examples/rice.html spec/examples/rice_alt.html)
FileUtils.cd "spec/examples"
Asciidoctor.convert_file "rice.adoc", {:attributes=>{"backend"=>"iso"}, :safe=>0, :header_footer=>true, :requires=>["metanorma-iso"], :failure_level=>4, :mkdirs=>true, :to_file=>nil}
FileUtils.cd "../.."
expect(File.exist?("spec/examples/rice.xml")).to be true
expect(File.exist?("spec/examples/rice.doc")).to be true
expect(File.exist?("spec/examples/rice.html")).to be true
expect(File.exist?("spec/examples/rice_alt.html")).to be true
end
it "processes a blank document" do
expect(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
INPUT
#{BLANK_HDR}
OUTPUT
end
it "converts a blank document" do
FileUtils.rm_f "test.doc"
expect(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)).to be_equivalent_to <<~"OUTPUT"
= Document title
Author
:docfile: test.adoc
:novalid:
:no-isobib:
INPUT
#{BLANK_HDR}
OUTPUT
expect(File.exist?("test.doc")).to be true
expect(File.exist?("htmlstyle.css")).to be false
end
it "processes default metadata" do
expect(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)).to be_equivalent_to <<~"OUTPUT"
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:no-isobib:
:docnumber: 1000
:partnumber: 1
:edition: 2
:revdate: 2000-01-01
:draft: 0.3.4
:technical-committee: TC
:technical-committee-number: 1
:technical-committee-type: A
:subcommittee: SC
:subcommittee-number: 2
:subcommittee-type: B
:workgroup: WG
:workgroup-number: 3
:workgroup-type: C
:technical-committee_2: TC1
:technical-committee-number_2: 11
:technical-committee-type_2: A1
:subcommittee_2: SC1
:subcommittee-number_2: 21
:subcommittee-type_2: B1
:workgroup_2: WG1
:workgroup-number_2: 31
:workgroup-type_2: C1
:secretariat: SECRETARIAT
:docstage: 10
:docsubstage: 20
:iteration: 3
:language: en
:title-intro-en: Introduction
:title-main-en: Main Title -- Title
:title-part-en: Title Part
:title-intro-fr: Introduction Française
:title-main-fr: Titre Principal
:title-part-fr: Part du Titre
:library-ics: 1,2,3
INPUT
Introduction
Main Title — Title
Title Part
Introduction Française
Titre Principal
Part du Titre
ISO/PreNWIP3 1000-1
ISO 1000
1000
2
2000-01-01
0.3.4
International Organization for Standardization
ISO
International Organization for Standardization
ISO
en
10
20
3
#{Date.today.year}
International Organization for Standardization
ISO
TC
TC1
SC
SC1
WG
WG1
SECRETARIAT
1
2
3
OUTPUT
end
it "processes complex metadata" do
expect(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)).to be_equivalent_to <<~'OUTPUT'
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:no-isobib:
:docnumber: 1000
:partnumber: 1-1
:tc-docnumber: 2000
:language: el
:script: Grek
:publisher: IEC,IETF,ISO
:copyright-year: 2001
INPUT
ISO/IEC/IETF 1000-1-1:2001
ISO/IEC/IETF 1000
2000
1000
International Electrotechnical Commission
IEC
IETF
International Organization for Standardization
ISO
International Electrotechnical Commission
IEC
IETF
International Organization for Standardization
ISO
el
60
60
2001
International Electrotechnical Commission
IEC
2001
IETF
2001
International Organization for Standardization
ISO
OUTPUT
end
it "reads scripts into blank HTML document" do
FileUtils.rm_f "test.html"
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
= Document title
Author
:docfile: test.adoc
:novalid:
:no-isobib:
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r{