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}");
}