# -*- coding: utf-8 -*- require "test_helper" module ContentTestSetup def setup super @template_text = 'templateAFTER' @document = Nokogiri::XML.fragment(@template_text) @paragraph = @document.children.first @node = @document.css("span").first end private def assert_xml_equal(expected, document) assert_equal expected, document.to_xml(indent: 0, save_with: 0) end end class ContentStringTest < Sablon::TestCase include ContentTestSetup def test_single_line_string Sablon.string("a normal string").append_to @paragraph, @node output = <<-XML.strip templatea normal stringAFTER XML assert_xml_equal output, @document end def test_numeric_string Sablon.string(42).append_to @paragraph, @node output = <<-XML.strip template42AFTER XML assert_xml_equal output, @document end def test_string_with_newlines Sablon.string("a\nmultiline\n\nstring").append_to @paragraph, @node output = <<-XML.strip.gsub("\n", "") template a multiline string AFTER XML assert_xml_equal output, @document end def test_blank_string Sablon.string("").append_to @paragraph, @node assert_xml_equal @template_text, @document end end class ContentWordMLTest < Sablon::TestCase include ContentTestSetup def test_blank_word_ml Sablon.word_ml("").append_to @paragraph, @node assert_xml_equal "AFTER", @document end def test_inserts_word_ml_into_the_document @word_ml = 'a ' Sablon.word_ml(@word_ml).append_to @paragraph, @node output = <<-XML.strip.gsub("\n", "") a AFTER XML assert_xml_equal output, @document end def test_inserting_word_ml_multiple_times_into_same_paragraph skip "Content::WordML currently removes the paragraph..." end end