require "spec_helper"
RSpec.describe Asciidoctor::Iec do
before(:all) do
@blank_hdr = blank_hdr_gen
end
it "processes open blocks" do
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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: :iec, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
#{ASCIIDOC_BLANK_HDR}
[stem]
++++
r = 1 %
r = 1 %
++++
[stem]
++++
FΑ
++++
INPUT
#{@blank_hdr}
OUTPUT
end
it "ignores review blocks unless document is in draft mode" do
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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: :iec, header_footer: true)).sub(/^.+/m, "").sub(%r{.*$}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: :iec, 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
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(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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: :iec, 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: :iec, 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: :iec, 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:
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.
OUTPUT
end
it "processes term examples" do
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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
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(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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: :iec, 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: :iec, 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: :iec, 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: :iec, 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: :iec, 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: :iec, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
#{ASCIIDOC_BLANK_HDR}
[quote, ISO, "ISO7301,section 1"]
____
Block quotation
____
INPUT
#{@blank_hdr}
1ISO
Block quotation
OUTPUT
end
it "processes source code" do
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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: :iec, 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: :iec, header_footer: true)))).to be_equivalent_to xmlpp(<<~"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}
Term11
OUTPUT
end
it "processes modified term sources" do
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, 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
For the purposes of this document, the following terms and definitions apply.