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 <title-intro language="en" format="text/plain">Introduction</title-intro> <title-main language="en" format="text/plain">Main Title — Title</title-main> <title-part language="en" format="text/plain">Title Part</title-part> <title-intro language="fr" format="text/plain">Introduction Française</title-intro> <title-main language="fr" format="text/plain">Titre Principal</title-main> <title-part language="fr" format="text/plain">Part du Titre</title-part> 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{