require "spec_helper"
RSpec.describe Asciidoctor::ISO do
it "processes open blocks" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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: :iso, 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 %
OUTPUT
end
it "ignores review blocks unless document is in draft mode" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
= Document title
Author
:docfile: test.adoc
:nodoc:
:novalid:
:draft: 1.2
[[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}
1.2
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: :iso, 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 DefinitionsTerm1
This is a note
OUTPUT
end
it "processes notes" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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 "does nothing in particular with literals" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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: :iso, 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: :iso, 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}
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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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 DefinitionsTerm1
This is an example
OUTPUT
end
it "processes examples" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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: :iso, 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: :iso, 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: :iso, 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 alignment attribute on paragraphs" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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: :iso, header_footer: true))).to be_equivalent_to <<~"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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, 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: :iso, 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: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
== Terms and Definitions
=== Term1
[.source]
<>
INPUT
#{BLANK_HDR}
Terms and DefinitionsTerm11
OUTPUT
end
it "processes modified term sources" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
== Terms and Definitions
=== Term1
[.source]
<>, with adjustments
INPUT
#{BLANK_HDR}
Terms and DefinitionsTerm11