require "spec_helper" RSpec.describe Asciidoctor::ISO do it "processes open blocks" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} -- x y z -- INPUT #{BLANK_HDR}

x

y

z

OUTPUT end it "processes stem blocks" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [stem] ++++ r = 1 % r = 1 % ++++ [stem] ++++ F Α ++++ INPUT #{BLANK_HDR} r=1%r=1% F Α OUTPUT end it "ignores review blocks unless document is in draft mode" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [[foreword]] .Foreword Foreword [reviewer=ISO,date=20170101,from=foreword,to=foreword] **** A Foreword shall appear in each document. The generic text is shown here. It does not contain requirements, recommendations or permissions. For further information on the Foreword, see *ISO/IEC Directives, Part 2, 2016, Clause 12.* **** INPUT #{BLANK_HDR}

Foreword

OUTPUT end it "processes review blocks if document is in draft mode" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)).sub(/^.+/m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT") = Document title Author :docfile: test.adoc :nodoc: :novalid: :draft: 1.2 :no-isobib: [[foreword]] .Foreword Foreword [reviewer=ISO,date=20170101,from=foreword,to=foreword] **** A Foreword shall appear in each document. The generic text is shown here. It does not contain requirements, recommendations or permissions. For further information on the Foreword, see *ISO/IEC Directives, Part 2, 2016, Clause 12.* **** INPUT

Foreword

A Foreword shall appear in each document. The generic text is shown here. It does not contain requirements, recommendations or permissions.

For further information on the Foreword, see ISO/IEC Directives, Part 2, 2016, Clause 12.

OUTPUT end it "processes term notes" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 NOTE: This is a note INPUT #{BLANK_HDR} Terms and definitions #{TERM_BOILERPLATE} Term1

This is a note

OUTPUT end it "processes notes" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} NOTE: This is a note INPUT #{BLANK_HDR}

This is a note

OUTPUT end it "processes literals" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} .... LITERAL .... INPUT #{BLANK_HDR}
LITERAL
OUTPUT end it "processes simple admonitions with Asciidoc names" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} CAUTION: Only use paddy or parboiled rice for the determination of husked rice yield. INPUT #{BLANK_HDR}

Only use paddy or parboiled rice for the determination of husked rice yield.

OUTPUT end it "processes complex admonitions with non-Asciidoc names" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [CAUTION,type=Safety Precautions] .Safety Precautions ==== While werewolves are hardy community members, keep in mind the following dietary concerns: . They are allergic to cinnamon. . More than two glasses of orange juice in 24 hours makes them howl in harmony with alarms and sirens. . Celery makes them sad. ==== INPUT #{BLANK_HDR} Safety Precautions

While werewolves are hardy community members, keep in mind the following dietary concerns:

  1. They are allergic to cinnamon.

  2. More than two glasses of orange juice in 24 hours makes them howl in harmony with alarms and sirens.

  3. Celery makes them sad.

OUTPUT end it "processes term examples" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 [example] This is an example INPUT #{BLANK_HDR} Terms and definitions #{TERM_BOILERPLATE} Term1

This is an example

OUTPUT end it "processes examples" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [example] ==== This is an example Amen ==== INPUT #{BLANK_HDR}

This is an example

Amen

OUTPUT end it "processes preambles" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} This is a preamble == Section 1 INPUT #{BLANK_HDR} Foreword

This is a preamble

Section 1 OUTPUT end it "processes images" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} .Split-it-right sample divider image::spec/examples/rice_images/rice_image1.png[] INPUT #{BLANK_HDR}
Split-it-right sample divider
OUTPUT end it "accepts width and height attributes on images" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [height=4,width=3] image::spec/examples/rice_images/rice_image1.png[] INPUT #{BLANK_HDR}
OUTPUT end it "accepts auto for width and height attributes on images" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [height=4,width=auto] image::spec/examples/rice_images/rice_image1.png[] INPUT #{BLANK_HDR}
OUTPUT end it "accepts alignment attribute on paragraphs" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [align=right] This para is right-aligned. INPUT #{BLANK_HDR}

This para is right-aligned.

OUTPUT end it "processes blockquotes" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [quote, ISO, "ISO7301,section 1"] ____ Block quotation ____ INPUT #{BLANK_HDR} 1 ISO

Block quotation

OUTPUT end it "processes source code" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [source,ruby] -- puts "Hello, world." %w{a b c}.each do |x| puts x end -- INPUT #{BLANK_HDR} puts "Hello, world." %w{a b c}.each do |x| puts x end OUTPUT end it "processes callouts" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [source,ruby] -- puts "Hello, world." <1> %w{a b c}.each do |x| puts x <2> end -- <1> This is one callout <2> This is another callout INPUT #{BLANK_HDR} puts "Hello, world." 1 %w{a b c}.each do |x| puts x 2 end

This is one callout

This is another callout

OUTPUT end it "processes unmodified term sources" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 [.source] <> INPUT #{BLANK_HDR} Terms and definitions #{TERM_BOILERPLATE} Term1 1 OUTPUT end it "processes modified term sources" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 [.source] <>, with adjustments INPUT #{BLANK_HDR} Terms and definitions #{TERM_BOILERPLATE} Term1 1

with adjustments

OUTPUT end end