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).sub(%r{.*}m, ""))).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 ISO/PreNWIP3 1000-1 (E) 1000 International Organization for Standardization ISO International Organization for Standardization ISO 2 2000-01-01 0.3.4 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 New work item proposal OUTPUT end it "processes complex metadata" do expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{.*}m, ""))).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 ISO/IEC/IETF 1000-1-1:2001 (X) 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 International standard OUTPUT end it "defaults substage" do expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{.*}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT") = Document title Author :docfile: test.adoc :nodoc: :novalid: :no-isobib: :docnumber: 1000 :docstage: 50 :language: fr INPUT ISO/FDIS 1000 ISO/FDIS 1000 (F) 1000 International Organization for Standardization ISO International Organization for Standardization ISO fr 50 00 #{Date.today.year} International Organization for Standardization ISO article ISO 1000 Final draft international standard OUTPUT end it "defaults substage for stage 60" do expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{.*}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT") = Document title Author :docfile: test.adoc :nodoc: :novalid: :no-isobib: :docnumber: 1000 :docstage: 60 INPUT ISO 1000 ISO 1000 (E) 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 International standard OUTPUT end it "populates metadata for PRF" do expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{.*}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT") = Document title Author :docfile: test.adoc :nodoc: :novalid: :no-isobib: :docnumber: 1000 :docstage: 60 :docsubstage: 00 INPUT ISO 1000 ISO 1000 (E) 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 Proof 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{