# encoding: UTF-8 require 'test_helper' require 'govspeak_test_helper' class GovspeakImagesBangTest < Minitest::Test include GovspeakTestHelper class Image attr_reader :alt_text, :url, :caption, :credit def initialize(attrs = {}) @alt_text = attrs[:alt_text] || "my alt" @url = attrs[:url] || "http://example.com/image.jpg" @caption = attrs[:caption] @credit = attrs[:credit] end end test "!!n syntax renders an image in options[:images]" do given_govspeak "!!1", images: [Image.new] do assert_html_output( %{
} + %{
my alt
} + %{
} ) end end test "!!n syntax escapes alt text" do given_govspeak "!!1", images: [Image.new(alt_text: %{my alt '&"<>})] do assert_html_output( %{
} + %{
my alt '&"<>
} + %{
} ) end end test "!!n syntax renders nothing if not found" do doc = Govspeak::Document.new("!!1") assert_equal %{\n}, doc.to_html end test "Image:image-id syntax renders nothing" do doc = Govspeak::Document.new("[Image:another-id]", images: [Image.new]) assert_equal %{\n}, doc.to_html end test "!!n syntax adds image caption if given" do given_govspeak "!!1", images: [Image.new(caption: 'My Caption & so on')] do assert_html_output( %{
} + %{
my alt
\n} + %{

My Caption & so on

} + %{
} ) end end test "!!n syntax ignores a blank caption" do given_govspeak "!!1", images: [Image.new(caption: ' ')] do assert_html_output( %{
} + %{
my alt
} + %{
} ) end end test "¡¡n syntax adds image credit if given" do given_govspeak "!!1", images: [Image.new(credit: 'My Credit & so on')] do assert_html_output( %{
} + %{
my alt
\n} + %{

Image credit: My Credit & so on

} + %{
} ) end end test "!!n syntax ignores a blank credit" do given_govspeak "!!1", images: [Image.new(credit: ' ')] do assert_html_output( %{
} + %{
my alt
} + %{
} ) end end test "!!n syntax adds image caption and credit if given" do given_govspeak "!!1", images: [Image.new(caption: 'My Caption & so on', credit: 'My Credit & so on')] do assert_html_output( %{
} + %{
my alt
\n} + %{
} + %{

My Caption & so on

\n} + %{

Image credit: My Credit & so on

} + %{
} + %{
} ) end end end