package org.jostraca.directive.test;
import java.util.*;
import org.jostraca.Generator;
import org.jostraca.Template;
import org.jostraca.VirtualTemplate;
import org.jostraca.directive.DirectiveException;
import org.jostraca.directive.IncludeDirectiveSupport;
import org.jostraca.test.VirtualTest;
import org.jostraca.util.PropertySet;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import junit.textui.TestRunner;
public class IncludeDirectiveTest extends TestCase {
// test framework
public IncludeDirectiveTest( String pName ) {
super( pName );
}
public static TestSuite suite() {
return new TestSuite( IncludeDirectiveTest.class );
}
public static void main( String[] pArgs ) {
TestRunner.run( suite() );
}
// tests
public static final class SimpleIncludeDirective extends IncludeDirectiveSupport {
protected String loadIncludeSource(String pPath, List pArguments, Template pTemplate) throws DirectiveException {
return "include <%='this'%>";
}
}
public void testSimple() throws Exception {
PropertySet ps = new PropertySet();
ps.set("jostraca.standard.Directives", "SectionDirective, InitDirective, OneLineDirective, CollapseWhiteSpaceDirective, org.jostraca.directive.test.IncludeDirectiveTest$SimpleIncludeDirective");
Generator g = VirtualTest.makeVirtualGenerator(ps);
String src =
"<% @conf main.JostracaVersion = 0.4 \n main.TemplateScript = javascript %>"
+"Hi <% @"+IncludeDirectiveSupport.NAME+" foo bar %>";
Template t = new VirtualTemplate("test01.js",src);
try {
g.generate(t);
}
catch( Exception e ) {
System.out.println("cw:"+t.getCodeWriterSource());
throw e;
}
System.out.println("res:"+t.getResult());
assertEquals("Hi include this",t.getResult());
}
}