/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.vf.ast;
import static org.junit.Assert.assertEquals;
import java.util.Set;
import org.junit.Test;
public class VfPageStyleTest extends AbstractVfNodesTest {
/**
* Test parsing of a EL expression.
*/
@Test
public void testElExpression() {
Set<ASTElExpression> expressions = getNodes(ASTElExpression.class, VF_EL_EXPRESSION);
assertEquals("One expression expected!", 1, expressions.size());
ASTElExpression expression = expressions.iterator().next();
ASTExpression exp = expression.getFirstChildOfType(ASTExpression.class);
ASTIdentifier id = exp.getFirstChildOfType(ASTIdentifier.class);
assertEquals("Correct expression content expected!", "myBean", id.getImage());
ASTDotExpression dot = exp.getFirstChildOfType(ASTDotExpression.class);
ASTIdentifier dotid = dot.getFirstChildOfType(ASTIdentifier.class);
assertEquals("Correct expression content expected!", "get", dotid.getImage());
ASTArguments arguments = exp.getFirstChildOfType(ASTArguments.class);
ASTExpression innerExpression = arguments.getFirstChildOfType(ASTExpression.class);
ASTLiteral literal = innerExpression.getFirstChildOfType(ASTLiteral.class);
assertEquals("Correct expression content expected!", "\"{! World }\"", literal.getImage());
}
/**
* Test parsing of a EL expression in an attribute.
*/
@Test
public void testElExpressionInAttribute() {
Set<ASTElExpression> expressions = getNodes(ASTElExpression.class, VF_EL_EXPRESSION_IN_ATTRIBUTE);
assertEquals("One expression expected!", 1, expressions.size());
ASTElExpression expression = expressions.iterator().next();
ASTExpression exp = expression.getFirstChildOfType(ASTExpression.class);
ASTIdentifier id = exp.getFirstChildOfType(ASTIdentifier.class);
assertEquals("Correct expression content expected!", "myValidator", id.getImage());
ASTDotExpression dot = exp.getFirstChildOfType(ASTDotExpression.class);
ASTIdentifier dotid = dot.getFirstChildOfType(ASTIdentifier.class);
assertEquals("Correct expression content expected!", "find", dotid.getImage());
ASTArguments arguments = exp.getFirstChildOfType(ASTArguments.class);
ASTExpression innerExpression = arguments.getFirstChildOfType(ASTExpression.class);
ASTLiteral literal = innerExpression.getFirstChildOfType(ASTLiteral.class);
assertEquals("Correct expression content expected!", "\"'vf'\"", literal.getImage());
}
private static final String VF_EL_EXPRESSION = "<html><title>Hello {!myBean.get(\"{! World }\") } .vf</title></html>";
private static final String VF_EL_EXPRESSION_IN_ATTRIBUTE = "<html> <f:validator type=\"get('type').{!myValidator.find(\"'vf'\")}\" /> </html>";
public static junit.framework.Test suite() {
return new junit.framework.JUnit4TestAdapter(VfPageStyleTest.class);
}
}