Skip to content

Instantly share code, notes, and snippets.

@tiennv90
Last active December 22, 2015 16:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tiennv90/6498914 to your computer and use it in GitHub Desktop.
Save tiennv90/6498914 to your computer and use it in GitHub Desktop.
package com.nextuser.template.plugins;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.mozilla.javascript.NativeObject;
import org.mozilla.javascript.json.JsonParser;
import com.nextuser.template.JavaScript;
public class JavaScriptTest {
@Test
public void testBeardJS_CallRenderMethod() throws Exception {
JavaScript js = new JavaScript( readFile("src/main/resrouces/beard.js"));
js.addScript("var beard = new Beard();");
js.putJSObject("tpl", "Hello <%= var1 %> <%= var2 %> <%= var3 %> <%@ elem1 %> world!");
js.addScript("beard.set(tpl);");
JsonParser parser = new JsonParser(js.getContext(), js.getScope());
Object data = parser
.parseValue(readFile("src/test/resources/variables.json"));
Object elements = parser
.parseValue(readFile("src/test/resources/elements.json"));
js.putJSObject("data", data)
.putJSObject("elements", elements);
js.addScript("beard.dat = data; beard.elements = elements;");
Object result = js.execute("beard.render(data);", false);
assertEquals(
"Hello Variable One Variable Two Variable Three Element 1 world!",
result.toString());
}
@Test
public void testBeardJS_CallSetElements() throws Exception {
String resource = readFile("src/main/resrouces/beard.js");
JavaScript js = new JavaScript(resource);
js.addScript("var beard = new Beard();");
js.putJSObject("key", "elem2").putJSObject("value", "Element2");
js.addScript("beard.elements[key] = value;");
NativeObject result = (NativeObject) js.execute("beard.elements", true);
assertEquals(1, result.keySet().size());
List<Object> keys = new ArrayList<Object>(result.keySet());
assertEquals("elem2", keys.get(0));
assertEquals("Element2", result.get(keys.get(0)));
}
public static String readFile(String filepath) throws Exception {
java.io.FileReader infile = new java.io.FileReader(filepath);
java.util.Scanner indata = new java.util.Scanner(infile);
StringBuilder result = new StringBuilder();
while (indata.hasNextLine()) {
result.append(indata.nextLine() + "\n");
}
infile.close();
indata.close();
return result.toString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment