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

x

y

z

OUTPUT end it "processes stem blocks" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true)).sub(/^.+/m, "")).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 NOTE: This is a note INPUT #{BLANK_HDR} Terms and definitions

For the purposes of this document, the following terms and definitions apply.

#{TERMS_BOILERPLATE} Term1

This is a note

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

This is a note

OUTPUT end it "processes literals" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} .... LITERAL .... INPUT #{BLANK_HDR}
LITERAL
OUTPUT end it "processes simple admonitions with Asciidoc names" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 [example] This is an example INPUT #{BLANK_HDR} Terms and definitions

For the purposes of this document, the following terms and definitions apply.

#{TERMS_BOILERPLATE} Term1

This is an example

OUTPUT end it "processes examples" do expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT" #{ASCIIDOC_BLANK_HDR} == Terms and Definitions === Term1 [.source] <> INPUT #{BLANK_HDR} Terms and definitions

For the purposes of this document, the following terms and definitions apply.

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

For the purposes of this document, the following terms and definitions apply.

#{TERMS_BOILERPLATE} Term1 1

with adjustments

OUTPUT end end