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)
system "cd spec/examples; asciidoctor --trace -b iso -r 'metanorma-iso' rice.adoc; 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:
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:
:docnumber: 1000
:partnumber: 1
:edition: 2
:revdate: 2000-01-01
:draft: 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
:copyright-year: 2001
: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 1000
International Organization for Standardization
ISO
International Organization for Standardization
ISO
en
10
20
3
2001
International Organization for Standardization
ISO
TC
TC1
SC
SC1
WG
WG1
SECRETARIAT
1
2
3
2
2000-01-01
3.4
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:
:docnumber: 1000
:partnumber: 1-1
:tc-docnumber: 2000
:language: el
:script: Grek
:publisher: IEC,IETF,ISO
INPUT
ISO/IEC/IETF 1000
2000
International Electrotechnical Commission
IEC
IETF
International Organization for Standardization
ISO
International Electrotechnical Commission
IEC
IETF
International Organization for Standardization
ISO
el
60
60
2018
International Electrotechnical Commission
IEC
2018
IETF
2018
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:
INPUT
html = File.read("test.html", encoding: "utf-8")
expect(html).to match(%r{