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(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
#{ASCIIDOC_BLANK_HDR}
INPUT
#{BLANK_HDR}
OUTPUT
end
it "converts a blank document" do
FileUtils.rm_f "test.doc"
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"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(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"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
Main Title — Title
Title Part
Introduction Française — Titre Principal — Part du Titre
Introduction Française
Titre Principal
Part du Titre
ISO/PreNWIP3 1000-1
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
article
TC
TC1
SC
SC1
WG
WG1
SECRETARIAT
1
2
3
ISO 1000
OUTPUT
end
it "processes complex metadata" do
expect(xmlpp(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, 2003
:language: el
:script: Grek
:publisher: IEC,IETF,ISO
:copyright-year: 2001
INPUT
ISO/IEC/IETF 1000-1-1:2001
2000
2003
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
article
ISO/IEC/IETF 1000
OUTPUT
end
it "defaults substage" do
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:no-isobib:
:docnumber: 1000
:docstage: 50
INPUT
ISO/FDIS 1000
1000
International Organization for Standardization
ISO
International Organization for Standardization
ISO
en
50
00
#{Date.today.year}
International Organization for Standardization
ISO
article
ISO 1000
OUTPUT
end
it "defaults substage for stage 60" do
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:no-isobib:
:docnumber: 1000
:docstage: 60
INPUT
ISO 1000
1000
International Organization for Standardization
ISO
International Organization for Standardization
ISO
en
60
60
#{Date.today.year}
International Organization for Standardization
ISO
article
ISO 1000
OUTPUT
end
it "populates metadata for PRF" do
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:no-isobib:
:docnumber: 1000
:docstage: 60
:docsubstage: 00
INPUT
ISO/PRF 1000
1000
International Organization for Standardization
ISO
International Organization for Standardization
ISO
en
60
00
#{Date.today.year}
International Organization for Standardization
ISO
article
ISO 1000
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{