http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java b/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java deleted file mode 100644 index 18eb41a..0000000 --- a/juneau-core-test/src/test/java/org/apache/juneau/html/BasicHtmlTest.java +++ /dev/null @@ -1,3016 +0,0 @@ -// *************************************************************************************************************************** -// * 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.juneau.html; - -import static org.apache.juneau.TestUtils.*; - -import static org.junit.Assert.*; - -import java.lang.reflect.*; -import java.util.*; - -import org.apache.juneau.annotation.*; -import org.apache.juneau.html.annotation.*; -import org.apache.juneau.xml.annotation.*; -import org.junit.*; -import org.junit.runner.*; -import org.junit.runners.*; - -@RunWith(Parameterized.class) -@SuppressWarnings({"javadoc","serial","rawtypes","unchecked"}) -@FixMethodOrder(MethodSorters.NAME_ASCENDING) -public class BasicHtmlTest { - - private static final HtmlSerializer - s1 = HtmlSerializer.DEFAULT_SQ, - s2 = HtmlSerializer.DEFAULT_SQ_READABLE, - s3 = HtmlSerializer.DEFAULT_SQ.builder().abridged(true).build(); - private static final HtmlParser parser = HtmlParser.DEFAULT; - - @Parameterized.Parameters - public static Collection<Object[]> getParameters() { - return Arrays.asList(new Object[][] { - - { /* 0 */ - new Input<String>( - "SimpleTypes-1", - String.class, - "foo", - "<string>foo</string>", - "<string>foo</string>", - "<string>foo</string>" - ) - { - @Override - public void verify(String o) { - assertType(String.class, o); - } - } - }, - { /* 1 */ - new Input<Boolean>( - "SimpleTypes-2", - boolean.class, - true, - "<boolean>true</boolean>", - "<boolean>true</boolean>", - "<boolean>true</boolean>" - ) - { - @Override - public void verify(Boolean o) { - assertType(Boolean.class, o); - } - } - }, - { /* 2 */ - new Input<Integer>( - "SimpleTypes-3", - int.class, - 123, - "<number>123</number>", - "<number>123</number>", - "<number>123</number>" - ) - { - @Override - public void verify(Integer o) { - assertType(Integer.class, o); - } - } - }, - { /* 3 */ - new Input<Float>( - "SimpleTypes-4", - float.class, - 1.23f, - "<number>1.23</number>", - "<number>1.23</number>", - "<number>1.23</number>" - ) - { - @Override - public void verify(Float o) { - assertType(Float.class, o); - } - } - }, - { /* 4 */ - new Input<String>( - "SimpleTypes-5", - String.class, - null, - "<null/>", - "<null/>", - "<null/>" - ) - }, - { /* 5 */ - new Input<String[]>( - "Arrays-1", - String[].class, - new String[]{"foo"}, - "<ul><li>foo</li></ul>", - "<ul>\n\t<li>foo</li>\n</ul>\n", - "<ul><li>foo</li></ul>" - ) - { - @Override - public void verify(String[] o) { - assertType(String.class, o[0]); - } - } - }, - { /* 6 */ - new Input<String[]>( - "Arrays-2", - String[].class, - new String[]{null}, - "<ul><li><null/></li></ul>", - "<ul>\n\t<li><null/></li>\n</ul>\n", - "<ul><li><null/></li></ul>" - ) - }, - { /* 7 */ - new Input<Object[]>( - "Arrays-3", - Object[].class, - new Object[]{"foo",123,true}, - "<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>", - "<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><boolean>true</boolean></li>\n</ul>\n", - "<ul><li>foo</li><li><number>123</number></li><li><boolean>true</boolean></li></ul>" - ) - { - @Override - public void verify(Object[] o) { - assertType(String.class, o[0]); - assertType(Integer.class, o[1]); - assertType(Boolean.class, o[2]); - } - } - }, - { /* 8 */ - new Input<int[]>( - "Arrays-4", - int[].class, - new int[]{123}, - "<ul><li><number>123</number></li></ul>", - "<ul>\n\t<li><number>123</number></li>\n</ul>\n", - "<ul><li>123</li></ul>" - ) - { - @Override - public void verify(int[] o) { - assertType(int[].class, o); - } - } - }, - { /* 9 */ - new Input<boolean[]>( - "Arrays-5", - boolean[].class, - new boolean[]{true}, - "<ul><li><boolean>true</boolean></li></ul>", - "<ul>\n\t<li><boolean>true</boolean></li>\n</ul>\n", - "<ul><li>true</li></ul>" - ) - { - @Override - public void verify(boolean[] o) { - assertType(boolean[].class, o); - } - } - }, - { /* 10 */ - new Input<String[][]>( - "Arrays-6", - String[][].class, - new String[][]{{"foo"}}, - "<ul><li><ul><li>foo</li></ul></li></ul>", - "<ul>\n\t<li>\n\t\t<ul>\n\t\t\t<li>foo</li>\n\t\t</ul>\n\t</li>\n</ul>\n", - "<ul><li><ul><li>foo</li></ul></li></ul>" - ) - { - @Override - public void verify(String[][] o) { - assertType(String[][].class, o); - } - } - }, - { /* 11 */ - new Input<Map<String,String>>( - "MapWithStrings", - MapWithStrings.class, - new MapWithStrings().append("k1", "v1").append("k2", null), - "<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>v1</td>" - +"</tr>" - +"<tr>" - +"<td>k2</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>k1</td>\n" - +"\t\t<td>v1</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k2</td>\n" - +"\t\t<td><null/></td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>v1</td>" - +"</tr>" - +"<tr>" - +"<td>k2</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(Map<String,String> o) { - assertType(String.class, o.get("k1")); - } - } - }, - { /* 12 */ - new Input<Map<String,Number>>( - "MapsWithNumbers", - MapWithNumbers.class, - new MapWithNumbers().append("k1", 123).append("k2", 1.23).append("k3", null), - "<table>" - +"<tr>" - +"<td>k1</td>" - +"<td><number>123</number></td>" - +"</tr>" - +"<tr>" - +"<td>k2</td>" - +"<td><number>1.23</number></td>" - +"</tr>" - +"<tr>" - +"<td>k3</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>k1</td>\n" - +"\t\t<td><number>123</number></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k2</td>\n" - +"\t\t<td><number>1.23</number></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k3</td>\n" - +"\t\t<td><null/></td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>123</td>" - +"</tr>" - +"<tr>" - +"<td>k2</td>" - +"<td>1.23</td>" - +"</tr>" - +"<tr>" - +"<td>k3</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(Map<String,Number> o) { - assertType(Number.class, o.get("k1")); - } - } - }, - { /* 13 */ - new Input<Map<String,Object>>( - "MapWithObjects", - getType(Map.class,String.class,Object.class), - new MapWithObjects().append("k1", "v1").append("k2", 123).append("k3", 1.23).append("k4", true).append("k5", null), - "<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>v1</td>" - +"</tr>" - +"<tr>" - +"<td>k2</td>" - +"<td><number>123</number></td>" - +"</tr>" - +"<tr>" - +"<td>k3</td>" - +"<td><number>1.23</number></td>" - +"</tr>" - +"<tr>" - +"<td>k4</td>" - +"<td><boolean>true</boolean></td>" - +"</tr>" - +"<tr>" - +"<td>k5</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>k1</td>\n" - +"\t\t<td>v1</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k2</td>\n" - +"\t\t<td><number>123</number></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k3</td>\n" - +"\t\t<td><number>1.23</number></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k4</td>\n" - +"\t\t<td><boolean>true</boolean></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>k5</td>\n" - +"\t\t<td><null/></td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>v1</td>" - +"</tr>" - +"<tr>" - +"<td>k2</td>" - +"<td><number>123</number></td>" - +"</tr>" - +"<tr>" - +"<td>k3</td>" - +"<td><number>1.23</number></td>" - +"</tr>" - +"<tr>" - +"<td>k4</td>" - +"<td><boolean>true</boolean></td>" - +"</tr>" - +"<tr>" - +"<td>k5</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(Map<String,Object> o) { - assertType(String.class, o.get("k1")); - assertType(Integer.class, o.get("k2")); - assertType(Float.class, o.get("k3")); - assertType(Boolean.class, o.get("k4")); - } - } - }, - { /* 14 */ - new Input<List<String>>( - "ListWithStrings", - getType(List.class,String.class), - new ListWithStrings().append("foo").append(null), - "<ul><li>foo</li><li><null/></li></ul>", - "<ul>\n\t<li>foo</li>\n\t<li><null/></li>\n</ul>\n", - "<ul><li>foo</li><li><null/></li></ul>" - ) - { - @Override - public void verify(List<String> o) { - assertType(String.class, o.get(0)); - } - } - }, - { /* 15 */ - new Input<List<Number>>( - "ListWithNumbers", - ListWithNumbers.class, - new ListWithNumbers().append(123).append(1.23).append(null), - "<ul><li><number>123</number></li><li><number>1.23</number></li><li><null/></li></ul>", - "<ul>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><null/></li>\n</ul>\n", - "<ul><li>123</li><li>1.23</li><li><null/></li></ul>" - ) - { - @Override - public void verify(List<Number> o) { - assertType(Integer.class, o.get(0)); - assertType(Float.class, o.get(1)); - } - } - }, - { /* 16 */ - new Input<List<Object>>( - "ListWithObjects", - getType(List.class,Object.class), - new ListWithObjects().append("foo").append(123).append(1.23).append(true).append(null), - "<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>", - "<ul>\n\t<li>foo</li>\n\t<li><number>123</number></li>\n\t<li><number>1.23</number></li>\n\t<li><boolean>true</boolean></li>\n\t<li><null/></li>\n</ul>\n", - "<ul><li>foo</li><li><number>123</number></li><li><number>1.23</number></li><li><boolean>true</boolean></li><li><null/></li></ul>" - ) - { - @Override - public void verify(List<Object> o) { - assertType(String.class, o.get(0)); - assertType(Integer.class, o.get(1)); - assertType(Float.class, o.get(2)); - assertType(Boolean.class, o.get(3)); - } - } - }, - { /* 17 */ - new Input<BeanWithNormalProperties>( - "BeanWithNormalProperties", - BeanWithNormalProperties.class, - new BeanWithNormalProperties().init(), - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>123</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>bar</td>" - +"</tr>" - +"<tr>" - +"<td>d</td>" - +"<td><number>456</number></td>" - +"</tr>" - +"<tr>" - +"<td>e</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>h</td>" - +"<td>qux</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>f</td>" - +"<td>" - +"<ul>" - +"<li>baz</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>g</td>" - +"<td>" - +"<ul>" - +"<li>789</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td>foo</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b</td>\n" - +"\t\t<td>123</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>c</td>\n" - +"\t\t<td>bar</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>d</td>\n" - +"\t\t<td><number>456</number></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>e</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>h</td>\n" - +"\t\t\t\t\t<td>qux</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>f</td>\n" - +"\t\t<td>\n" - +"\t\t\t<ul>\n" - +"\t\t\t\t<li>baz</li>\n" - +"\t\t\t</ul>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>g</td>\n" - +"\t\t<td>\n" - +"\t\t\t<ul>\n" - +"\t\t\t\t<li>789</li>\n" - +"\t\t\t</ul>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>123</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>bar</td>" - +"</tr>" - +"<tr>" - +"<td>d</td>" - +"<td><number>456</number></td>" - +"</tr>" - +"<tr>" - +"<td>e</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>h</td>" - +"<td>qux</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>f</td>" - +"<td>" - +"<ul>" - +"<li>baz</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>g</td>" - +"<td>" - +"<ul>" - +"<li>789</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithNormalProperties o) { - assertType(String.class, o.c); - assertType(Integer.class, o.d); - assertType(Bean1a.class, o.e); - } - } - }, - { /* 18 */ - new Input<BeanWithMapProperties>( - "BeanWithMapProperties", - BeanWithMapProperties.class, - new BeanWithMapProperties().init(), - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k2</td>" - +"<td>123</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k3</td>" - +"<td>bar</td>" - +"</tr>" - +"<tr>" - +"<td>k4</td>" - +"<td><number>456</number></td>" - +"</tr>" - +"<tr>" - +"<td>k5</td>" - +"<td><boolean>true</boolean></td>" - +"</tr>" - +"<tr>" - +"<td>k6</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k1</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k2</td>\n" - +"\t\t\t\t\t<td>123</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>c</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k3</td>\n" - +"\t\t\t\t\t<td>bar</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k4</td>\n" - +"\t\t\t\t\t<td><number>456</number></td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k5</td>\n" - +"\t\t\t\t\t<td><boolean>true</boolean></td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k6</td>\n" - +"\t\t\t\t\t<td><null/></td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k2</td>" - +"<td>123</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k3</td>" - +"<td>bar</td>" - +"</tr>" - +"<tr>" - +"<td>k4</td>" - +"<td><number>456</number></td>" - +"</tr>" - +"<tr>" - +"<td>k5</td>" - +"<td><boolean>true</boolean></td>" - +"</tr>" - +"<tr>" - +"<td>k6</td>" - +"<td><null/></td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithMapProperties o) { - assertType(String.class, o.a.get("k1")); - assertType(Integer.class, o.b.get("k2")); - assertType(String.class, o.c.get("k3")); - assertType(Integer.class, o.c.get("k4")); - assertType(Boolean.class, o.c.get("k5")); - } - } - }, - { /* 19 */ - new Input<BeanWithTypeName>( - "BeanWithTypeName", - BeanWithTypeName.class, - new BeanWithTypeName().init(), - "<table _type='X'>" - +"<tr>" - +"<td>a</td>" - +"<td>123</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>", - - "<table _type='X'>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td>123</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b</td>\n" - +"\t\t<td>foo</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>123</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithTypeName o) { - assertType(BeanWithTypeName.class, o); - } - } - }, - { /* 20 */ - new Input<BeanWithPropertiesWithTypeNames>( - "BeanWithPropertiesWithTypeNames", - BeanWithPropertiesWithTypeNames.class, - new BeanWithPropertiesWithTypeNames().init(), - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<table _type='B'>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>b1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>b</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='B'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>b</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<table _type='B'>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithPropertiesWithTypeNames o) { - assertType(B.class, o.b2); - } - } - }, - { /* 21 */ - new Input<BeanWithPropertiesWithArrayTypeNames>( - "BeanWithPropertiesWithArrayTypeNames", - BeanWithPropertiesWithArrayTypeNames.class, - new BeanWithPropertiesWithArrayTypeNames().init(), - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b3</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>b1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>b</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>b</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='B'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b3</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>b</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='B'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b3</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithPropertiesWithArrayTypeNames o) { - assertType(B.class, o.b2[0]); - assertType(B.class, o.b3[0]); - } - } - }, - { /* 22 */ - new Input<BeanWithPropertiesWith2dArrayTypeNames>( - "BeanWithPropertiesWith2dArrayTypeNames", - BeanWithPropertiesWith2dArrayTypeNames.class, - new BeanWithPropertiesWith2dArrayTypeNames().init(), - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<ul>" - +"<li>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<ul>" - +"<li>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b3</td>" - +"<td>" - +"<ul>" - +"<li>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>b1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<ul>\n" - +"\t\t\t\t<li>\n" - +"\t\t\t\t\t<table _type='array'>\n" - +"\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t<th>b</th>\n" - +"\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t</table>\n" - +"\t\t\t\t</li>\n" - +"\t\t\t</ul>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<ul>\n" - +"\t\t\t\t<li>\n" - +"\t\t\t\t\t<table _type='array'>\n" - +"\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t<th>b</th>\n" - +"\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t<tr _type='B'>\n" - +"\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t</table>\n" - +"\t\t\t\t</li>\n" - +"\t\t\t</ul>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b3</td>\n" - +"\t\t<td>\n" - +"\t\t\t<ul>\n" - +"\t\t\t\t<li>\n" - +"\t\t\t\t\t<table _type='array'>\n" - +"\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t<th>b</th>\n" - +"\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t<tr _type='B'>\n" - +"\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t</table>\n" - +"\t\t\t\t</li>\n" - +"\t\t\t</ul>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<ul>" - +"<li>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<ul>" - +"<li>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b3</td>" - +"<td>" - +"<ul>" - +"<li>" - +"<table _type='array'>" - +"<tr>" - +"<th>b</th>" - +"</tr>" - +"<tr _type='B'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</li>" - +"</ul>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithPropertiesWith2dArrayTypeNames o) { - assertType(B.class, o.b2[0][0]); - assertType(B.class, o.b3[0][0]); - } - } - }, - { /* 23 */ - new Input<BeanWithPropertiesWithMapTypeNames>( - "BeanWithPropertiesWithMapTypeNames", - BeanWithPropertiesWithMapTypeNames.class, - new BeanWithPropertiesWithMapTypeNames().init(), - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k2</td>" - +"<td>" - +"<table _type='B'>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>b1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k1</td>\n" - +"\t\t\t\t\t<td>\n" - +"\t\t\t\t\t\t<table>\n" - +"\t\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t\t<td>b</td>\n" - +"\t\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t</table>\n" - +"\t\t\t\t\t</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k2</td>\n" - +"\t\t\t\t\t<td>\n" - +"\t\t\t\t\t\t<table _type='B'>\n" - +"\t\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t\t<td>b</td>\n" - +"\t\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t</table>\n" - +"\t\t\t\t\t</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>b1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b2</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k2</td>" - +"<td>" - +"<table _type='B'>" - +"<tr>" - +"<td>b</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithPropertiesWithMapTypeNames o) { - assertType(B.class, o.b1.get("k1")); - assertType(B.class, o.b2.get("k2")); - } - } - }, - { /* 24 */ - new Input<LinkBean>( - "LinkBean-1", - LinkBean.class, - new LinkBean().init(), - "<a href='http://apache.org'>foo</a>", - "<a href='http://apache.org'>foo</a>", - "<a href='http://apache.org'>foo</a>" - ) - { - @Override - public void verify(LinkBean o) { - assertType(LinkBean.class, o); - } - } - }, - { /* 25 */ - new Input<LinkBean[]>( - "LinkBean-2", - LinkBean[].class, - new LinkBean[]{new LinkBean().init(),new LinkBean().init()}, - "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>", - "<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n", - "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>" - ) - { - @Override - public void verify(LinkBean[] o) { - assertType(LinkBean.class, o[0]); - } - } - }, - { /* 26 */ - new Input<List<LinkBean>>( - "ListWithLinkBeans", - ListWithLinkBeans.class, - new ListWithLinkBeans().append(new LinkBean().init()).append(new LinkBean().init()), - "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>", - "<ul>\n\t<li><a href='http://apache.org'>foo</a></li>\n\t<li><a href='http://apache.org'>foo</a></li>\n</ul>\n", - "<ul><li><a href='http://apache.org'>foo</a></li><li><a href='http://apache.org'>foo</a></li></ul>" - ) - { - @Override - public void verify(List<LinkBean> o) { - assertType(LinkBean.class, o.get(0)); - } - } - }, - { /* 27 */ - new Input<BeanWithLinkBeanProperties>( - "BeanWithLinkBeanProperties", - BeanWithLinkBeanProperties.class, - new BeanWithLinkBeanProperties().init(), - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td><a href='http://apache.org'>foo</a></td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>" - +"<ul>" - +"<li><a href='http://apache.org'>foo</a></li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>c1</td>" - +"<td><a href='http://apache.org'>foo</a></td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td><a href='http://apache.org'>foo</a></td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b</td>\n" - +"\t\t<td>\n" - +"\t\t\t<ul>\n" - +"\t\t\t\t<li><a href='http://apache.org'>foo</a></li>\n" - +"\t\t\t</ul>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>c</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>c1</td>\n" - +"\t\t\t\t\t<td><a href='http://apache.org'>foo</a></td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td><a href='http://apache.org'>foo</a></td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>" - +"<ul>" - +"<li><a href='http://apache.org'>foo</a></li>" - +"</ul>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>c1</td>" - +"<td><a href='http://apache.org'>foo</a></td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithLinkBeanProperties o) { - assertType(LinkBean.class, o.a); - assertType(LinkBean.class, o.b.get(0)); - assertType(LinkBean.class, o.c.get("c1")); - } - } - }, - { /* 28 */ - new Input<BeanWithSpecialCharacters>( - "BeanWithSpecialCharacters", - BeanWithSpecialCharacters.class, - new BeanWithSpecialCharacters().init(), - "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>", - "<table>\n\t<tr>\n\t\t<td>a</td>\n\t\t<td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td>\n\t</tr>\n</table>\n", - "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>" - ) - { - @Override - public void verify(BeanWithSpecialCharacters o) { - assertType(BeanWithSpecialCharacters.class, o); - } - } - }, - { /* 29 */ - new Input<BeanWithSpecialCharacters>( - "BeanWithSpecialCharacters-2", - BeanWithSpecialCharacters.class, - new BeanWithSpecialCharacters().init(), - "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>", - - "<table>\n" - +" <tr>\n" - +" <td>a</td>\n" - +" <td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td>\n" - +" </tr>\n" - +"</table>\n", - - "<table><tr><td>a</td><td><sp> </sp> <bs/><ff/><br/><sp> </sp> <sp> </sp></td></tr></table>" - ) - { - @Override - public void verify(BeanWithSpecialCharacters o) { - assertType(BeanWithSpecialCharacters.class, o); - } - } - }, - { /* 30 */ - new Input<BeanWithNullProperties>( - "BeanWithNullProperties", - BeanWithNullProperties.class, - new BeanWithNullProperties(), - "<table></table>", - "<table>\n</table>\n", - "<table></table>" - ) - { - @Override - public void verify(BeanWithNullProperties o) { - assertType(BeanWithNullProperties.class, o); - } - } - }, - { /* 31 */ - new Input<BeanWithAbstractFields>( - "BeanWithAbstractFields", - BeanWithAbstractFields.class, - new BeanWithAbstractFields().init(), - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>ia</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>aa</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>o</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>ia</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='A'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>aa</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='A'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>o</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='A'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>ia</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>aa</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>o</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithAbstractFields o) { - assertType(A.class, o.a); - assertType(A.class, o.ia); - assertType(A.class, o.aa); - assertType(A.class, o.o); - } - } - }, - { /* 32 */ - new Input<BeanWithAbstractArrayFields>( - "BeanWithAbstractArrayFields", - BeanWithAbstractArrayFields.class, - new BeanWithAbstractArrayFields().init(), - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>ia1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>ia2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>aa1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>aa2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>o1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>o2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>ia1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='A'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>ia2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='A'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>aa1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='A'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>aa2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='A'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>o1</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='A'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>o2</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table _type='array'>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<th>a</th>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t\t<tr _type='A'>\n" - +"\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>ia1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>ia2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>aa1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>aa2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>o1</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>o2</td>" - +"<td>" - +"<table _type='array'>" - +"<tr>" - +"<th>a</th>" - +"</tr>" - +"<tr _type='A'>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithAbstractArrayFields o) { - assertType(A.class, o.a[0]); - assertType(A.class, o.ia1[0]); - assertType(A.class, o.ia2[0]); - assertType(A.class, o.aa1[0]); - assertType(A.class, o.aa2[0]); - assertType(A.class, o.o1[0]); - assertType(A.class, o.o2[0]); - } - } - }, - { /* 33 */ - new Input<BeanWithAbstractMapFields>( - "BeanWithAbstractMapFields", - BeanWithAbstractMapFields.class, - new BeanWithAbstractMapFields().init(), - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k2</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k3</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>", - - "<table>\n" - +"\t<tr>\n" - +"\t\t<td>a</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k1</td>\n" - +"\t\t\t\t\t<td>\n" - +"\t\t\t\t\t\t<table>\n" - +"\t\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t</table>\n" - +"\t\t\t\t\t</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>b</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k2</td>\n" - +"\t\t\t\t\t<td>\n" - +"\t\t\t\t\t\t<table _type='A'>\n" - +"\t\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t</table>\n" - +"\t\t\t\t\t</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"\t<tr>\n" - +"\t\t<td>c</td>\n" - +"\t\t<td>\n" - +"\t\t\t<table>\n" - +"\t\t\t\t<tr>\n" - +"\t\t\t\t\t<td>k3</td>\n" - +"\t\t\t\t\t<td>\n" - +"\t\t\t\t\t\t<table _type='A'>\n" - +"\t\t\t\t\t\t\t<tr>\n" - +"\t\t\t\t\t\t\t\t<td>a</td>\n" - +"\t\t\t\t\t\t\t\t<td>foo</td>\n" - +"\t\t\t\t\t\t\t</tr>\n" - +"\t\t\t\t\t\t</table>\n" - +"\t\t\t\t\t</td>\n" - +"\t\t\t\t</tr>\n" - +"\t\t\t</table>\n" - +"\t\t</td>\n" - +"\t</tr>\n" - +"</table>\n", - - "<table>" - +"<tr>" - +"<td>a</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k1</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>b</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k2</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"<tr>" - +"<td>c</td>" - +"<td>" - +"<table>" - +"<tr>" - +"<td>k3</td>" - +"<td>" - +"<table _type='A'>" - +"<tr>" - +"<td>a</td>" - +"<td>foo</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - +"</td>" - +"</tr>" - +"</table>" - ) - { - @Override - public void verify(BeanWithAbstractMapFields o) { - assertType(A.class, o.a.get("k1")); - assertType(A.class, o.b.get("k2")); - assertType(A.class, o.c.get("k3")); - } - } - }, - { /* 34 */ - new Input<BeanWithWhitespaceTextFields>( - "BeanWithWhitespaceTextFields-1", - BeanWithWhitespaceTextFields.class, - new BeanWithWhitespaceTextFields().init(null), - "<object></object>", - "<object></object>\n", - "<object></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextFields o) { - assertType(BeanWithWhitespaceTextFields.class, o); - } - } - }, - { /* 35 */ - new Input<BeanWithWhitespaceTextFields>( - "BeanWithWhitespaceTextFields-2", - BeanWithWhitespaceTextFields.class, - new BeanWithWhitespaceTextFields().init(""), - "<object><sp/></object>", - "<object><sp/></object>\n", - "<object><sp/></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextFields o) { - assertType(BeanWithWhitespaceTextFields.class, o); - } - } - }, - { /* 36 */ - new Input<BeanWithWhitespaceTextFields>( - "BeanWithWhitespaceTextFields-3", - BeanWithWhitespaceTextFields.class, - new BeanWithWhitespaceTextFields().init(" "), - "<object><sp> </sp></object>", - "<object><sp> </sp></object>\n", - "<object><sp> </sp></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextFields o) { - assertType(BeanWithWhitespaceTextFields.class, o); - } - } - }, - { /* 37 */ - new Input<BeanWithWhitespaceTextFields>( - "BeanWithWhitespaceTextFields-4", - BeanWithWhitespaceTextFields.class, - new BeanWithWhitespaceTextFields().init(" "), - "<object><sp> </sp><sp> </sp></object>", - "<object><sp> </sp><sp> </sp></object>\n", - "<object><sp> </sp><sp> </sp></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextFields o) { - assertType(BeanWithWhitespaceTextFields.class, o); - } - } - }, - { /* 38 */ - new Input<BeanWithWhitespaceTextFields>( - "BeanWithWhitespaceTextFields-5", - BeanWithWhitespaceTextFields.class, - new BeanWithWhitespaceTextFields().init(" foobar "), - "<object><sp> </sp> foobar <sp> </sp></object>", - "<object><sp> </sp> foobar <sp> </sp></object>\n", - "<object><sp> </sp> foobar <sp> </sp></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextFields o) { - assertType(BeanWithWhitespaceTextFields.class, o); - } - } - }, - { /* 39 */ - new Input<BeanWithWhitespaceTextPwsFields>( - "BeanWithWhitespaceTextPwsFields-1", - BeanWithWhitespaceTextPwsFields.class, - new BeanWithWhitespaceTextPwsFields().init(null), - "<object></object>", - "<object></object>\n", - "<object></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextPwsFields o) { - assertType(BeanWithWhitespaceTextPwsFields.class, o); - } - } - }, - { /* 40 */ - new Input<BeanWithWhitespaceTextPwsFields>( - "BeanWithWhitespaceTextPwsFields-2", - BeanWithWhitespaceTextPwsFields.class, - new BeanWithWhitespaceTextPwsFields().init(""), - "<object><sp/></object>", - "<object><sp/></object>\n", - "<object><sp/></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextPwsFields o) { - assertType(BeanWithWhitespaceTextPwsFields.class, o); - } - } - }, - { /* 41 */ - new Input<BeanWithWhitespaceTextPwsFields>( - "BeanWithWhitespaceTextPwsFields-3", - BeanWithWhitespaceTextPwsFields.class, - new BeanWithWhitespaceTextPwsFields().init(" "), - "<object> </object>", - "<object> </object>\n", - "<object> </object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextPwsFields o) { - assertType(BeanWithWhitespaceTextPwsFields.class, o); - } - } - }, - { /* 42 */ - new Input<BeanWithWhitespaceTextPwsFields>( - "BeanWithWhitespaceTextPwsFields-4", - BeanWithWhitespaceTextPwsFields.class, - new BeanWithWhitespaceTextPwsFields().init(" "), - "<object> </object>", - "<object> </object>\n", - "<object> </object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextPwsFields o) { - assertType(BeanWithWhitespaceTextPwsFields.class, o); - } - } - }, - { /* 43 */ - new Input<BeanWithWhitespaceTextPwsFields>( - "BeanWithWhitespaceTextPwsFields-5", - BeanWithWhitespaceTextPwsFields.class, - new BeanWithWhitespaceTextPwsFields().init(" foobar "), - "<object> foobar </object>", - "<object> foobar </object>\n", - "<object> foobar </object>" - ) - { - @Override - public void verify(BeanWithWhitespaceTextPwsFields o) { - assertType(BeanWithWhitespaceTextPwsFields.class, o); - } - } - }, - { /* 44 */ - new Input<BeanWithWhitespaceMixedFields>( - "BeanWithWhitespaceMixedFields-1", - BeanWithWhitespaceMixedFields.class, - new BeanWithWhitespaceMixedFields().init(null), - "<object></object>", - "<object></object>\n", - "<object></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedFields o) { - assertType(BeanWithWhitespaceMixedFields.class, o); - } - } - }, - { /* 45 */ - new Input<BeanWithWhitespaceMixedFields>( - "BeanWithWhitespaceMixedFields-2", - BeanWithWhitespaceMixedFields.class, - new BeanWithWhitespaceMixedFields().init(new String[0]), - "<object></object>", - "<object></object>\n", - "<object></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedFields o) { - assertType(BeanWithWhitespaceMixedFields.class, o); - } - } - }, - { /* 46 */ - new Input<BeanWithWhitespaceMixedFields>( - "BeanWithWhitespaceMixedFields-3", - BeanWithWhitespaceMixedFields.class, - new BeanWithWhitespaceMixedFields().init(new String[]{""}), - "<object><sp/></object>", - "<object><sp/></object>\n", - "<object><sp/></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedFields o) { - assertType(BeanWithWhitespaceMixedFields.class, o); - } - } - }, - { /* 47 */ - new Input<BeanWithWhitespaceMixedFields>( - "BeanWithWhitespaceMixedFields-4", - BeanWithWhitespaceMixedFields.class, - new BeanWithWhitespaceMixedFields().init(new String[]{" "}), - "<object><sp> </sp></object>", - "<object><sp> </sp></object>\n", - "<object><sp> </sp></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedFields o) { - assertType(BeanWithWhitespaceMixedFields.class, o); - } - } - }, - { /* 48 */ - new Input<BeanWithWhitespaceMixedFields>( - "BeanWithWhitespaceMixedFields-5", - BeanWithWhitespaceMixedFields.class, - new BeanWithWhitespaceMixedFields().init(new String[]{" "}), - "<object><sp> </sp><sp> </sp></object>", - "<object><sp> </sp><sp> </sp></object>\n", - "<object><sp> </sp><sp> </sp></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedFields o) { - assertType(BeanWithWhitespaceMixedFields.class, o); - } - } - }, - { /* 49 */ - new Input<BeanWithWhitespaceMixedFields>( - "BeanWithWhitespaceMixedFields-6", - BeanWithWhitespaceMixedFields.class, - new BeanWithWhitespaceMixedFields().init(new String[]{" foobar "}), - "<object><sp> </sp> foobar <sp> </sp></object>", - "<object><sp> </sp> foobar <sp> </sp></object>\n", - "<object><sp> </sp> foobar <sp> </sp></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedFields o) { - assertType(BeanWithWhitespaceMixedFields.class, o); - } - } - }, - { /* 50 */ - new Input<BeanWithWhitespaceMixedPwsFields>( - "BeanWithWhitespaceMixedPwsFields-1", - BeanWithWhitespaceMixedPwsFields.class, - new BeanWithWhitespaceMixedPwsFields().init(null), - "<object></object>", - "<object></object>\n", - "<object></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedPwsFields o) { - assertType(BeanWithWhitespaceMixedPwsFields.class, o); - } - } - }, - { /* 51 */ - new Input<BeanWithWhitespaceMixedPwsFields>( - "BeanWithWhitespaceMixedPwsFields-2", - BeanWithWhitespaceMixedPwsFields.class, - new BeanWithWhitespaceMixedPwsFields().init(new String[0]), - "<object></object>", - "<object></object>\n", - "<object></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedPwsFields o) { - assertType(BeanWithWhitespaceMixedPwsFields.class, o); - } - } - }, - { /* 52 */ - new Input<BeanWithWhitespaceMixedPwsFields>( - "BeanWithWhitespaceMixedPwsFields-3", - BeanWithWhitespaceMixedPwsFields.class, - new BeanWithWhitespaceMixedPwsFields().init(new String[]{""}), - "<object><sp/></object>", - "<object><sp/></object>\n", - "<object><sp/></object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedPwsFields o) { - assertType(BeanWithWhitespaceMixedPwsFields.class, o); - } - } - }, - { /* 53 */ - new Input<BeanWithWhitespaceMixedPwsFields>( - "BeanWithWhitespaceMixedPwsFields-4", - BeanWithWhitespaceMixedPwsFields.class, - new BeanWithWhitespaceMixedPwsFields().init(new String[]{" "}), - "<object> </object>", - "<object> </object>\n", - "<object> </object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedPwsFields o) { - assertType(BeanWithWhitespaceMixedPwsFields.class, o); - } - } - }, - { /* 54 */ - new Input<BeanWithWhitespaceMixedPwsFields>( - "BeanWithWhitespaceMixedPwsFields-5", - BeanWithWhitespaceMixedPwsFields.class, - new BeanWithWhitespaceMixedPwsFields().init(new String[]{" "}), - "<object> </object>", - "<object> </object>\n", - "<object> </object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedPwsFields o) { - assertType(BeanWithWhitespaceMixedPwsFields.class, o); - } - } - }, - { /* 55 */ - new Input<BeanWithWhitespaceMixedPwsFields>( - "BeanWithWhitespaceMixedPwsFields-6", - BeanWithWhitespaceMixedPwsFields.class, - new BeanWithWhitespaceMixedPwsFields().init(new String[]{" foobar "}), - "<object> foobar </object>", - "<object> foobar </object>\n", - "<object> foobar </object>" - ) - { - @Override - public void verify(BeanWithWhitespaceMixedPwsFields o) { - assertType(BeanWithWhitespaceMixedPwsFields.class, o); - } - } - }, - }); - } - - private Input input; - - public BasicHtmlTest(Input input) throws Exception { - this.input = input; - } - - public static class Input<T> { - private final String label, e1, e2, e3; - private final Type type; - private final Object in; - - public Input(String label, Type type, T in, String e1, String e2, String e3) { - this.label = label; - this.type = type; - this.in = in; - this.e1 = e1; - this.e2 = e2; - this.e3 = e3; - } - - public void verify(T o) {} - } - - @Test - public void a1_serializeNormal() { - try { - String r = s1.serialize(input.in); - assertEquals(input.label + " serialize-normal failed", input.e1, r); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void a2_parseNormal() { - try { - String r = s1.serialize(input.in); - Object o = parser.parse(r, input.type); - r = s1.serialize(o); - assertEquals(input.label + " parse-normal failed", input.e1, r); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void a3_verifyNormal() { - try { - String r = s1.serialize(input.in); - Object o = parser.parse(r, input.type); - input.verify(o); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void b1_serializeReadable() { - try { - String r = s2.serialize(input.in); - assertEquals(input.label + " serialize-readable failed", input.e2, r); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void b2_parseReadable() { - try { - String r = s2.serialize(input.in); - Object o = parser.parse(r, input.type); - r = s2.serialize(o); - assertEquals(input.label + " parse-readable failed", input.e2, r); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void b3_verifyReadable() { - try { - String r = s2.serialize(input.in); - Object o = parser.parse(r, input.type); - input.verify(o); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void c1_serializeAbridged() { - try { - String r = s3.serialize(input.in); - assertEquals(input.label + " serialize-abridged failed", input.e3, r); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void c2_parseAbridged() { - try { - String r = s3.serialize(input.in); - Object o = parser.parse(r, input.type); - r = s3.serialize(o); - assertEquals(input.label + " parse-abridged failed", input.e3, r); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - @Test - public void c3_verifyAbridged() { - try { - String r = s3.serialize(input.in); - Object o = parser.parse(r, input.type); - input.verify(o); - } catch (AssertionError e) { - throw e; - } catch (Throwable e) { - throw new RuntimeException(input.label + " test failed", e); - } - } - - //-------------------------------------------------------------------------------- - // Test beans - //-------------------------------------------------------------------------------- - - public static class MapWithStrings extends LinkedHashMap<String,String> { - public MapWithStrings append(String key, String value) { - put(key, value); - return this; - } - } - - public static class MapWithNumbers extends LinkedHashMap<String,Number> { - public MapWithNumbers append(String key, Number value) { - put(key, value); - return this; - } - } - - public static class MapWithObjects extends LinkedHashMap<String,Object> { - public MapWithObjects append(String key, Object value) { - put(key, value); - return this; - } - } - - public static class ListWithStrings extends ArrayList<String> { - public ListWithStrings append(String value) { - this.add(value); - return this; - } - } - - public static class ListWithNumbers extends ArrayList<Number> { - public ListWithNumbers append(Number value) { - this.add(value); - return this; - } - } - - public static class ListWithObjects extends ArrayList<Object> { - public ListWithObjects append(Object value) { - this.add(value); - return this; - } - } - - public static class BeanWithNormalProperties { - public String a; - public int b; - public Object c; - public Object d; - public Bean1a e; - public String[] f; - public int[] g; - - BeanWithNormalProperties init() { - a = "foo"; - b = 123; - c = "bar"; - d = 456; - e = new Bean1a().init(); - f = new String[]{ "baz" }; - g = new int[]{ 789 }; - return this; - } - } - - public static class Bean1a { - public String h; - - Bean1a init() { - h = "qux"; - return this; - } - } - - public static class BeanWithMapProperties { - @BeanProperty(type=MapWithStrings.class) - public Map<String,String> a; - @BeanProperty(type=MapWithNumbers.class) - public Map<String,Number> b; - @BeanProperty(type=MapWithObjects.class) - public Map<String,Object> c; - - BeanWithMapProperties init() { - a = new MapWithStrings().append("k1","foo"); - b = new MapWithNumbers().append("k2",123); - c = new MapWithObjects().append("k3","bar").append("k4",456).append("k5",true).append("k6",null); - return this; - } - } - - @Bean(typeName="X") - public static class BeanWithTypeName { - public int a; - public String b; - - BeanWithTypeName init() { - a = 123; - b = "foo"; - return this; - } - } - - @Bean(beanDictionary={B.class}) - public static class BeanWithPropertiesWithTypeNames { - public B b1; - public Object b2; - - BeanWithPropertiesWithTypeNames init() { - b1 = new B().init(); - b2 = new B().init(); - return this; - } - } - - @Bean(beanDictionary={B.class}) - public static class BeanWithPropertiesWithArrayTypeNames { - public B[] b1; - public Object[] b2; - public Object[] b3; - - BeanWithPropertiesWithArrayTypeNames init() { - b1 = new B[]{new B().init()}; - b2 = new B[]{new B().init()}; - b3 = new Object[]{new B().init()}; - return this; - } - } - - @Bean(beanDictionary={B.class}) - public static class BeanWithPropertiesWith2dArrayTypeNames { - public B[][] b1; - public Object[][] b2; - public Object[][] b3; - - BeanWithPropertiesWith2dArrayTypeNames init() { - b1 = new B[][]{{new B().init()}}; - b2 = new B[][]{{new B().init()}}; - b3 = new Object[][]{{new B().init()}}; - return this; - } - } - - @Bean(beanDictionary={B.class}) - public static class BeanWithPropertiesWithMapTypeNames { - public Map<String,B> b1; - public Map<String,Object> b2; - - BeanWithPropertiesWithMapTypeNames init() { - b1 = new HashMap<String,B>(); - b1.put("k1", new B().init()); - b2 = new HashMap<String,Object>(); - b2.put("k2", new B().init()); - return this; - } - } - - @Bean(typeName="B") - public static class B { - public String b; - - B init() { - b = "foo"; - return this; - } - } - - @HtmlLink(nameProperty="a",hrefProperty="b") - public static class LinkBean { - public String a; - public String b; - - LinkBean init() { - a = "foo"; - b = "http://apache.org"; - return this; - } - } - - public static class ListWithLinkBeans extends ArrayList<LinkBean> { - public ListWithLinkBeans append(LinkBean value) { - this.add(value); - return this; - } - } - - public static class BeanWithLinkBeanProperties { - public LinkBean a; - public List<LinkBean> b; - public Map<String,LinkBean> c; - - BeanWithLinkBeanProperties init() { - a = new LinkBean().init(); - b = new ListWithLinkBeans().append(new LinkBean().init()); - c = new LinkedHashMap<String,LinkBean>(); - c.put("c1", new LinkBean().init()); - return this; - } - } - - public static class BeanWithSpecialCharacters { - public String a; - - BeanWithSpecialCharacters init() { - a = " \b\f\n\t\r "; - return this; - } - } - - @Bean(typeName=" \b\f\n\t\r ") - public static class BeanWithSpecialCharacters2 { - - @BeanProperty(name=" \b\f\n\t\r ") - public String a; - - BeanWithSpecialCharacters2 init() { - a = " \b\f\n\t\r "; - return this; - } - } - - public static class BeanWithNullProperties { - public String a; - public String[] b; - } - - @Bean(beanDictionary={A.class}) - public static class BeanWithAbstractFields { - public A a; - public IA ia; - public AA aa; - public Object o; - - BeanWithAbstractFields init() { - ia = new A().init(); - aa = new A().init(); - a = new A().init(); - o = new A().init(); - return this; - } - } - - @Bean(beanDictionary={A.class}) - public static class BeanWithAbstractArrayFields { - public A[] a; - public IA[] ia1, ia2; - public AA[] aa1, aa2; - public Object[] o1, o2; - - BeanWithAbstractArrayFields init() { - a = new A[]{new A().init()}; - ia1 = new A[]{new A().init()}; - aa1 = new A[]{new A().init()}; - o1 = new A[]{new A().init()}; - ia2 = new IA[]{new A().init()}; - aa2 = new AA[]{new A().init()}; - o2 = new Object[]{new A().init()}; - return this; - } - } - - @Bean(beanDictionary={A.class}) - public static class BeanWithAbstractMapFields { - public Map<String,A> a; - public Map<String,AA> b; - public Map<String,Object> c; - - BeanWithAbstractMapFields init() { - a = new HashMap<String,A>(); - b = new HashMap<String,AA>(); - c = new HashMap<String,Object>(); - a.put("k1", new A().init()); - b.put("k2", new A().init()); - c.put("k3", new A().init()); - return this; - } - } - - public static interface IA { - public String getA(); - public void setA(String a); - } - - public static abstract class AA implements IA {} - - @Bean(typeName="A") - public static class A extends AA { - private String a; - - @Override - public String getA() { - return a; - } - - @Override - public void setA(String a) { - this.a = a; - } - - A init() { - this.a = "foo"; - return this; - } - } - - @Html(asXml=true) - public static class BeanWithWhitespaceTextFields { - @Xml(format=XmlFormat.TEXT) - public String a; - - public BeanWithWhitespaceTextFields init(String s) { - a = s; - return this; - } - } - - @Html(asXml=true) - public static class BeanWithWhitespaceTextPwsFields { - @Xml(format=XmlFormat.TEXT_PWS) - public String a; - - public BeanWithWhitespaceTextPwsFields init(String s) { - a = s; - return this; - } - } - - @Html(asXml=true) - public static class BeanWithWhitespaceMixedFields { - @Xml(format=XmlFormat.MIXED) - public String[] a; - - public BeanWithWhitespaceMixedFields init(String[] s) { - a = s; - return this; - } - } - - @Html(asXml=true) - public static class BeanWithWhitespaceMixedPwsFields { - @Xml(format=XmlFormat.MIXED_PWS) - public String[] a; - - public BeanWithWhitespaceMixedPwsFields init(String[] s) { - a = s; - return this; - } - } -}
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ab15d45b/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java ---------------------------------------------------------------------- diff --git a/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java b/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java deleted file mode 100755 index ac87876..0000000 --- a/juneau-core-test/src/test/java/org/apache/juneau/html/CommonParserTest.java +++ /dev/null @@ -1,161 +0,0 @@ -// *************************************************************************************************************************** -// * 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.juneau.html; - -import static org.junit.Assert.*; - -import java.util.*; - -import org.apache.juneau.*; -import org.apache.juneau.annotation.*; -import org.apache.juneau.parser.*; -import org.junit.*; - -@SuppressWarnings({"rawtypes","serial","javadoc"}) -public class CommonParserTest { - - //==================================================================================================== - // testFromSerializer - //==================================================================================================== - @Test - public void testFromSerializer() throws Exception { - ReaderParser p = new HtmlParserBuilder().beanDictionary(A1.class).build(); - Map m = null; - String in; - - in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr></table>"; - m = (Map)p.parse(in, Object.class); - assertEquals(1, m.get("a")); - - in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><string>foo bar</string></td></tr></table>"; - m = (Map)p.parse(in, Object.class); - assertEquals(1, m.get("a")); - assertEquals("foo bar", m.get("b")); - - in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><string>foo bar</string></td></tr><tr><td><string>c</string></td><td><boolean>false</boolean></td></tr></table>"; - m = (Map)p.parse(in, Object.class); - assertEquals(1, m.get("a")); - assertEquals(false, m.get("c")); - - in = " <table _type='object'> <tr> <th> <string> key </string> </th> <th> <string> value </string> </th> </tr> <tr> <td> <string> a </string> </td> <td> <number> 1 </number> </td> </tr> <tr> <td> <string> b </string> </td> <td> <string> foo </string> </td> </tr> <tr> <td> <string> c </string> </td> <td> <boolean> false </boolean> </td> </tr> </table> "; - m = (Map)p.parse(in, Object.class); - assertEquals(1, m.get("a")); - assertEquals("foo", m.get("b")); - assertEquals(false, m.get("c")); - - in = "<table _type='array'><tr><th>attribute</th></tr><tr><td><string>value</string></td></tr><tr><td><string>value</string></td></tr></table>"; - ObjectList jl = (ObjectList)p.parse(in, Object.class); - assertEquals("value", jl.getObjectMap(0).getString("attribute")); - assertEquals("value", jl.getObjectMap(1).getString("attribute")); - - A1 t1 = new A1(); - A2 t2 = new A2(); - t2.add(new A3("name0","value0")); - t2.add(new A3("name1","value1")); - t1.list = t2; - in = new HtmlSerializerBuilder().addBeanTypeProperties(true).build().serialize(t1); - t1 = (A1)p.parse(in, Object.class); - assertEquals("value1", t1.list.get(1).value); - - in = HtmlSerializer.DEFAULT.serialize(t1); - t1 = p.parse(in, A1.class); - assertEquals("value1", t1.list.get(1).value); - } - - @Bean(typeName="A1") - public static class A1 { - public A2 list; - } - - public static class A2 extends LinkedList<A3> { - } - - public static class A3 { - public String name, value; - public A3(){} - public A3(String name, String value) { - this.name = name; - this.value = value; - } - } - - //==================================================================================================== - // Correct handling of unknown properties. - //==================================================================================================== - @Test - public void testCorrectHandlingOfUnknownProperties() throws Exception { - ReaderParser p = new HtmlParserBuilder().ignoreUnknownBeanProperties(true).build(); - B t; - - String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><number>1</number></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>"; - t = p.parse(in, B.class); - assertEquals(t.a, 1); - assertEquals(t.b, 2); - - try { - p = HtmlParser.DEFAULT; - p.parse(in, B.class); - fail("Exception expected"); - } catch (ParseException e) {} - } - - public static class B { - public int a, b; - } - - //==================================================================================================== - // Writing to Collection properties with no setters. - //==================================================================================================== - @Test - public void testCollectionPropertiesWithNoSetters() throws Exception { - ReaderParser p = HtmlParser.DEFAULT; - - String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>ints</string></td><td><ul><li><number>1</number></li><li><number>2</number></li><li><number>3</number></li></ul></td></tr><tr><td><string>beans</string></td><td><table _type='array'><tr><th>a</th><th>b</th></tr><tr><td><number>1</number></td><td><number>2</number></td></tr></table></td></tr></table>"; - C t = p.parse(in, C.class); - assertEquals(t.getInts().size(), 3); - assertEquals(t.getBeans().get(0).b, 2); - } - - public static class C { - private Collection<Integer> ints = new LinkedList<Integer>(); - private List<B> beans = new LinkedList<B>(); - public Collection<Integer> getInts() { - return ints; - } - public List<B> getBeans() { - return beans; - } - } - - //==================================================================================================== - // Parser listeners. - //==================================================================================================== - @Test - public void testParserListeners() throws Exception { - HtmlParser p = new HtmlParserBuilder().ignoreUnknownBeanProperties(true).listener(MyParserListener.class).build(); - - String in = "<table _type='object'><tr><th><string>key</string></th><th><string>value</string></th></tr><tr><td><string>a</string></td><td><number>1</number></td></tr><tr><td><string>unknown</string></td><td><string>/foo</string></td></tr><tr><td><string>b</string></td><td><number>2</number></td></tr></table>"; - p.parse(in, B.class); - assertEquals(1, MyParserListener.events.size()); - assertEquals("unknown,-1,-1", MyParserListener.events.get(0)); - } - - public static class MyParserListener extends ParserListener { - final static List<String> events = new LinkedList<String>(); - - @Override /* ParserListener */ - public <T> void onUnknownBeanProperty(ParserSession session, ParserPipe pipe, String propertyName, Class<T> beanClass, T bean, int line, int col) { - events.add(propertyName + "," + line + "," + col); - } - } -}
