Skip to content

Commit c223157

Browse files
<fix>: add testcases
1 parent 21dc52f commit c223157

3 files changed

Lines changed: 53 additions & 6 deletions

File tree

velocity-engine-core/src/main/java/org/apache/velocity/spi/compilers/BaseCompiler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
public abstract class BaseCompiler implements Compiler {
3636

3737
private static final Pattern PACKAGE_PATTERN = Pattern.compile("package\\s+([_a-zA-Z][_a-zA-Z0-9\\.]*);");
38-
private static final Pattern CLASS_PATTERN = Pattern.compile("public\\s+class\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\s+");
38+
private static final Pattern CLASS_PATTERN = Pattern.compile("class\\s+([_a-zA-Z][_a-zA-Z0-9]*)\\s+");
3939

4040
protected final Logger logger = LoggerFactory.getLogger(getClass());
4141
protected Cache<String, Object> cache;

velocity-engine-core/src/main/java/org/apache/velocity/spi/translators/templates/CompiledVisitor.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,13 @@ public Object visit(ASTAssignment node, Object data) {
9898

9999
@Override
100100
public Object visit(ASTComment node, Object data) {
101-
return null;
101+
return "";
102102
}
103103

104104
@Override
105105
public Object visit(ASTDirective node, Object data) {
106-
return null;
106+
// TODO: 2021/11/23
107+
return "";
107108
}
108109

109110
@Override
@@ -404,7 +405,7 @@ public String visit(SimpleNode node, Object data) {
404405
sourceCode.append("public final class ").append(clsName).append(" extends CompiledTemplate {\r\n\r\n");
405406
sourceCode.append(" @Override\r\n");
406407
sourceCode.append(" protected void doRender(Context $context, Writer $output) throws Exception {\r\n");
407-
sourceCode.append(" ").append(methodCode).append("\r\n");
408+
sourceCode.append(" ").append("").append("\r\n");
408409
sourceCode.append(" }\r\n");
409410
sourceCode.append("}\r\n");
410411
String clazz = sourceCode.toString();
Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,62 @@
11
package org.apache.velocity.spi.translators;
22

3+
import java.io.IOException;
4+
import java.io.Reader;
5+
import java.util.Locale;
6+
import org.apache.velocity.api.Resource;
7+
import org.apache.velocity.runtime.RuntimeInstance;
8+
import org.apache.velocity.runtime.parser.ParseException;
9+
import org.apache.velocity.spi.Loader;
10+
import org.apache.velocity.spi.Parser;
311
import org.apache.velocity.spi.compilers.JavassistCompiler;
4-
import org.apache.velocity.spi.loaders.resources.StringResource;
12+
import org.apache.velocity.spi.loaders.ClasspathLoader;
13+
import org.apache.velocity.spi.parsers.TemplateParser;
14+
import org.junit.Assert;
515
import org.junit.Test;
616

717
public class CompiledTranslatorTest {
818

919
@Test
1020
public void test_translate() {
21+
RuntimeInstance runtimeInstance = new RuntimeInstance();
22+
runtimeInstance.init();
23+
Loader loader = creatLoader(runtimeInstance);
24+
Parser parser = createParser(runtimeInstance);
25+
1126
CompiledTranslator translator = new CompiledTranslator();
1227
translator.setCompiler(new JavassistCompiler());
13-
translator.translate(new StringResource(null, "", null, "utf-8", 0L, null), null);
28+
Resource resource;
29+
String res;
30+
try {
31+
resource = loader.load("eval1.vm", null, null);
32+
try (Reader reader = resource.openReader()) {
33+
StringBuilder out = new StringBuilder();
34+
int ch;
35+
while ((ch = reader.read()) != -1) {
36+
out.append((char) ch);
37+
}
38+
res = out.toString();
39+
}
40+
translator.translate(resource, parser.parse("eval1.vm", res));
41+
} catch (IOException | ParseException e) {
42+
Assert.fail(e.getMessage());
43+
}
44+
}
45+
46+
private Parser createParser(RuntimeInstance runtimeInstance) {
47+
TemplateParser parser = new TemplateParser();
48+
parser.setInnerParser(runtimeInstance.createNewParser());
49+
return parser;
1450
}
1551

52+
private Loader creatLoader(RuntimeInstance runtimeInstance) {
53+
ClasspathLoader loader = new ClasspathLoader();
54+
loader.setEngine(runtimeInstance);
55+
loader.setEncoding("utf-8");
56+
loader.setLocale(Locale.getDefault());
57+
loader.setReloadable(true);
58+
loader.setTemplateSuffix(new String[]{".vm"});
59+
loader.setTemplateDirectory(new String[]{"evaluate/"});
60+
return loader;
61+
}
1662
}

0 commit comments

Comments
 (0)