public void LavaToLiquidConverter_LavaTemplateWithElseIfKeyword_IsReplacedWithElsif() { var input = @" {% assign speed = 50 %} {% if speed > 70 -%} Fast {% elseif speed > 30 -%} Moderate {% else -%} Slow {% endif -%} "; var expectedOutput = @" {% assign speed = 50 %} {% if speed > 70 -%} Fast {% elsif speed > 30 -%} Moderate {% else -%} Slow {% endif -%} "; var converter = new LavaToLiquidTemplateConverter(); var output = converter.ReplaceElseIfKeyword(input); Assert.That.AreEqual(expectedOutput, output); }
public void LavaToLiquidConverter_LavaShortcodeWithNoParameters_IsReplacedWithRenamedBlock() { var input = @"{[ shortcodetest ]}{[ endshortcodetest ]}"; var expectedOutput = @"{% shortcodetest_ %}{% endshortcodetest_ %}"; var converter = new LavaToLiquidTemplateConverter(); var output = converter.ReplaceTemplateShortcodes(input); Assert.That.AreEqualIgnoreWhitespace(expectedOutput, output); }
public void LavaToLiquidConverter_LavaShortcodeWithMultipleParameters_IsReplacedWithRenamedBlock() { var input = @"{[ shortcodetest fontname:'Arial' fontsize:'{{ fontsize }}' fontbold:'true' ]}{[ endshortcodetest ]}"; var expectedOutput = @"{% shortcodetest_ fontname:'Arial' fontsize:'{{ fontsize }}' fontbold:'true' %}{% endshortcodetest_ %}"; var converter = new LavaToLiquidTemplateConverter(); var output = converter.ReplaceTemplateShortcodes(input); Assert.That.AreEqualIgnoreWhitespace(expectedOutput, output); }
private Template CreateNewDotLiquidTemplate(string inputTemplate) { // Remove custom comments from the source, but make no other changes because we are using the RockLiquid framework. var converter = new LavaToLiquidTemplateConverter(); var liquidTemplate = converter.RemoveLavaComments(inputTemplate); var template = Template.Parse(liquidTemplate); /* * 2/19/2020 - JPH * The DotLiquid library's Template object was not originally designed to be thread safe, but a PR has since * been merged into that repository to add this functionality (https://github.com/dotliquid/dotliquid/pull/220). * We have cherry-picked the PR's changes into our DotLiquid project, allowing the Template to operate safely * in a multithreaded context, which can happen often with our cached Template instances. * * Reason: Rock Issue #4084, Weird Behavior with Lava Includes */ template.MakeThreadSafe(); return(template); }