/** * Reads test file and returns its content optionally stripped. */ protected String read(String filename, boolean strip) throws IOException { String data = FileUtil.readString(new File(testDataRoot, filename)); if (strip) { data = strip(data); } return data; }
@Test void testFoster1() { String html = "A<table>B<tr>C</tr>D</table>"; LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.getConfig().setUseFosterRules(true); Document doc = lagartoDOMBuilder.parse(html); html = html1(doc); assertEquals("ABCD<table><tr></tr></table>", html); }
@Test void testFoster2() { String html = "A<table><tr> B</tr> C</table>"; LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.getConfig().setUseFosterRules(true); Document doc = lagartoDOMBuilder.parse(html); html = html1(doc); assertEquals("ABC<table><tr></tr></table>", html); }
@Test void testTableInTableInTable() throws IOException { String html = read("tableInTable.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); Document doc = lagartoDOMBuilder.parse(html); String out = read("tableInTable-out.html", true); assertEquals(out, html(doc)); assertTrue(doc.check()); }
@Test void testBodyEndWithError() { String html = "<body><p>111<h1>222</body>"; LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html1(doc); assertEquals("<body><p>111</p><h1>222</h1></body>", html); assertNotNull(doc.getErrors()); assertEquals(1, doc.getErrors().size()); }
/** * Parses HTML and returns the stripped html. */ protected String html(Document document) { String html = document.getHtml(); html = strip(html); return html; } protected String html1(Document document) {
@Test void testTable1() throws IOException { String html = read("table1.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableHtmlPlusMode(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("table1-out.html", true); assertEquals(out, html); }
@Test void testEOFWithError() { String html = "<body><p>111<h1>222"; LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html1(doc); assertEquals("<body><p>111</p><h1>222</h1></body>", html); assertNotNull(doc.getErrors()); assertEquals(1, doc.getErrors().size()); }
@Test void testTable2() throws IOException { String html = read("table2.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableHtmlPlusMode(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("table2-out.html", true); assertEquals(out, html); }
@Test void testEOF() { String html = "<body><p>111"; LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html1(doc); assertEquals("<body><p>111</p></body>", html); assertNull(doc.getErrors()); }
@Test void testCrazySpan() throws IOException { String html = read("spancrazy.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableHtmlPlusMode(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("spancrazy-out.html", true); assertEquals(out, html); assertEquals(3, doc.getErrors().size()); }
@Test void testBodyEnd() { String html = "<body><p>111</body>"; LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html1(doc); assertEquals("<body><p>111</p></body>", html); assertNull(doc.getErrors()); }
@Test void testListCrazy() throws IOException { String html = read("listcrazy.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableHtmlPlusMode(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("listcrazy-out.html", true); assertEquals(out, html); assertEquals(1, doc.getErrors().size()); }
@Test void testFosterForm() throws IOException { String html = read("fosterForm.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableHtmlPlusMode(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("fosterForm-out.html", true); assertEquals(out, html); assertNull(doc.getErrors()); }
@Test void testFormClosesAll() throws IOException { String html = read("formClosesAll.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("formClosesAll-out1.html", true); assertEquals(out, html); assertTrue(doc.check()); lagartoDOMBuilder.getConfig().setUseFosterRules(true); doc = lagartoDOMBuilder.parse(html); html = html(doc); out = read("formClosesAll-out2.html", true); assertEquals(out, html); }
@Test public void smtest() throws IOException { String html = read("smtest.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); lagartoDOMBuilder.enableHtmlPlusMode(); lagartoDOMBuilder.enableDebug(); Document doc = lagartoDOMBuilder.parse(html); html = html(doc); String out = read("smtest-out.html", true); // still not working out = StringUtil.remove(out, "<tbody>\n"); out = StringUtil.remove(out, "</tbody>\n"); html = StringUtil.replace(html, "<td>\nnotworking</td>", "<tr>\n<td>\nnotworking</td>\n</tr>"); assertEquals(out, html); }
@Test void testDecodingQuotes() throws IOException { String html = read("decode.html", false); LagartoDOMBuilder lagartoDOMBuilder = new LagartoDOMBuilder(); Document doc = lagartoDOMBuilder.parse(html); Element td1 = (Element) doc.getChild(0, 1, 1, 1, 1); String td1attr = td1.getAttribute("onclick"); Element td2 = (Element) doc.getChild(0, 1, 1, 3, 1); String td2attr = td2.getAttribute("onclick"); html = html(doc); String out = read("decode-out.html", true); assertEquals(out, html); // now re-parse the generated html String newHtml = doc.getHtml(); lagartoDOMBuilder = new LagartoDOMBuilder(); doc = lagartoDOMBuilder.parse(newHtml); td1 = (Element) doc.getChild(0, 1, 1, 1, 1); assertEquals(td1attr, td1.getAttribute("onclick")); td2 = (Element) doc.getChild(0, 1, 1, 3, 1); assertEquals(td2attr, td2.getAttribute("onclick")); }