in src/main/java/com/atlassian/uwc/converters/xml/XmlConverterTest.java [626:718]
public void testConvert_ContentFormattingMacro2() {
String input, expected, actual;
events.addEvent("table", "com.atlassian.uwc.converters.xml.ContentFormattingTableParser");
events.addEvent("tr", "com.atlassian.uwc.converters.xml.ContentFormattingTableParser");
events.addEvent("td", "com.atlassian.uwc.converters.xml.ContentFormattingTableParser");
events.addEvent("th", "com.atlassian.uwc.converters.xml.ContentFormattingTableParser");
input = "<uwc>" +
"<table>\n" +
" <tr>\n" +
" <th>Column 1</th>\n" +
" <th>Column 2</th>\n" +
" <th>Column 3</th>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>A</td>\n" +
" <td colspan=\"2\" align=\"center\">B</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>C</td>\n" +
" <td>D</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>E</td>\n" +
" <td colspan=\"2\">F</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>G</td>\n" +
" <td>H</td>\n" +
" <td>I</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td>J</td>\n" +
" <td>K</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td colspan=\"2\">L</td>\n" +
" </tr>\n" +
"<tr>\n" +
" <td rowspan=\"2\">M</td>\n" +
" <td>N</td>\n" +
" <td>O</td>\n" +
" </tr>\n" +
" <tr>\n" +
" <td colspan=\"2\">P</td>\n" +
" </tr>\n" +
"</table>\n" +
"</uwc>";
expected = "{table:border=1}\n" +
" {tr}\n" +
" {th}Column 1{th}\n" +
" {th}Column 2{th}\n" +
" {th}Column 3{th}\n" +
" {tr}\n" +
" {tr}\n" +
" {td}A{td}\n" +
" {td:colspan=2|align=center}B{td}\n" +
" {tr}\n" +
" {tr}\n" +
" {td}C{td}\n" +
" {td}D{td}\n" +
" {tr}\n" +
" {tr}\n" +
" {td}E{td}\n" +
" {td:colspan=2}F{td}\n" +
" {tr}\n" +
" {tr}\n" +
" {td}G{td}\n" +
" {td}H{td}\n" +
" {td}I{td}\n" +
" {tr}\n" +
" {tr}\n" +
" {td}J{td}\n" +
" {td}K{td}\n" +
" {tr}\n" +
" {tr}\n" +
" {td:colspan=2}L{td}\n" +
" {tr}\n" +
"{tr}\n" +
" {td:rowspan=2}M{td}\n" +
" {td}N{td}\n" +
" {td}O{td}\n" +
" {tr}\n" +
" {tr}\n" +
" {td:colspan=2}P{td}\n" +
" {tr}" +
"{table}\n" +
"";
actual = parse(input);
assertNotNull(actual);
assertEquals(expected, actual);
}