init
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.tomcat.util.descriptor.tld;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
import org.xml.sax.SAXParseException;
|
||||
|
||||
public class TestImplicitTldParser {
|
||||
private TldParser parser;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
parser = new TldParser(true, true, new ImplicitTldRuleSet(), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testImplicitTldGood() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/implicit-good.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("2.1", xml.getJspVersion());
|
||||
Assert.assertEquals("Ignored", xml.getShortName());
|
||||
}
|
||||
|
||||
@Test(expected=SAXParseException.class)
|
||||
public void testImplicitTldBad() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/implicit-bad.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("2.1", xml.getJspVersion());
|
||||
Assert.assertEquals("Ignored", xml.getShortName());
|
||||
}
|
||||
|
||||
private TaglibXml parse(String pathname) throws IOException, SAXException {
|
||||
File file = new File(pathname);
|
||||
TldResourcePath path = new TldResourcePath(file.toURI().toURL(), null);
|
||||
return parser.parse(path);
|
||||
}
|
||||
|
||||
}
|
||||
173
test/org/apache/tomcat/util/descriptor/tld/TestTldParser.java
Normal file
173
test/org/apache/tomcat/util/descriptor/tld/TestTldParser.java
Normal file
@@ -0,0 +1,173 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
* (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.apache.tomcat.util.descriptor.tld;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.jsp.tagext.FunctionInfo;
|
||||
import javax.servlet.jsp.tagext.TagAttributeInfo;
|
||||
import javax.servlet.jsp.tagext.TagVariableInfo;
|
||||
import javax.servlet.jsp.tagext.VariableInfo;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
public class TestTldParser {
|
||||
private TldParser parser;
|
||||
|
||||
@Before
|
||||
public void init() {
|
||||
parser = new TldParser(true, true, new TldRuleSet(), true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTld() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/test.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("2.1", xml.getJspVersion());
|
||||
Assert.assertEquals("test", xml.getShortName());
|
||||
Assert.assertEquals("http://tomcat.apache.org/TldTests", xml.getUri());
|
||||
Assert.assertEquals(1, xml.getFunctions().size());
|
||||
|
||||
ValidatorXml validator = xml.getValidator();
|
||||
Assert.assertEquals("com.example.Validator", validator.getValidatorClass());
|
||||
Assert.assertEquals(1, validator.getInitParams().size());
|
||||
Assert.assertEquals("value", validator.getInitParams().get("name"));
|
||||
|
||||
Assert.assertEquals(1, xml.getTags().size());
|
||||
TagXml tag = xml.getTags().get(0);
|
||||
Assert.assertEquals("org.apache.jasper.compiler.TestValidator$Echo", tag.getTagClass());
|
||||
Assert.assertEquals("empty", tag.getBodyContent());
|
||||
Assert.assertTrue(tag.hasDynamicAttributes());
|
||||
|
||||
Assert.assertEquals(1, tag.getVariables().size());
|
||||
TagVariableInfo variableInfo = tag.getVariables().get(0);
|
||||
Assert.assertEquals("var", variableInfo.getNameGiven());
|
||||
Assert.assertEquals("java.lang.Object", variableInfo.getClassName());
|
||||
Assert.assertTrue(variableInfo.getDeclare());
|
||||
Assert.assertEquals(VariableInfo.AT_END, variableInfo.getScope());
|
||||
|
||||
Assert.assertEquals(4, tag.getAttributes().size());
|
||||
TagAttributeInfo attributeInfo = tag.getAttributes().get(0);
|
||||
Assert.assertEquals("Echo Tag", tag.getInfo());
|
||||
Assert.assertEquals("Echo", tag.getDisplayName());
|
||||
Assert.assertEquals("small", tag.getSmallIcon());
|
||||
Assert.assertEquals("large", tag.getLargeIcon());
|
||||
Assert.assertEquals("echo", attributeInfo.getName());
|
||||
Assert.assertTrue(attributeInfo.isRequired());
|
||||
Assert.assertTrue(attributeInfo.canBeRequestTime());
|
||||
|
||||
attributeInfo = tag.getAttributes().get(1);
|
||||
Assert.assertEquals("fragment", attributeInfo.getName());
|
||||
Assert.assertTrue(attributeInfo.isFragment());
|
||||
Assert.assertTrue(attributeInfo.canBeRequestTime());
|
||||
Assert.assertEquals("javax.servlet.jsp.tagext.JspFragment", attributeInfo.getTypeName());
|
||||
|
||||
attributeInfo = tag.getAttributes().get(2);
|
||||
Assert.assertEquals("deferredValue", attributeInfo.getName());
|
||||
Assert.assertEquals("javax.el.ValueExpression", attributeInfo.getTypeName());
|
||||
Assert.assertEquals("java.util.Date", attributeInfo.getExpectedTypeName());
|
||||
|
||||
attributeInfo = tag.getAttributes().get(3);
|
||||
Assert.assertEquals("deferredMethod", attributeInfo.getName());
|
||||
Assert.assertEquals("javax.el.MethodExpression", attributeInfo.getTypeName());
|
||||
Assert.assertEquals("java.util.Date getDate()", attributeInfo.getMethodSignature());
|
||||
|
||||
Assert.assertEquals(1, xml.getTagFiles().size());
|
||||
TagFileXml tagFile = xml.getTagFiles().get(0);
|
||||
Assert.assertEquals("Echo", tag.getDisplayName());
|
||||
Assert.assertEquals("small", tag.getSmallIcon());
|
||||
Assert.assertEquals("large", tag.getLargeIcon());
|
||||
Assert.assertEquals("Echo2", tagFile.getName());
|
||||
Assert.assertEquals("/echo.tag", tagFile.getPath());
|
||||
|
||||
Assert.assertEquals(1, xml.getFunctions().size());
|
||||
FunctionInfo fn = xml.getFunctions().get(0);
|
||||
Assert.assertEquals("trim", fn.getName());
|
||||
Assert.assertEquals("org.apache.el.TesterFunctions", fn.getFunctionClass());
|
||||
Assert.assertEquals("java.lang.String trim(java.lang.String)", fn.getFunctionSignature());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseTld21() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/tags21.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("2.1", xml.getJspVersion());
|
||||
Assert.assertEquals("Tags21", xml.getShortName());
|
||||
Assert.assertEquals("http://tomcat.apache.org/tags21", xml.getUri());
|
||||
verifyTags(xml.getTags());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseTld20() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/tags20.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("2.0", xml.getJspVersion());
|
||||
Assert.assertEquals("Tags20", xml.getShortName());
|
||||
Assert.assertEquals("http://tomcat.apache.org/tags20", xml.getUri());
|
||||
verifyTags(xml.getTags());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseTld12() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/tags12.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("1.2", xml.getJspVersion());
|
||||
Assert.assertEquals("Tags12", xml.getShortName());
|
||||
Assert.assertEquals("http://tomcat.apache.org/tags12", xml.getUri());
|
||||
verifyTags(xml.getTags());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseTld11() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/tags11.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
Assert.assertEquals("1.1", xml.getJspVersion());
|
||||
Assert.assertEquals("Tags11", xml.getShortName());
|
||||
Assert.assertEquals("http://tomcat.apache.org/tags11", xml.getUri());
|
||||
verifyTags(xml.getTags());
|
||||
}
|
||||
|
||||
private void verifyTags(List<TagXml> tags) {
|
||||
Assert.assertEquals(1, tags.size());
|
||||
TagXml tag = tags.get(0);
|
||||
Assert.assertEquals("Echo", tag.getName());
|
||||
Assert.assertEquals("org.apache.jasper.compiler.TestValidator$Echo", tag.getTagClass());
|
||||
Assert.assertEquals("empty", tag.getBodyContent());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testListener() throws Exception {
|
||||
TaglibXml xml = parse("test/tld/listener.tld");
|
||||
Assert.assertEquals("1.0", xml.getTlibVersion());
|
||||
List<String> listeners = xml.getListeners();
|
||||
Assert.assertEquals(1, listeners.size());
|
||||
Assert.assertEquals("org.apache.catalina.core.TesterTldListener", listeners.get(0));
|
||||
}
|
||||
|
||||
private TaglibXml parse(String pathname) throws IOException, SAXException {
|
||||
File file = new File(pathname);
|
||||
TldResourcePath path = new TldResourcePath(file.toURI().toURL(), null);
|
||||
return parser.parse(path);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user