http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/75b0d8ee/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java new file mode 100755 index 0000000..1e25392 --- /dev/null +++ b/juneau-core/juneau-core-test/src/test/java/org/apache/juneau/dto/html5/Html5ComboTest.java @@ -0,0 +1,2773 @@ +// *************************************************************************************************************************** +// * 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.dto.html5; + +import static org.apache.juneau.TestUtils.*; +import static org.apache.juneau.dto.html5.HtmlBuilder.*; + +import java.util.*; + +import org.apache.juneau.*; +import org.junit.runner.*; +import org.junit.runners.*; + +/** + * Exhaustive serialization tests for all the HTML5 DTOs. + */ +@RunWith(Parameterized.class) +@SuppressWarnings({"javadoc"}) +public class Html5ComboTest extends ComboRoundTripTest { + + private static final B btag = b("bbb"); + + @Parameterized.Parameters + public static Collection<Object[]> getParameters() { + return Arrays.asList(new Object[][] { + { /* 0 */ + new ComboInput<A>( + "A-1", + A.class, + a("http://foo", "bar"), + /* Json */ "{_type:'a',a:{href:'http://foo'},c:['bar']}", + /* JsonT */ "{t:'a',a:{href:'http://foo'},c:['bar']}", + /* JsonR */ "{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t'bar'\n\t]\n}", + /* Xml */ "<a href='http://foo'>bar</a>", + /* XmlT */ "<a href='http://foo'>bar</a>", + /* XmlR */ "<a href='http://foo'>bar</a>\n", + /* XmlNs */ "<a href='http://foo'>bar</a>", + /* Html */ "<a href='http://foo'>bar</a>", + /* HtmlT */ "<a href='http://foo'>bar</a>", + /* HtmlR */ "<a href='http://foo'>bar</a>\n", + /* Uon */ "(_type=a,a=(href=http://foo),c=@(bar))", + /* UonT */ "(t=a,a=(href=http://foo),c=@(bar))", + /* UonR */ "(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\tbar\n\t)\n)", + /* UrlEnc */ "_type=a&a=(href=http://foo)&c=@(bar)", + /* UrlEncT */ "t=a&a=(href=http://foo)&c=@(bar)", + /* UrlEncR */ "_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\tbar\n)", + /* MsgPack */ "83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A3626172", + /* MsgPackT */ "83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A3626172", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href rdf:resource='http://foo'/>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(A o) { + assertType(A.class, o); + } + } + }, + { /* 1 */ + new ComboInput<A>( + "A-2", + A.class, + a("http://foo", "bar", btag, "baz"), + /* Json */ "{_type:'a',a:{href:'http://foo'},c:['bar',{_type:'b',c:['bbb']},'baz']}", + /* JsonT */ "{t:'a',a:{href:'http://foo'},c:['bar',{t:'b',c:['bbb']},'baz']}", + /* JsonR */ "{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t'bar',\n\t\t{\n\t\t\t_type: 'b',\n\t\t\tc: [\n\t\t\t\t'bbb'\n\t\t\t]\n\t\t},\n\t\t'baz'\n\t]\n}", + /* Xml */ "<a href='http://foo'>bar<b>bbb</b>baz</a>", + /* XmlT */ "<a href='http://foo'>bar<b>bbb</b>baz</a>", + /* XmlR */ "<a href='http://foo'>bar<b>bbb</b>baz</a>\n", + /* XmlNs */ "<a href='http://foo'>bar<b>bbb</b>baz</a>", + /* Html */ "<a href='http://foo'>bar<b>bbb</b>baz</a>", + /* HtmlT */ "<a href='http://foo'>bar<b>bbb</b>baz</a>", + /* HtmlR */ "<a href='http://foo'>bar<b>bbb</b>baz</a>\n", + /* Uon */ "(_type=a,a=(href=http://foo),c=@(bar,(_type=b,c=@(bbb)),baz))", + /* UonT */ "(t=a,a=(href=http://foo),c=@(bar,(t=b,c=@(bbb)),baz))", + /* UonR */ "(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\tbar,\n\t\t(\n\t\t\t_type=b,\n\t\t\tc=@(\n\t\t\t\tbbb\n\t\t\t)\n\t\t),\n\t\tbaz\n\t)\n)", + /* UrlEnc */ "_type=a&a=(href=http://foo)&c=@(bar,(_type=b,c=@(bbb)),baz)", + /* UrlEncT */ "t=a&a=(href=http://foo)&c=@(bar,(t=b,c=@(bbb)),baz)", + /* UrlEncR */ "_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\tbar,\n\t(\n\t\t_type=b,\n\t\tc=@(\n\t\t\tbbb\n\t\t)\n\t),\n\tbaz\n)", + /* MsgPack */ "83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16393A362617282A55F74797065A162A16391A3626262A362617A", + /* MsgPackT */ "83A174A161A16181A468726566AA687474703A2F2F666F6FA16393A362617282A174A162A16391A3626262A362617A", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href rdf:resource='http://foo'/>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bar</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>b</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bbb</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>baz</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(A o) { + assertType(A.class, o); + } + } + }, + { /* 2 */ + new ComboInput<A>( + "A-3", + A.class, + a("http://foo", ""), + /* Json */ "{_type:'a',a:{href:'http://foo'},c:['']}", + /* JsonT */ "{t:'a',a:{href:'http://foo'},c:['']}", + /* JsonR */ "{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t''\n\t]\n}", + /* Xml */ "<a href='http://foo'>_xE000_</a>", + /* XmlT */ "<a href='http://foo'>_xE000_</a>", + /* XmlR */ "<a href='http://foo'>_xE000_</a>\n", + /* XmlNs */ "<a href='http://foo'>_xE000_</a>", + /* Html */ "<a href='http://foo'><sp/></a>", + /* HtmlT */ "<a href='http://foo'><sp/></a>", + /* HtmlR */ "<a href='http://foo'><sp/></a>\n", + /* Uon */ "(_type=a,a=(href=http://foo),c=@(''))", + /* UonT */ "(t=a,a=(href=http://foo),c=@(''))", + /* UonR */ "(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\t''\n\t)\n)", + /* UrlEnc */ "_type=a&a=(href=http://foo)&c=@('')", + /* UrlEncT */ "t=a&a=(href=http://foo)&c=@('')", + /* UrlEncR */ "_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\t''\n)", + /* MsgPack */ "83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A0", + /* MsgPackT */ "83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A0", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href rdf:resource='http://foo'/>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li></rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(A o) { + assertType(A.class, o); + } + } + }, + { /* 3 */ + new ComboInput<A>( + "A-4", + A.class, + a("http://foo", " "), + /* Json */ "{_type:'a',a:{href:'http://foo'},c:[' ']}", + /* JsonT */ "{t:'a',a:{href:'http://foo'},c:[' ']}", + /* JsonR */ "{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t},\n\tc: [\n\t\t' '\n\t]\n}", + /* Xml */ "<a href='http://foo'>_x0020_</a>", + /* XmlT */ "<a href='http://foo'>_x0020_</a>", + /* XmlR */ "<a href='http://foo'>_x0020_</a>\n", + /* XmlNs */ "<a href='http://foo'>_x0020_</a>", + /* Html */ "<a href='http://foo'><sp> </sp></a>", + /* HtmlT */ "<a href='http://foo'><sp> </sp></a>", + /* HtmlR */ "<a href='http://foo'><sp> </sp></a>\n", + /* Uon */ "(_type=a,a=(href=http://foo),c=@(' '))", + /* UonT */ "(t=a,a=(href=http://foo),c=@(' '))", + /* UonR */ "(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t),\n\tc=@(\n\t\t' '\n\t)\n)", + /* UrlEnc */ "_type=a&a=(href=http://foo)&c=@('+')", + /* UrlEncT */ "t=a&a=(href=http://foo)&c=@('+')", + /* UrlEncR */ "_type=a\n&a=(\n\thref=http://foo\n)\n&c=@(\n\t'+'\n)", + /* MsgPack */ "83A55F74797065A161A16181A468726566AA687474703A2F2F666F6FA16391A120", + /* MsgPackT */ "83A174A161A16181A468726566AA687474703A2F2F666F6FA16391A120", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>_x0020_</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>_x0020_</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href rdf:resource='http://foo'/>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>_x0020_</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(A o) { + assertType(A.class, o); + } + } + }, + { /* 4 */ + new ComboInput<A>( + "A-5", + A.class, + a("http://foo"), + /* Json */ "{_type:'a',a:{href:'http://foo'}}", + /* JsonT */ "{t:'a',a:{href:'http://foo'}}", + /* JsonR */ "{\n\t_type: 'a',\n\ta: {\n\t\thref: 'http://foo'\n\t}\n}", + /* Xml */ "<a href='http://foo'/>", + /* XmlT */ "<a href='http://foo'/>", + /* XmlR */ "<a href='http://foo'/>\n", + /* XmlNs */ "<a href='http://foo'/>", + /* Html */ "<a href='http://foo'></a>", + /* HtmlT */ "<a href='http://foo'></a>", + /* HtmlR */ "<a href='http://foo'></a>\n", + /* Uon */ "(_type=a,a=(href=http://foo))", + /* UonT */ "(t=a,a=(href=http://foo))", + /* UonR */ "(\n\t_type=a,\n\ta=(\n\t\thref=http://foo\n\t)\n)", + /* UrlEnc */ "_type=a&a=(href=http://foo)", + /* UrlEncT */ "t=a&a=(href=http://foo)", + /* UrlEncR */ "_type=a\n&a=(\n\thref=http://foo\n)", + /* MsgPack */ "82A55F74797065A161A16181A468726566AA687474703A2F2F666F6F", + /* MsgPackT */ "82A174A161A16181A468726566AA687474703A2F2F666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href rdf:resource='http://foo'/>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href rdf:resource='http://foo'/>\n </jp:a>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(A o) { + assertType(A.class, o); + } + } + }, + { /* 5 */ + new ComboInput<Abbr>( + "Abbr-1", + Abbr.class, + abbr().children("foo"), + /* Json */ "{_type:'abbr',c:['foo']}", + /* JsonT */ "{t:'abbr',c:['foo']}", + /* JsonR */ "{\n\t_type: 'abbr',\n\tc: [\n\t\t'foo'\n\t]\n}", + /* Xml */ "<abbr>foo</abbr>", + /* XmlT */ "<abbr>foo</abbr>", + /* XmlR */ "<abbr>foo</abbr>\n", + /* XmlNs */ "<abbr>foo</abbr>", + /* Html */ "<abbr>foo</abbr>", + /* HtmlT */ "<abbr>foo</abbr>", + /* HtmlR */ "<abbr>foo</abbr>\n", + /* Uon */ "(_type=abbr,c=@(foo))", + /* UonT */ "(t=abbr,c=@(foo))", + /* UonR */ "(\n\t_type=abbr,\n\tc=@(\n\t\tfoo\n\t)\n)", + /* UrlEnc */ "_type=abbr&c=@(foo)", + /* UrlEncT */ "t=abbr&c=@(foo)", + /* UrlEncR */ "_type=abbr\n&c=@(\n\tfoo\n)", + /* MsgPack */ "82A55F74797065A461626272A16391A3666F6F", + /* MsgPackT */ "82A174A461626272A16391A3666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>abbr</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>abbr</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>abbr</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Abbr o) { + assertType(Abbr.class, o); + } + } + }, + { /* 6 */ + new ComboInput<Abbr>( + "Abbr-2", + Abbr.class, + abbr("foo", "bar", btag, "baz"), + /* Json */ "{_type:'abbr',a:{title:'foo'},c:['bar',{_type:'b',c:['bbb']},'baz']}", + /* JsonT */ "{t:'abbr',a:{title:'foo'},c:['bar',{t:'b',c:['bbb']},'baz']}", + /* JsonR */ "{\n\t_type: 'abbr',\n\ta: {\n\t\ttitle: 'foo'\n\t},\n\tc: [\n\t\t'bar',\n\t\t{\n\t\t\t_type: 'b',\n\t\t\tc: [\n\t\t\t\t'bbb'\n\t\t\t]\n\t\t},\n\t\t'baz'\n\t]\n}", + /* Xml */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>", + /* XmlT */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>", + /* XmlR */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>\n", + /* XmlNs */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>", + /* Html */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>", + /* HtmlT */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>", + /* HtmlR */ "<abbr title='foo'>bar<b>bbb</b>baz</abbr>\n", + /* Uon */ "(_type=abbr,a=(title=foo),c=@(bar,(_type=b,c=@(bbb)),baz))", + /* UonT */ "(t=abbr,a=(title=foo),c=@(bar,(t=b,c=@(bbb)),baz))", + /* UonR */ "(\n\t_type=abbr,\n\ta=(\n\t\ttitle=foo\n\t),\n\tc=@(\n\t\tbar,\n\t\t(\n\t\t\t_type=b,\n\t\t\tc=@(\n\t\t\t\tbbb\n\t\t\t)\n\t\t),\n\t\tbaz\n\t)\n)", + /* UrlEnc */ "_type=abbr&a=(title=foo)&c=@(bar,(_type=b,c=@(bbb)),baz)", + /* UrlEncT */ "t=abbr&a=(title=foo)&c=@(bar,(t=b,c=@(bbb)),baz)", + /* UrlEncR */ "_type=abbr\n&a=(\n\ttitle=foo\n)\n&c=@(\n\tbar,\n\t(\n\t\t_type=b,\n\t\tc=@(\n\t\t\tbbb\n\t\t)\n\t),\n\tbaz\n)", + /* MsgPack */ "83A55F74797065A461626272A16181A57469746C65A3666F6FA16393A362617282A55F74797065A162A16391A3626262A362617A", + /* MsgPackT */ "83A174A461626272A16181A57469746C65A3666F6FA16393A362617282A174A162A16391A3626262A362617A", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>abbr</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:title>foo</jp:title>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>abbr</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:title>foo</jp:title>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>abbr</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:title>foo</jp:title>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bar</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>b</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bbb</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>baz</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Abbr o) { + assertType(Abbr.class, o); + } + } + }, + { /* 7 */ + new ComboInput<Address>( + "Address-1", + Address.class, + address(), + /* Json */ "{_type:'address'}", + /* JsonT */ "{t:'address'}", + /* JsonR */ "{\n\t_type: 'address'\n}", + /* Xml */ "<address/>", + /* XmlT */ "<address/>", + /* XmlR */ "<address/>\n", + /* XmlNs */ "<address/>", + /* Html */ "<address></address>", + /* HtmlT */ "<address></address>", + /* HtmlR */ "<address></address>\n", + /* Uon */ "(_type=address)", + /* UonT */ "(t=address)", + /* UonR */ "(\n\t_type=address\n)", + /* UrlEnc */ "_type=address", + /* UrlEncT */ "t=address", + /* UrlEncR */ "_type=address", + /* MsgPack */ "81A55F74797065A761646472657373", + /* MsgPackT */ "81A174A761646472657373", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>address</jp:_type>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>address</jp:t>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>address</jp:_type>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Address o) { + assertType(Address.class, o); + } + } + }, + { /* 8 */ + new ComboInput<Address>( + "Address-2", + Address.class, + address(""), + /* Json */ "{_type:'address',c:['']}", + /* JsonT */ "{t:'address',c:['']}", + /* JsonR */ "{\n\t_type: 'address',\n\tc: [\n\t\t''\n\t]\n}", + /* Xml */ "<address>_xE000_</address>", + /* XmlT */ "<address>_xE000_</address>", + /* XmlR */ "<address>_xE000_</address>\n", + /* XmlNs */ "<address>_xE000_</address>", + /* Html */ "<address><sp/></address>", + /* HtmlT */ "<address><sp/></address>", + /* HtmlR */ "<address><sp/></address>\n", + /* Uon */ "(_type=address,c=@(''))", + /* UonT */ "(t=address,c=@(''))", + /* UonR */ "(\n\t_type=address,\n\tc=@(\n\t\t''\n\t)\n)", + /* UrlEnc */ "_type=address&c=@('')", + /* UrlEncT */ "t=address&c=@('')", + /* UrlEncR */ "_type=address\n&c=@(\n\t''\n)", + /* MsgPack */ "82A55F74797065A761646472657373A16391A0", + /* MsgPackT */ "82A174A761646472657373A16391A0", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>address</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>address</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li></rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>address</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li></rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Address o) { + assertType(Address.class, o); + } + } + }, + { /* 9 */ + new ComboInput<Address>( + "Address-3", + Address.class, + address("foo", a("bar", "baz"), a("qux", "quux")), + /* Json */ "{_type:'address',c:['foo',{_type:'a',a:{href:'bar'},c:['baz']},{_type:'a',a:{href:'qux'},c:['quux']}]}", + /* JsonT */ "{t:'address',c:['foo',{t:'a',a:{href:'bar'},c:['baz']},{t:'a',a:{href:'qux'},c:['quux']}]}", + /* JsonR */ "{\n\t_type: 'address',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'a',\n\t\t\ta: {\n\t\t\t\thref: 'bar'\n\t\t\t},\n\t\t\tc: [\n\t\t\t\t'baz'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'a',\n\t\t\ta: {\n\t\t\t\thref: 'qux'\n\t\t\t},\n\t\t\tc: [\n\t\t\t\t'quux'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>", + /* XmlT */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>", + /* XmlR */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>\n", + /* XmlNs */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>", + /* Html */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>", + /* HtmlT */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>", + /* HtmlR */ "<address>foo<a href='bar'>baz</a><a href='qux'>quux</a></address>\n", + /* Uon */ "(_type=address,c=@(foo,(_type=a,a=(href=bar),c=@(baz)),(_type=a,a=(href=qux),c=@(quux))))", + /* UonT */ "(t=address,c=@(foo,(t=a,a=(href=bar),c=@(baz)),(t=a,a=(href=qux),c=@(quux))))", + /* UonR */ "(\n\t_type=address,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=a,\n\t\t\ta=(\n\t\t\t\thref=bar\n\t\t\t),\n\t\t\tc=@(\n\t\t\t\tbaz\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=a,\n\t\t\ta=(\n\t\t\t\thref=qux\n\t\t\t),\n\t\t\tc=@(\n\t\t\t\tquux\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=address&c=@(foo,(_type=a,a=(href=bar),c=@(baz)),(_type=a,a=(href=qux),c=@(quux)))", + /* UrlEncT */ "t=address&c=@(foo,(t=a,a=(href=bar),c=@(baz)),(t=a,a=(href=qux),c=@(quux)))", + /* UrlEncR */ "_type=address\n&c=@(\n\tfoo,\n\t(\n\t\t_type=a,\n\t\ta=(\n\t\t\thref=bar\n\t\t),\n\t\tc=@(\n\t\t\tbaz\n\t\t)\n\t),\n\t(\n\t\t_type=a,\n\t\ta=(\n\t\t\thref=qux\n\t\t),\n\t\tc=@(\n\t\t\tquux\n\t\t)\n\t)\n)", + /* MsgPack */ "82A55F74797065A761646472657373A16393A3666F6F83A55F74797065A161A16181A468726566A3626172A16391A362617A83A55F74797065A161A16181A468726566A3717578A16391A471757578", + /* MsgPackT */ "82A174A761646472657373A16393A3666F6F83A174A161A16181A468726566A3626172A16391A362617A83A174A161A16181A468726566A3717578A16391A471757578", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>address</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>bar</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>a</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:href>qux</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>quux</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>address</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>bar</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>a</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:href>qux</jp:href>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>quux</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>address</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href>bar</jp:href>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>baz</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>a</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:href>qux</jp:href>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>quux</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Address o) { + assertType(Address.class, o); + assertType(A.class, o.getChild(1)); + assertType(A.class, o.getChild(2)); + } + } + }, + { /* 10 */ + new ComboInput<Aside>( + "Aside-1", + Aside.class, + aside( + h1("header1"),p("foo") + ), + /* Json */ "{_type:'aside',c:[{_type:'h1',c:['header1']},{_type:'p',c:['foo']}]}", + /* JsonT */ "{t:'aside',c:[{t:'h1',c:['header1']},{t:'p',c:['foo']}]}", + /* JsonR */ "{\n\t_type: 'aside',\n\tc: [\n\t\t{\n\t\t\t_type: 'h1',\n\t\t\tc: [\n\t\t\t\t'header1'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'p',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<aside><h1>header1</h1><p>foo</p></aside>", + /* XmlT */ "<aside><h1>header1</h1><p>foo</p></aside>", + /* XmlR */ "<aside><h1>header1</h1><p>foo</p></aside>\n", + /* XmlNs */ "<aside><h1>header1</h1><p>foo</p></aside>", + /* Html */ "<aside><h1>header1</h1><p>foo</p></aside>", + /* HtmlT */ "<aside><h1>header1</h1><p>foo</p></aside>", + /* HtmlR */ "<aside><h1>header1</h1><p>foo</p></aside>\n", + /* Uon */ "(_type=aside,c=@((_type=h1,c=@(header1)),(_type=p,c=@(foo))))", + /* UonT */ "(t=aside,c=@((t=h1,c=@(header1)),(t=p,c=@(foo))))", + /* UonR */ "(\n\t_type=aside,\n\tc=@(\n\t\t(\n\t\t\t_type=h1,\n\t\t\tc=@(\n\t\t\t\theader1\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=p,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=aside&c=@((_type=h1,c=@(header1)),(_type=p,c=@(foo)))", + /* UrlEncT */ "t=aside&c=@((t=h1,c=@(header1)),(t=p,c=@(foo)))", + /* UrlEncR */ "_type=aside\n&c=@(\n\t(\n\t\t_type=h1,\n\t\tc=@(\n\t\t\theader1\n\t\t)\n\t),\n\t(\n\t\t_type=p,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t)\n)", + /* MsgPack */ "82A55F74797065A56173696465A1639282A55F74797065A26831A16391A76865616465723182A55F74797065A170A16391A3666F6F", + /* MsgPackT */ "82A174A56173696465A1639282A174A26831A16391A76865616465723182A174A170A16391A3666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>aside</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>h1</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>header1</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>aside</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>h1</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>header1</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>aside</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>h1</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>header1</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Aside o) { + assertType(Aside.class, o); + assertType(H1.class, o.getChild(0)); + assertType(P.class, o.getChild(1)); + } + } + }, + { /* 11 */ + new ComboInput<Audio>( + "Audio/Source-1", + Audio.class, + audio().controls(true).children( + source("foo.ogg", "audio/ogg"), + source("foo.mp3", "audio/mpeg") + ), + /* Json */ "{_type:'audio',a:{controls:true},c:[{_type:'source',a:{src:'foo.ogg',type:'audio/ogg'}},{_type:'source',a:{src:'foo.mp3',type:'audio/mpeg'}}]}", + /* JsonT */ "{t:'audio',a:{controls:true},c:[{t:'source',a:{src:'foo.ogg',type:'audio/ogg'}},{t:'source',a:{src:'foo.mp3',type:'audio/mpeg'}}]}", + /* JsonR */ "{\n\t_type: 'audio',\n\ta: {\n\t\tcontrols: true\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'source',\n\t\t\ta: {\n\t\t\t\tsrc: 'foo.ogg',\n\t\t\t\ttype: 'audio/ogg'\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'source',\n\t\t\ta: {\n\t\t\t\tsrc: 'foo.mp3',\n\t\t\t\ttype: 'audio/mpeg'\n\t\t\t}\n\t\t}\n\t]\n}", + /* Xml */ "<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>", + /* XmlT */ "<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>", + /* XmlR */ "<audio controls='true'>\n\t<source src='foo.ogg' type='audio/ogg'/>\n\t<source src='foo.mp3' type='audio/mpeg'/>\n</audio>\n", + /* XmlNs */ "<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>", + /* Html */ "<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>", + /* HtmlT */ "<audio controls='true'><source src='foo.ogg' type='audio/ogg'/><source src='foo.mp3' type='audio/mpeg'/></audio>", + /* HtmlR */ "<audio controls='true'>\n\t<source src='foo.ogg' type='audio/ogg'/>\n\t<source src='foo.mp3' type='audio/mpeg'/>\n</audio>\n", + /* Uon */ "(_type=audio,a=(controls=true),c=@((_type=source,a=(src=foo.ogg,type=audio/ogg)),(_type=source,a=(src=foo.mp3,type=audio/mpeg))))", + /* UonT */ "(t=audio,a=(controls=true),c=@((t=source,a=(src=foo.ogg,type=audio/ogg)),(t=source,a=(src=foo.mp3,type=audio/mpeg))))", + /* UonR */ "(\n\t_type=audio,\n\ta=(\n\t\tcontrols=true\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=source,\n\t\t\ta=(\n\t\t\t\tsrc=foo.ogg,\n\t\t\t\ttype=audio/ogg\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=source,\n\t\t\ta=(\n\t\t\t\tsrc=foo.mp3,\n\t\t\t\ttype=audio/mpeg\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=audio&a=(controls=true)&c=@((_type=source,a=(src=foo.ogg,type=audio/ogg)),(_type=source,a=(src=foo.mp3,type=audio/mpeg)))", + /* UrlEncT */ "t=audio&a=(controls=true)&c=@((t=source,a=(src=foo.ogg,type=audio/ogg)),(t=source,a=(src=foo.mp3,type=audio/mpeg)))", + /* UrlEncR */ "_type=audio\n&a=(\n\tcontrols=true\n)\n&c=@(\n\t(\n\t\t_type=source,\n\t\ta=(\n\t\t\tsrc=foo.ogg,\n\t\t\ttype=audio/ogg\n\t\t)\n\t),\n\t(\n\t\t_type=source,\n\t\ta=(\n\t\t\tsrc=foo.mp3,\n\t\t\ttype=audio/mpeg\n\t\t)\n\t)\n)", + /* MsgPack */ "83A55F74797065A5617564696FA16181A8636F6E74726F6C73C3A1639282A55F74797065A6736F75726365A16182A3737263A7666F6F2E6F6767A474797065A9617564696F2F6F676782A55F74797065A6736F75726365A16182A3737263A7666F6F2E6D7033A474797065AA617564696F2F6D706567", + /* MsgPackT */ "83A174A5617564696FA16181A8636F6E74726F6C73C3A1639282A174A6736F75726365A16182A3737263A7666F6F2E6F6767A474797065A9617564696F2F6F676782A174A6736F75726365A16182A3737263A7666F6F2E6D7033A474797065AA617564696F2F6D706567", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>audio</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:controls>true</jp:controls>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>source</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.ogg</jp:src>\n<jp:type>audio/ogg</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>source</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.mp3</jp:src>\n<jp:type>audio/mpeg</jp:type>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>audio</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:controls>true</jp:controls>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>source</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.ogg</jp:src>\n<jp:type>audio/ogg</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>source</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.mp3</jp:src>\n<jp:type>audio/mpeg</jp:type>\n</jp:a>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>audio</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:controls>true</jp:controls>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>source</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:src>foo.ogg</jp:src>\n <jp:type>audio/ogg</jp:type>\n </jp:a>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>source</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:src>foo.mp3</jp:src>\n <jp:type>audio/mpeg</jp:type>\n </jp:a>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Audio o) { + assertType(Audio.class, o); + assertType(Source.class, o.getChild(0)); + assertType(Source.class, o.getChild(1)); + } + } + }, + { /* 12 */ + new ComboInput<P>( + "Bdi-1", + P.class, + p("foo", bdi("إيان"), "bar"), + /* Json */ "{_type:'p',c:['foo',{_type:'bdi',c:'إيان'},'bar']}", + /* JsonT */ "{t:'p',c:['foo',{t:'bdi',c:'إيان'},'bar']}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'bdi',\n\t\t\tc: 'إيان'\n\t\t},\n\t\t'bar'\n\t]\n}", + /* Xml */ "<p>foo<bdi>إيان</bdi>bar</p>", + /* XmlT */ "<p>foo<bdi>إيان</bdi>bar</p>", + /* XmlR */ "<p>foo<bdi>إيان</bdi>bar</p>\n", + /* XmlNs */ "<p>foo<bdi>إيان</bdi>bar</p>", + /* Html */ "<p>foo<bdi>إيان</bdi>bar</p>", + /* HtmlT */ "<p>foo<bdi>إيان</bdi>bar</p>", + /* HtmlR */ "<p>foo<bdi>إيان</bdi>bar</p>\n", + /* Uon */ "(_type=p,c=@(foo,(_type=bdi,c=إيان),bar))", + /* UonT */ "(t=p,c=@(foo,(t=bdi,c=إيان),bar))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=bdi,\n\t\t\tc=إيان\n\t\t),\n\t\tbar\n\t)\n)", + /* UrlEnc */ "_type=p&c=@(foo,(_type=bdi,c=%D8%A5%D9%8A%D8%A7%D9%86),bar)", + /* UrlEncT */ "t=p&c=@(foo,(t=bdi,c=%D8%A5%D9%8A%D8%A7%D9%86),bar)", + /* UrlEncR */ "_type=p\n&c=@(\n\tfoo,\n\t(\n\t\t_type=bdi,\n\t\tc=%D8%A5%D9%8A%D8%A7%D9%86\n\t),\n\tbar\n)", + /* MsgPack */ "82A55F74797065A170A16393A3666F6F82A55F74797065A3626469A163A8D8A5D98AD8A7D986A3626172", + /* MsgPackT */ "82A174A170A16393A3666F6F82A174A3626469A163A8D8A5D98AD8A7D986A3626172", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>bdi</jp:_type>\n<jp:c>إيان</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>bdi</jp:t>\n<jp:c>إيان</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>bdi</jp:_type>\n <jp:c>إيان</jp:c>\n </rdf:li>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Bdi.class, o.getChild(1)); + } + } + }, + { /* 13 */ + new ComboInput<P>( + "Bdo-1", + P.class, + p("foo", bdo("rtl", "baz"), "bar"), + /* Json */ "{_type:'p',c:['foo',{_type:'bdo',a:{dir:'rtl'},c:['baz']},'bar']}", + /* JsonT */ "{t:'p',c:['foo',{t:'bdo',a:{dir:'rtl'},c:['baz']},'bar']}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'bdo',\n\t\t\ta: {\n\t\t\t\tdir: 'rtl'\n\t\t\t},\n\t\t\tc: [\n\t\t\t\t'baz'\n\t\t\t]\n\t\t},\n\t\t'bar'\n\t]\n}", + /* Xml */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>", + /* XmlT */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>", + /* XmlR */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>\n", + /* XmlNs */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>", + /* Html */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>", + /* HtmlT */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>", + /* HtmlR */ "<p>foo<bdo dir='rtl'>baz</bdo>bar</p>\n", + /* Uon */ "(_type=p,c=@(foo,(_type=bdo,a=(dir=rtl),c=@(baz)),bar))", + /* UonT */ "(t=p,c=@(foo,(t=bdo,a=(dir=rtl),c=@(baz)),bar))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=bdo,\n\t\t\ta=(\n\t\t\t\tdir=rtl\n\t\t\t),\n\t\t\tc=@(\n\t\t\t\tbaz\n\t\t\t)\n\t\t),\n\t\tbar\n\t)\n)", + /* UrlEnc */ "_type=p&c=@(foo,(_type=bdo,a=(dir=rtl),c=@(baz)),bar)", + /* UrlEncT */ "t=p&c=@(foo,(t=bdo,a=(dir=rtl),c=@(baz)),bar)", + /* UrlEncR */ "_type=p\n&c=@(\n\tfoo,\n\t(\n\t\t_type=bdo,\n\t\ta=(\n\t\t\tdir=rtl\n\t\t),\n\t\tc=@(\n\t\t\tbaz\n\t\t)\n\t),\n\tbar\n)", + /* MsgPack */ "82A55F74797065A170A16393A3666F6F83A55F74797065A362646FA16181A3646972A372746CA16391A362617AA3626172", + /* MsgPackT */ "82A174A170A16393A3666F6F83A174A362646FA16181A3646972A372746CA16391A362617AA3626172", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>bdo</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:dir>rtl</jp:dir>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>bdo</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:dir>rtl</jp:dir>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>bdo</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:dir>rtl</jp:dir>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>baz</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Bdo.class, o.getChild(1)); + } + } + }, + { /* 14 */ + new ComboInput<Blockquote>( + "Blockquote-1", + Blockquote.class, + blockquote("foo"), + /* Json */ "{_type:'blockquote',c:['foo']}", + /* JsonT */ "{t:'blockquote',c:['foo']}", + /* JsonR */ "{\n\t_type: 'blockquote',\n\tc: [\n\t\t'foo'\n\t]\n}", + /* Xml */ "<blockquote>foo</blockquote>", + /* XmlT */ "<blockquote>foo</blockquote>", + /* XmlR */ "<blockquote>foo</blockquote>\n", + /* XmlNs */ "<blockquote>foo</blockquote>", + /* Html */ "<blockquote>foo</blockquote>", + /* HtmlT */ "<blockquote>foo</blockquote>", + /* HtmlR */ "<blockquote>foo</blockquote>\n", + /* Uon */ "(_type=blockquote,c=@(foo))", + /* UonT */ "(t=blockquote,c=@(foo))", + /* UonR */ "(\n\t_type=blockquote,\n\tc=@(\n\t\tfoo\n\t)\n)", + /* UrlEnc */ "_type=blockquote&c=@(foo)", + /* UrlEncT */ "t=blockquote&c=@(foo)", + /* UrlEncR */ "_type=blockquote\n&c=@(\n\tfoo\n)", + /* MsgPack */ "82A55F74797065AA626C6F636B71756F7465A16391A3666F6F", + /* MsgPackT */ "82A174AA626C6F636B71756F7465A16391A3666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>blockquote</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>blockquote</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>blockquote</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Blockquote o) { + assertType(Blockquote.class, o); + } + } + }, + { /* 15 */ + new ComboInput<Br>( + "Br-1", + Br.class, + br(), + /* Json */ "{_type:'br'}", + /* JsonT */ "{t:'br'}", + /* JsonR */ "{\n\t_type: 'br'\n}", + /* Xml */ "<br/>", + /* XmlT */ "<br/>", + /* XmlR */ "<br/>\n", + /* XmlNs */ "<br/>", + /* Html */ "<br/>", + /* HtmlT */ "<br/>", + /* HtmlR */ "<br/>\n", + /* Uon */ "(_type=br)", + /* UonT */ "(t=br)", + /* UonR */ "(\n\t_type=br\n)", + /* UrlEnc */ "_type=br", + /* UrlEncT */ "t=br", + /* UrlEncR */ "_type=br", + /* MsgPack */ "81A55F74797065A26272", + /* MsgPackT */ "81A174A26272", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>br</jp:_type>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>br</jp:t>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>br</jp:_type>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Br o) { + assertType(Br.class, o); + } + } + }, + { /* 16 */ + new ComboInput<P>( + "Br-2", + P.class, + p(br()), + /* Json */ "{_type:'p',c:[{_type:'br'}]}", + /* JsonT */ "{t:'p',c:[{t:'br'}]}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'br'\n\t\t}\n\t]\n}", + /* Xml */ "<p><br/></p>", + /* XmlT */ "<p><br/></p>", + /* XmlR */ "<p><br/></p>\n", + /* XmlNs */ "<p><br/></p>", + /* Html */ "<p><br/></p>", + /* HtmlT */ "<p><br/></p>", + /* HtmlR */ "<p><br/></p>\n", + /* Uon */ "(_type=p,c=@((_type=br)))", + /* UonT */ "(t=p,c=@((t=br)))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=br\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=p&c=@((_type=br))", + /* UrlEncT */ "t=p&c=@((t=br))", + /* UrlEncR */ "_type=p\n&c=@(\n\t(\n\t\t_type=br\n\t)\n)", + /* MsgPack */ "82A55F74797065A170A1639181A55F74797065A26272", + /* MsgPackT */ "82A174A170A1639181A174A26272", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>br</jp:_type>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>br</jp:t>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>br</jp:_type>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Br.class, o.getChild(0)); + } + } + }, + { /* 17 */ + new ComboInput<Button>( + "Button-1", + Button.class, + button("button", "foo"), + /* Json */ "{_type:'button',a:{type:'button'},c:['foo']}", + /* JsonT */ "{t:'button',a:{type:'button'},c:['foo']}", + /* JsonR */ "{\n\t_type: 'button',\n\ta: {\n\t\ttype: 'button'\n\t},\n\tc: [\n\t\t'foo'\n\t]\n}", + /* Xml */ "<button type='button'>foo</button>", + /* XmlT */ "<button type='button'>foo</button>", + /* XmlR */ "<button type='button'>foo</button>\n", + /* XmlNs */ "<button type='button'>foo</button>", + /* Html */ "<button type='button'>foo</button>", + /* HtmlT */ "<button type='button'>foo</button>", + /* HtmlR */ "<button type='button'>foo</button>\n", + /* Uon */ "(_type=button,a=(type=button),c=@(foo))", + /* UonT */ "(t=button,a=(type=button),c=@(foo))", + /* UonR */ "(\n\t_type=button,\n\ta=(\n\t\ttype=button\n\t),\n\tc=@(\n\t\tfoo\n\t)\n)", + /* UrlEnc */ "_type=button&a=(type=button)&c=@(foo)", + /* UrlEncT */ "t=button&a=(type=button)&c=@(foo)", + /* UrlEncR */ "_type=button\n&a=(\n\ttype=button\n)\n&c=@(\n\tfoo\n)", + /* MsgPack */ "83A55F74797065A6627574746F6EA16181A474797065A6627574746F6EA16391A3666F6F", + /* MsgPackT */ "83A174A6627574746F6EA16181A474797065A6627574746F6EA16391A3666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>button</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>button</jp:type>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>button</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>button</jp:type>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>button</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:type>button</jp:type>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Button o) { + assertType(Button.class, o); + } + } + }, + { /* 18 */ + new ComboInput<Canvas>( + "Canvas-1", + Canvas.class, + canvas(100, 200), + /* Json */ "{_type:'canvas',a:{width:100,height:200}}", + /* JsonT */ "{t:'canvas',a:{width:100,height:200}}", + /* JsonR */ "{\n\t_type: 'canvas',\n\ta: {\n\t\twidth: 100,\n\t\theight: 200\n\t}\n}", + /* Xml */ "<canvas width='100' height='200'/>", + /* XmlT */ "<canvas width='100' height='200'/>", + /* XmlR */ "<canvas width='100' height='200'/>\n", + /* XmlNs */ "<canvas width='100' height='200'/>", + /* Html */ "<canvas width='100' height='200'></canvas>", + /* HtmlT */ "<canvas width='100' height='200'></canvas>", + /* HtmlR */ "<canvas width='100' height='200'></canvas>\n", + /* Uon */ "(_type=canvas,a=(width=100,height=200))", + /* UonT */ "(t=canvas,a=(width=100,height=200))", + /* UonR */ "(\n\t_type=canvas,\n\ta=(\n\t\twidth=100,\n\t\theight=200\n\t)\n)", + /* UrlEnc */ "_type=canvas&a=(width=100,height=200)", + /* UrlEncT */ "t=canvas&a=(width=100,height=200)", + /* UrlEncR */ "_type=canvas\n&a=(\n\twidth=100,\n\theight=200\n)", + /* MsgPack */ "82A55F74797065A663616E766173A16182A5776964746864A6686569676874D100C8", + /* MsgPackT */ "82A174A663616E766173A16182A5776964746864A6686569676874D100C8", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>canvas</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:width>100</jp:width>\n<jp:height>200</jp:height>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>canvas</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:width>100</jp:width>\n<jp:height>200</jp:height>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>canvas</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:width>100</jp:width>\n <jp:height>200</jp:height>\n </jp:a>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Canvas o) { + assertType(Canvas.class, o); + } + } + }, + { /* 19 */ + new ComboInput<P>( + "Cite-1", + P.class, + p(cite("foo")), + /* Json */ "{_type:'p',c:[{_type:'cite',c:['foo']}]}", + /* JsonT */ "{t:'p',c:[{t:'cite',c:['foo']}]}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'cite',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<p><cite>foo</cite></p>", + /* XmlT */ "<p><cite>foo</cite></p>", + /* XmlR */ "<p><cite>foo</cite></p>\n", + /* XmlNs */ "<p><cite>foo</cite></p>", + /* Html */ "<p><cite>foo</cite></p>", + /* HtmlT */ "<p><cite>foo</cite></p>", + /* HtmlR */ "<p><cite>foo</cite></p>\n", + /* Uon */ "(_type=p,c=@((_type=cite,c=@(foo))))", + /* UonT */ "(t=p,c=@((t=cite,c=@(foo))))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=cite,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=p&c=@((_type=cite,c=@(foo)))", + /* UrlEncT */ "t=p&c=@((t=cite,c=@(foo)))", + /* UrlEncR */ "_type=p\n&c=@(\n\t(\n\t\t_type=cite,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t)\n)", + /* MsgPack */ "82A55F74797065A170A1639182A55F74797065A463697465A16391A3666F6F", + /* MsgPackT */ "82A174A170A1639182A174A463697465A16391A3666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>cite</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>cite</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>cite</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Cite.class, o.getChild(0)); + } + } + }, + { /* 20 */ + new ComboInput<Code>( + "Code-1", + Code.class, + code("foo\n\tbar"), + /* Json */ "{_type:'code',c:['foo\\n\\tbar']}", + /* JsonT */ "{t:'code',c:['foo\\n\\tbar']}", + /* JsonR */ "{\n\t_type: 'code',\n\tc: [\n\t\t'foo\\n\\tbar'\n\t]\n}", + /* Xml */ "<code>foo
	bar</code>", + /* XmlT */ "<code>foo
	bar</code>", + /* XmlR */ "<code>foo
	bar</code>\n", + /* XmlNs */ "<code>foo
	bar</code>", + /* Html */ "<code>foo<br/><sp> </sp>bar</code>", + /* HtmlT */ "<code>foo<br/><sp> </sp>bar</code>", + /* HtmlR */ "<code>foo<br/><sp> </sp>bar</code>\n", + /* Uon */ "(_type=code,c=@('foo\n\tbar'))", + /* UonT */ "(t=code,c=@('foo\n\tbar'))", + /* UonR */ "(\n\t_type=code,\n\tc=@(\n\t\t'foo\n\tbar'\n\t)\n)", + /* UrlEnc */ "_type=code&c=@('foo%0A%09bar')", + /* UrlEncT */ "t=code&c=@('foo%0A%09bar')", + /* UrlEncR */ "_type=code\n&c=@(\n\t'foo%0A%09bar'\n)", + /* MsgPack */ "82A55F74797065A4636F6465A16391A8666F6F0A09626172", + /* MsgPackT */ "82A174A4636F6465A16391A8666F6F0A09626172", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>code</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo_x000A__x0009_bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>code</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo_x000A__x0009_bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>code</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo_x000A__x0009_bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Code o) { + assertType(Code.class, o); + } + } + }, + { /* 21 */ + new ComboInput<Datalist>( + "Datalist-1", + Datalist.class, + datalist("foo", + option("One"), + option("Two") + ), + /* Json */ "{_type:'datalist',a:{id:'foo'},c:[{_type:'option',c:'One'},{_type:'option',c:'Two'}]}", + /* JsonT */ "{t:'datalist',a:{id:'foo'},c:[{t:'option',c:'One'},{t:'option',c:'Two'}]}", + /* JsonR */ "{\n\t_type: 'datalist',\n\ta: {\n\t\tid: 'foo'\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'option',\n\t\t\tc: 'One'\n\t\t},\n\t\t{\n\t\t\t_type: 'option',\n\t\t\tc: 'Two'\n\t\t}\n\t]\n}", + /* Xml */ "<datalist id='foo'><option>One</option><option>Two</option></datalist>", + /* XmlT */ "<datalist id='foo'><option>One</option><option>Two</option></datalist>", + /* XmlR */ "<datalist id='foo'>\n\t<option>One</option>\n\t<option>Two</option>\n</datalist>\n", + /* XmlNs */ "<datalist id='foo'><option>One</option><option>Two</option></datalist>", + /* Html */ "<datalist id='foo'><option>One</option><option>Two</option></datalist>", + /* HtmlT */ "<datalist id='foo'><option>One</option><option>Two</option></datalist>", + /* HtmlR */ "<datalist id='foo'>\n\t<option>One</option>\n\t<option>Two</option>\n</datalist>\n", + /* Uon */ "(_type=datalist,a=(id=foo),c=@((_type=option,c=One),(_type=option,c=Two)))", + /* UonT */ "(t=datalist,a=(id=foo),c=@((t=option,c=One),(t=option,c=Two)))", + /* UonR */ "(\n\t_type=datalist,\n\ta=(\n\t\tid=foo\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=option,\n\t\t\tc=One\n\t\t),\n\t\t(\n\t\t\t_type=option,\n\t\t\tc=Two\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=datalist&a=(id=foo)&c=@((_type=option,c=One),(_type=option,c=Two))", + /* UrlEncT */ "t=datalist&a=(id=foo)&c=@((t=option,c=One),(t=option,c=Two))", + /* UrlEncR */ "_type=datalist\n&a=(\n\tid=foo\n)\n&c=@(\n\t(\n\t\t_type=option,\n\t\tc=One\n\t),\n\t(\n\t\t_type=option,\n\t\tc=Two\n\t)\n)", + /* MsgPack */ "83A55F74797065A8646174616C697374A16181A26964A3666F6FA1639282A55F74797065A66F7074696F6EA163A34F6E6582A55F74797065A66F7074696F6EA163A354776F", + /* MsgPackT */ "83A174A8646174616C697374A16181A26964A3666F6FA1639282A174A66F7074696F6EA163A34F6E6582A174A66F7074696F6EA163A354776F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>datalist</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:id>foo</jp:id>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>option</jp:_type>\n<jp:c>One</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>option</jp:_type>\n<jp:c>Two</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>datalist</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:id>foo</jp:id>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>option</jp:t>\n<jp:c>One</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>option</jp:t>\n<jp:c>Two</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>datalist</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:id>foo</jp:id>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>option</jp:_type>\n <jp:c>One</jp:c>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>option</jp:_type>\n <jp:c>Two</jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Datalist o) { + assertType(Datalist.class, o); + assertType(Option.class, o.getChild(0)); + assertType(Option.class, o.getChild(1)); + } + } + }, + { /* 22 */ + new ComboInput<Dl>( + "Dl/Dt/Dd", + Dl.class, + dl( + dt("foo"), + dd("bar") + ), + /* Json */ "{_type:'dl',c:[{_type:'dt',c:['foo']},{_type:'dd',c:['bar']}]}", + /* JsonT */ "{t:'dl',c:[{t:'dt',c:['foo']},{t:'dd',c:['bar']}]}", + /* JsonR */ "{\n\t_type: 'dl',\n\tc: [\n\t\t{\n\t\t\t_type: 'dt',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'dd',\n\t\t\tc: [\n\t\t\t\t'bar'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<dl><dt>foo</dt><dd>bar</dd></dl>", + /* XmlT */ "<dl><dt>foo</dt><dd>bar</dd></dl>", + /* XmlR */ "<dl>\n\t<dt>foo</dt>\n\t<dd>bar</dd>\n</dl>\n", + /* XmlNs */ "<dl><dt>foo</dt><dd>bar</dd></dl>", + /* Html */ "<dl><dt>foo</dt><dd>bar</dd></dl>", + /* HtmlT */ "<dl><dt>foo</dt><dd>bar</dd></dl>", + /* HtmlR */ "<dl>\n\t<dt>foo</dt>\n\t<dd>bar</dd>\n</dl>\n", + /* Uon */ "(_type=dl,c=@((_type=dt,c=@(foo)),(_type=dd,c=@(bar))))", + /* UonT */ "(t=dl,c=@((t=dt,c=@(foo)),(t=dd,c=@(bar))))", + /* UonR */ "(\n\t_type=dl,\n\tc=@(\n\t\t(\n\t\t\t_type=dt,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=dd,\n\t\t\tc=@(\n\t\t\t\tbar\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=dl&c=@((_type=dt,c=@(foo)),(_type=dd,c=@(bar)))", + /* UrlEncT */ "t=dl&c=@((t=dt,c=@(foo)),(t=dd,c=@(bar)))", + /* UrlEncR */ "_type=dl\n&c=@(\n\t(\n\t\t_type=dt,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t),\n\t(\n\t\t_type=dd,\n\t\tc=@(\n\t\t\tbar\n\t\t)\n\t)\n)", + /* MsgPack */ "82A55F74797065A2646CA1639282A55F74797065A26474A16391A3666F6F82A55F74797065A26464A16391A3626172", + /* MsgPackT */ "82A174A2646CA1639282A174A26474A16391A3666F6F82A174A26464A16391A3626172", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>dl</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>dt</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>dd</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>dl</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>dt</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>dd</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>dl</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>dt</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>dd</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Dl o) { + assertType(Dl.class, o); + assertType(Dt.class, o.getChild(0)); + assertType(Dd.class, o.getChild(1)); + } + } + }, + { /* 23 */ + new ComboInput<P>( + "Del/Ins", + P.class, + p(del("foo",btag,"bar"),ins("baz")), + /* Json */ "{_type:'p',c:[{_type:'del',c:['foo',{_type:'b',c:['bbb']},'bar']},{_type:'ins',c:['baz']}]}", + /* JsonT */ "{t:'p',c:[{t:'del',c:['foo',{t:'b',c:['bbb']},'bar']},{t:'ins',c:['baz']}]}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'del',\n\t\t\tc: [\n\t\t\t\t'foo',\n\t\t\t\t{\n\t\t\t\t\t_type: 'b',\n\t\t\t\t\tc: [\n\t\t\t\t\t\t'bbb'\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t'bar'\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t_type: 'ins',\n\t\t\tc: [\n\t\t\t\t'baz'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>", + /* XmlT */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>", + /* XmlR */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>\n", + /* XmlNs */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>", + /* Html */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>", + /* HtmlT */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>", + /* HtmlR */ "<p><del>foo<b>bbb</b>bar</del><ins>baz</ins></p>\n", + /* Uon */ "(_type=p,c=@((_type=del,c=@(foo,(_type=b,c=@(bbb)),bar)),(_type=ins,c=@(baz))))", + /* UonT */ "(t=p,c=@((t=del,c=@(foo,(t=b,c=@(bbb)),bar)),(t=ins,c=@(baz))))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=del,\n\t\t\tc=@(\n\t\t\t\tfoo,\n\t\t\t\t(\n\t\t\t\t\t_type=b,\n\t\t\t\t\tc=@(\n\t\t\t\t\t\tbbb\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tbar\n\t\t\t)\n\t\t),\n\t\t(\n\t\t\t_type=ins,\n\t\t\tc=@(\n\t\t\t\tbaz\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=p&c=@((_type=del,c=@(foo,(_type=b,c=@(bbb)),bar)),(_type=ins,c=@(baz)))", + /* UrlEncT */ "t=p&c=@((t=del,c=@(foo,(t=b,c=@(bbb)),bar)),(t=ins,c=@(baz)))", + /* UrlEncR */ "_type=p\n&c=@(\n\t(\n\t\t_type=del,\n\t\tc=@(\n\t\t\tfoo,\n\t\t\t(\n\t\t\t\t_type=b,\n\t\t\t\tc=@(\n\t\t\t\t\tbbb\n\t\t\t\t)\n\t\t\t),\n\t\t\tbar\n\t\t)\n\t),\n\t(\n\t\t_type=ins,\n\t\tc=@(\n\t\t\tbaz\n\t\t)\n\t)\n)", + /* MsgPack */ "82A55F74797065A170A1639282A55F74797065A364656CA16393A3666F6F82A55F74797065A162A16391A3626262A362617282A55F74797065A3696E73A16391A362617A", + /* MsgPackT */ "82A174A170A1639282A174A364656CA16393A3666F6F82A174A162A16391A3626262A362617282A174A3696E73A16391A362617A", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>del</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>ins</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>del</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>ins</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>del</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>b</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bbb</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>ins</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>baz</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Del.class, o.getChild(0)); + assertType(B.class, o.getChild(Del.class, 0).getChild(1)); + assertType(Ins.class, o.getChild(1)); + } + } + }, + { /* 24 */ + new ComboInput<P>( + "Dfn", + P.class, + p(dfn("foo")), + /* Json */ "{_type:'p',c:[{_type:'dfn',c:['foo']}]}", + /* JsonT */ "{t:'p',c:[{t:'dfn',c:['foo']}]}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t{\n\t\t\t_type: 'dfn',\n\t\t\tc: [\n\t\t\t\t'foo'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<p><dfn>foo</dfn></p>", + /* XmlT */ "<p><dfn>foo</dfn></p>", + /* XmlR */ "<p><dfn>foo</dfn></p>\n", + /* XmlNs */ "<p><dfn>foo</dfn></p>", + /* Html */ "<p><dfn>foo</dfn></p>", + /* HtmlT */ "<p><dfn>foo</dfn></p>", + /* HtmlR */ "<p><dfn>foo</dfn></p>\n", + /* Uon */ "(_type=p,c=@((_type=dfn,c=@(foo))))", + /* UonT */ "(t=p,c=@((t=dfn,c=@(foo))))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\t(\n\t\t\t_type=dfn,\n\t\t\tc=@(\n\t\t\t\tfoo\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=p&c=@((_type=dfn,c=@(foo)))", + /* UrlEncT */ "t=p&c=@((t=dfn,c=@(foo)))", + /* UrlEncR */ "_type=p\n&c=@(\n\t(\n\t\t_type=dfn,\n\t\tc=@(\n\t\t\tfoo\n\t\t)\n\t)\n)", + /* MsgPack */ "82A55F74797065A170A1639182A55F74797065A364666EA16391A3666F6F", + /* MsgPackT */ "82A174A170A1639182A174A364666EA16391A3666F6F", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>dfn</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>dfn</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>dfn</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Dfn.class, o.getChild(0)); + } + } + }, + { /* 25 */ + new ComboInput<Div>( + "Div", + Div.class, + div("foo",btag,"bar"), + /* Json */ "{_type:'div',c:['foo',{_type:'b',c:['bbb']},'bar']}", + /* JsonT */ "{t:'div',c:['foo',{t:'b',c:['bbb']},'bar']}", + /* JsonR */ "{\n\t_type: 'div',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'b',\n\t\t\tc: [\n\t\t\t\t'bbb'\n\t\t\t]\n\t\t},\n\t\t'bar'\n\t]\n}", + /* Xml */ "<div>foo<b>bbb</b>bar</div>", + /* XmlT */ "<div>foo<b>bbb</b>bar</div>", + /* XmlR */ "<div>foo<b>bbb</b>bar</div>\n", + /* XmlNs */ "<div>foo<b>bbb</b>bar</div>", + /* Html */ "<div>foo<b>bbb</b>bar</div>", + /* HtmlT */ "<div>foo<b>bbb</b>bar</div>", + /* HtmlR */ "<div>foo<b>bbb</b>bar</div>\n", + /* Uon */ "(_type=div,c=@(foo,(_type=b,c=@(bbb)),bar))", + /* UonT */ "(t=div,c=@(foo,(t=b,c=@(bbb)),bar))", + /* UonR */ "(\n\t_type=div,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=b,\n\t\t\tc=@(\n\t\t\t\tbbb\n\t\t\t)\n\t\t),\n\t\tbar\n\t)\n)", + /* UrlEnc */ "_type=div&c=@(foo,(_type=b,c=@(bbb)),bar)", + /* UrlEncT */ "t=div&c=@(foo,(t=b,c=@(bbb)),bar)", + /* UrlEncR */ "_type=div\n&c=@(\n\tfoo,\n\t(\n\t\t_type=b,\n\t\tc=@(\n\t\t\tbbb\n\t\t)\n\t),\n\tbar\n)", + /* MsgPack */ "82A55F74797065A3646976A16393A3666F6F82A55F74797065A162A16391A3626262A3626172", + /* MsgPackT */ "82A174A3646976A16393A3666F6F82A174A162A16391A3626262A3626172", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>div</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>b</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>div</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>b</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bbb</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>div</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>b</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bbb</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Div o) { + assertType(Div.class, o); + assertType(B.class, o.getChild(1)); + } + } + }, + { /* 26 */ + new ComboInput<P>( + "Em", + P.class, + p("foo",em("bar"),"baz"), + /* Json */ "{_type:'p',c:['foo',{_type:'em',c:['bar']},'baz']}", + /* JsonT */ "{t:'p',c:['foo',{t:'em',c:['bar']},'baz']}", + /* JsonR */ "{\n\t_type: 'p',\n\tc: [\n\t\t'foo',\n\t\t{\n\t\t\t_type: 'em',\n\t\t\tc: [\n\t\t\t\t'bar'\n\t\t\t]\n\t\t},\n\t\t'baz'\n\t]\n}", + /* Xml */ "<p>foo<em>bar</em>baz</p>", + /* XmlT */ "<p>foo<em>bar</em>baz</p>", + /* XmlR */ "<p>foo<em>bar</em>baz</p>\n", + /* XmlNs */ "<p>foo<em>bar</em>baz</p>", + /* Html */ "<p>foo<em>bar</em>baz</p>", + /* HtmlT */ "<p>foo<em>bar</em>baz</p>", + /* HtmlR */ "<p>foo<em>bar</em>baz</p>\n", + /* Uon */ "(_type=p,c=@(foo,(_type=em,c=@(bar)),baz))", + /* UonT */ "(t=p,c=@(foo,(t=em,c=@(bar)),baz))", + /* UonR */ "(\n\t_type=p,\n\tc=@(\n\t\tfoo,\n\t\t(\n\t\t\t_type=em,\n\t\t\tc=@(\n\t\t\t\tbar\n\t\t\t)\n\t\t),\n\t\tbaz\n\t)\n)", + /* UrlEnc */ "_type=p&c=@(foo,(_type=em,c=@(bar)),baz)", + /* UrlEncT */ "t=p&c=@(foo,(t=em,c=@(bar)),baz)", + /* UrlEncR */ "_type=p\n&c=@(\n\tfoo,\n\t(\n\t\t_type=em,\n\t\tc=@(\n\t\t\tbar\n\t\t)\n\t),\n\tbaz\n)", + /* MsgPack */ "82A55F74797065A170A16393A3666F6F82A55F74797065A2656DA16391A3626172A362617A", + /* MsgPackT */ "82A174A170A16393A3666F6F82A174A2656DA16391A3626172A362617A", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>p</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>em</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>p</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>em</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>bar</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>baz</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>p</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>em</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>bar</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>baz</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(P o) { + assertType(P.class, o); + assertType(Em.class, o.getChild(1)); + } + } + }, + { /* 27 */ + new ComboInput<Embed>( + "Embed", + Embed.class, + embed("foo.swf"), + /* Json */ "{_type:'embed',a:{src:'foo.swf'}}", + /* JsonT */ "{t:'embed',a:{src:'foo.swf'}}", + /* JsonR */ "{\n\t_type: 'embed',\n\ta: {\n\t\tsrc: 'foo.swf'\n\t}\n}", + /* Xml */ "<embed src='foo.swf'/>", + /* XmlT */ "<embed src='foo.swf'/>", + /* XmlR */ "<embed src='foo.swf'/>\n", + /* XmlNs */ "<embed src='foo.swf'/>", + /* Html */ "<embed src='foo.swf'/>", + /* HtmlT */ "<embed src='foo.swf'/>", + /* HtmlR */ "<embed src='foo.swf'/>\n", + /* Uon */ "(_type=embed,a=(src=foo.swf))", + /* UonT */ "(t=embed,a=(src=foo.swf))", + /* UonR */ "(\n\t_type=embed,\n\ta=(\n\t\tsrc=foo.swf\n\t)\n)", + /* UrlEnc */ "_type=embed&a=(src=foo.swf)", + /* UrlEncT */ "t=embed&a=(src=foo.swf)", + /* UrlEncR */ "_type=embed\n&a=(\n\tsrc=foo.swf\n)", + /* MsgPack */ "82A55F74797065A5656D626564A16181A3737263A7666F6F2E737766", + /* MsgPackT */ "82A174A5656D626564A16181A3737263A7666F6F2E737766", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>embed</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.swf</jp:src>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>embed</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:src>foo.swf</jp:src>\n</jp:a>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>embed</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:src>foo.swf</jp:src>\n </jp:a>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Embed o) { + assertType(Embed.class, o); + } + } + }, + { /* 28 */ + new ComboInput<Form>( + "Form/Fieldset/Legend/Input/Keygen/Label", + Form.class, + form("bar", + fieldset( + legend("foo:"), + "Name:", input("text"), br(), + "Email:", input("text"), br(), + "X:", keygen().name("X"), + label("label")._for("Name") + ) + ), + /* Json */ "{_type:'form',a:{action:'bar'},c:[{_type:'fieldset',c:[{_type:'legend',c:['foo:']},'Name:',{_type:'input',a:{type:'text'}},{_type:'br'},'Email:',{_type:'input',a:{type:'text'}},{_type:'br'},'X:',{_type:'keygen',a:{name:'X'}},{_type:'label',a:{'for':'Name'},c:['label']}]}]}", + /* JsonT */ "{t:'form',a:{action:'bar'},c:[{t:'fieldset',c:[{t:'legend',c:['foo:']},'Name:',{t:'input',a:{type:'text'}},{t:'br'},'Email:',{t:'input',a:{type:'text'}},{t:'br'},'X:',{t:'keygen',a:{name:'X'}},{t:'label',a:{'for':'Name'},c:['label']}]}]}", + /* JsonR */ "{\n\t_type: 'form',\n\ta: {\n\t\taction: 'bar'\n\t},\n\tc: [\n\t\t{\n\t\t\t_type: 'fieldset',\n\t\t\tc: [\n\t\t\t\t{\n\t\t\t\t\t_type: 'legend',\n\t\t\t\t\tc: [\n\t\t\t\t\t\t'foo:'\n\t\t\t\t\t]\n\t\t\t\t},\n\t\t\t\t'Name:',\n\t\t\t\t{\n\t\t\t\t\t_type: 'input',\n\t\t\t\t\ta: {\n\t\t\t\t\t\ttype: 'text'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t_type: 'br'\n\t\t\t\t},\n\t\t\t\t'Email:',\n\t\t\t\t{\n\t\t\t\t\t_type: 'input',\n\t\t\t\t\ta: {\n\t\t\t\t\t\ttype: 'text'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t_type: 'br'\n\t\t\t\t},\n\t\t\t\t'X:',\n\t\t\t\t{\n\t\t\t\t\t_type: 'keygen',\n\t\t\t\t\ta: {\n\t\t\t\t\t\tname: 'X'\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t_type: 'label',\n\t\t\t\t\ta: {\n\t\t\t\t\t\t'for': 'Name'\n\t\t\t\t\t},\n\t\t\t\t\tc: [\n\t\t\t\t\t\t'label'\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>", + /* XmlT */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>", + /* XmlR */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>\n", + /* XmlNs */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>", + /* Html */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>", + /* HtmlT */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>", + /* HtmlR */ "<form action='bar'><fieldset><legend>foo:</legend>Name:<input type='text'/><br/>Email:<input type='text'/><br/>X:<keygen name='X'/><label for='Name'>label</label></fieldset></form>\n", + /* Uon */ "(_type=form,a=(action=bar),c=@((_type=fieldset,c=@((_type=legend,c=@(foo:)),Name:,(_type=input,a=(type=text)),(_type=br),Email:,(_type=input,a=(type=text)),(_type=br),X:,(_type=keygen,a=(name=X)),(_type=label,a=(for=Name),c=@(label))))))", + /* UonT */ "(t=form,a=(action=bar),c=@((t=fieldset,c=@((t=legend,c=@(foo:)),Name:,(t=input,a=(type=text)),(t=br),Email:,(t=input,a=(type=text)),(t=br),X:,(t=keygen,a=(name=X)),(t=label,a=(for=Name),c=@(label))))))", + /* UonR */ "(\n\t_type=form,\n\ta=(\n\t\taction=bar\n\t),\n\tc=@(\n\t\t(\n\t\t\t_type=fieldset,\n\t\t\tc=@(\n\t\t\t\t(\n\t\t\t\t\t_type=legend,\n\t\t\t\t\tc=@(\n\t\t\t\t\t\tfoo:\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tName:,\n\t\t\t\t(\n\t\t\t\t\t_type=input,\n\t\t\t\t\ta=(\n\t\t\t\t\t\ttype=text\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t(\n\t\t\t\t\t_type=br\n\t\t\t\t),\n\t\t\t\tEmail:,\n\t\t\t\t(\n\t\t\t\t\t_type=input,\n\t\t\t\t\ta=(\n\t\t\t\t\t\ttype=text\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t(\n\t\t\t\t\t_type=br\n\t\t\t\t),\n\t\t\t\tX:,\n\t\t\t\t(\n\t\t\t\t\t_type=keygen,\n\t\t\t\t\ta=(\n\t\t\t\t\t\tname=X\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\t(\n\t\t\t\t\t_type=label,\n\t\t\t\t\ta=(\n\t\t\t\t\t\tfor=Name\n\t\t\t\t\t),\n\t\t\t\t\tc=@(\n\t\t\t\t\t\tlabel\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t)\n)", + /* UrlEnc */ "_type=form&a=(action=bar)&c=@((_type=fieldset,c=@((_type=legend,c=@(foo:)),Name:,(_type=input,a=(type=text)),(_type=br),Email:,(_type=input,a=(type=text)),(_type=br),X:,(_type=keygen,a=(name=X)),(_type=label,a=(for=Name),c=@(label)))))", + /* UrlEncT */ "t=form&a=(action=bar)&c=@((t=fieldset,c=@((t=legend,c=@(foo:)),Name:,(t=input,a=(type=text)),(t=br),Email:,(t=input,a=(type=text)),(t=br),X:,(t=keygen,a=(name=X)),(t=label,a=(for=Name),c=@(label)))))", + /* UrlEncR */ "_type=form\n&a=(\n\taction=bar\n)\n&c=@(\n\t(\n\t\t_type=fieldset,\n\t\tc=@(\n\t\t\t(\n\t\t\t\t_type=legend,\n\t\t\t\tc=@(\n\t\t\t\t\tfoo:\n\t\t\t\t)\n\t\t\t),\n\t\t\tName:,\n\t\t\t(\n\t\t\t\t_type=input,\n\t\t\t\ta=(\n\t\t\t\t\ttype=text\n\t\t\t\t)\n\t\t\t),\n\t\t\t(\n\t\t\t\t_type=br\n\t\t\t),\n\t\t\tEmail:,\n\t\t\t(\n\t\t\t\t_type=input,\n\t\t\t\ta=(\n\t\t\t\t\ttype=text\n\t\t\t\t)\n\t\t\t),\n\t\t\t(\n\t\t\t\t_type=br\n\t\t\t),\n\t\t\tX:,\n\t\t\t(\n\t\t\t\t_type=keygen,\n\t\t\t\ta=(\n\t\t\t\t\tname=X\n\t\t\t\t)\n\t\t\t),\n\t\t\t(\n\t\t\t\t_type=label,\n\t\t\t\ta=(\n\t\t\t\t\tfor=Name\n\t\t\t\t),\n\t\t\t\tc=@(\n\t\t\t\t\tlabel\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t)\n)", + /* MsgPack */ "83A55F74797065A4666F726DA16181A6616374696F6EA3626172A1639182A55F74797065A86669656C64736574A1639A82A55F74797065A66C6567656E64A16391A4666F6F3AA54E616D653A82A55F74797065A5696E707574A16181A474797065A47465787481A55F74797065A26272A6456D61696C3A82A55F74797065A5696E707574A16181A474797065A47465787481A55F74797065A26272A2583A82A55F74797065A66B657967656EA16181A46E616D65A15883A55F74797065A56C6162656CA16181A3666F72A44E616D65A16391A56C6162656C", + /* MsgPackT */ "83A174A4666F726DA16181A6616374696F6EA3626172A1639182A174A86669656C64736574A1639A82A174A66C6567656E64A16391A4666F6F3AA54E616D653A82A174A5696E707574A16181A474797065A47465787481A174A26272A6456D61696C3A82A174A5696E707574A16181A474797065A47465787481A174A26272A2583A82A174A66B657967656EA16181A46E616D65A15883A174A56C6162656CA16181A3666F72A44E616D65A16391A56C6162656C", + /* RdfXml */ "<rdf:RDF>\n<rdf:Description>\n<jp:_type>form</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:action>bar</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>fieldset</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>legend</jp:_type>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo:</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>Name:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>br</jp:_type>\n</rdf:li>\n<rdf:li>Email:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>input</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>br</jp:_type>\n</rdf:li>\n<rdf:li>X:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>keygen</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:name>X</jp:nam e>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:_type>label</jp:_type>\n<jp:a rdf:parseType='Resource'>\n<jp:for>Name</jp:for>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>label</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlT */ "<rdf:RDF>\n<rdf:Description>\n<jp:t>form</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:action>bar</jp:action>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>fieldset</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>legend</jp:t>\n<jp:c>\n<rdf:Seq>\n<rdf:li>foo:</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n<rdf:li>Name:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>br</jp:t>\n</rdf:li>\n<rdf:li>Email:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>input</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:type>text</jp:type>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>br</jp:t>\n</rdf:li>\n<rdf:li>X:</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp:t>keygen</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:name>X</jp:name>\n</jp:a>\n</rdf:li>\n<rdf:li rdf:parseType='Resource'>\n<jp: t>label</jp:t>\n<jp:a rdf:parseType='Resource'>\n<jp:for>Name</jp:for>\n</jp:a>\n<jp:c>\n<rdf:Seq>\n<rdf:li>label</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:li>\n</rdf:Seq>\n</jp:c>\n</rdf:Description>\n</rdf:RDF>\n", + /* RdfXmlR */ "<rdf:RDF>\n <rdf:Description>\n <jp:_type>form</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:action>bar</jp:action>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>fieldset</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>legend</jp:_type>\n <jp:c>\n <rdf:Seq>\n <rdf:li>foo:</rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n <rdf:li>Name:</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>input</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:type>text</jp:type>\n </jp:a>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>br</jp:_type>\n </rdf:li>\n <rdf :li>Email:</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>input</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:type>text</jp:type>\n </jp:a>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>br</jp:_type>\n </rdf:li>\n <rdf:li>X:</rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>keygen</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:name>X</jp:name>\n </jp:a>\n </rdf:li>\n <rdf:li rdf:parseType='Resource'>\n <jp:_type>label</jp:_type>\n <jp:a rdf:parseType='Resource'>\n <jp:for>Name</jp:for>\n </jp:a>\n <jp:c>\n <rdf:Seq>\n <rdf:li>label</rdf:li>\n </rdf:Seq>\n </jp:c> \n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:li>\n </rdf:Seq>\n </jp:c>\n </rdf:Description>\n</rdf:RDF>\n" + ) + { + @Override + public void verify(Form o) { + assertType(Form.class, o); + assertType(Fieldset.class, o.getChild(0)); + assertType(Legend.class, o.getChild(0,0)); + assertType(Input.class, o.getChild(0,2)); + assertType(Br.class, o.getChild(0,3)); + assertType(Input.class, o.getChild(0,5)); + assertType(Br.class, o.getChild(0,6)); + assertType(Keygen.class, o.getChild(0,8)); + assertType(Label.class, o.getChild(0,9)); + } + } + }, + { /* 29 */ + new ComboInput<Figure>( + "Figure/Figcaption/Img", + Figure.class, + figure( + img("foo.png").alt("foo").width(100).height(200), + figcaption("The caption") + ), + /* Json */ "{_type:'figure',c:[{_type:'img',a:{src:'foo.png',alt:'foo',width:100,height:200}},{_type:'figcaption',c:['The caption']}]}", + /* JsonT */ "{t:'figure',c:[{t:'img',a:{src:'foo.png',alt:'foo',width:100,height:200}},{t:'figcaption',c:['The caption']}]}", + /* JsonR */ "{\n\t_type: 'figure',\n\tc: [\n\t\t{\n\t\t\t_type: 'img',\n\t\t\ta: {\n\t\t\t\tsrc: 'foo.png',\n\t\t\t\talt: 'foo',\n\t\t\t\twidth: 100,\n\t\t\t\theight: 200\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t_type: 'figcaption',\n\t\t\tc: [\n\t\t\t\t'The caption'\n\t\t\t]\n\t\t}\n\t]\n}", + /* Xml */ "<figure><i
<TRUNCATED>
