require "spec_helper"
RSpec.describe Asciidoctor::ISO do
it "has a version number" do
expect(Asciidoctor::ISO::VERSION).not_to be nil
end
it "generates output for the Rice document" do
system "cd spec/examples; rm -f rice.xml; rm -f rice.doc; rm -f rice.html; rm -f rice_alt.html; asciidoctor --trace -b iso -r 'asciidoctor-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
system "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
: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
1000
International Organization for Standardization
ISO
International Organization for Standardization
ISO
en
10
20
3
2001
International Organization for Standardization
ISO
TC
SC
WG
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
INPUT
1000
2000
International Electrotechnical Commission
IEC
IETF
International Electrotechnical Commission
IEC
IETF
el
60
60
2018
International Electrotechnical Commission
IEC
2018
IETF
OUTPUT
end
it "reads scripts into blank HTML document" do
system "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{