public void testCollapseMultilineCommandsAndEscapeJinjaDelimiters()

in javatests/com/google/cloud/deploymentmanager/autogen/soy/PreprocessorTest.java [181:267]


  public void testCollapseMultilineCommandsAndEscapeJinjaDelimiters() {
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{if a = b}")))
        .isEqualTo(lines(
            "{if a = b}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{if a  ",
            "   = b}")))
        .isEqualTo(lines(
            "{if a = b}"));    
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{if",
            "a = b}")))
        .isEqualTo(lines(
            "{if a = b}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{if  ",
            "  a = b}")))
        .isEqualTo(lines(
            "{if a = b}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{($a ",
            " + $b) * 3",
            "}")))
        .isEqualTo(lines(
            "{($a + $b) * 3 }"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{'abc'",
            " + $a}")))
        .isEqualTo(lines(
            "{'abc' + $a}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{'abc'",
            " + $a}")))
        .isEqualTo(lines(
            "{'abc' + $a}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{$a ",
            "  |directive}")))
        .isEqualTo(lines(
            "{$a |directive}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{ $a ",
            "  |directive}")))
        .isEqualTo(lines(
            "{ $a |directive}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{#  ",
            "  jinja",
            "  comment #}")))
        .isEqualTo(lines(
            "{lb}#  ",
            "  jinja",
            "  comment #{rb}"));
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(
            "{% if a > b %}{{ a }}{% endif %}"))
        .isEqualTo("{lb}% if a > b %{rb}{lb}{lb} a {rb}{rb}{lb}% endif %{rb}");
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(
            "{%- if a > b -%}{{- a -}}{%- endif -%}"))
        .isEqualTo("{lb}%- if a > b -%{rb}{lb}{lb}- a -{rb}{rb}{lb}%- endif -%{rb}");
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(
            "{if supportA}{{ a }}{/if}"))
        .isEqualTo("{if supportA}{lb}{lb} a {rb}{rb}{/if}");
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(
            "abc: {# comment here #}"))
        .isEqualTo("abc: {lb}# comment here #{rb}");
    // Should not escape the ones inside a literal string inside a (even multilined) command. 
    assertThat(
        Preprocessor.collapseMultilineCommandsAndEscapeJinjaDelimiters(lines(
            "{if $a == ", 
            "'{{ test }}'}{{ no_test }}{/if}")))
        .isEqualTo("{if $a == '{{ test }}'}{lb}{lb} no_test {rb}{rb}{/if}");
  }