Index: javatests/org/chromium/distiller/webdocument/filters/NestedElementRetainerTest.java |
diff --git a/javatests/org/chromium/distiller/webdocument/filters/NestedElementRetainerTest.java b/javatests/org/chromium/distiller/webdocument/filters/NestedElementRetainerTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5627555327b897c95368fc14c37dbf84cbdf9ae8 |
--- /dev/null |
+++ b/javatests/org/chromium/distiller/webdocument/filters/NestedElementRetainerTest.java |
@@ -0,0 +1,185 @@ |
+package org.chromium.distiller.webdocument.filters; |
+ |
+import org.chromium.distiller.DomDistillerJsTestCase; |
+import org.chromium.distiller.webdocument.TestWebDocumentBuilder; |
+import org.chromium.distiller.webdocument.WebDocument; |
+import org.chromium.distiller.webdocument.WebTag; |
+ |
+public class NestedElementRetainerTest extends DomDistillerJsTestCase { |
+ public void testOrderedListStructure() { |
+ TestWebDocumentBuilder builder = new TestWebDocumentBuilder(); |
+ WebTag olStart = builder.addTagStart(); |
+ WebTag liStart = builder.addTagStart(); |
+ builder.addText("text 1").setIsContent(false); |
+ WebTag liEnd = builder.addTagEnd(); |
+ WebTag liStart2 = builder.addTagStart(); |
+ builder.addText("text 2").setIsContent(false); |
+ WebTag liEnd2 = builder.addTagEnd(); |
+ WebTag liStart3 = builder.addTagStart(); |
+ builder.addText("text 3").setIsContent(true); |
+ WebTag liEnd3 = builder.addTagEnd(); |
+ WebTag olEnd = builder.addTagEnd(); |
+ WebDocument document = builder.build(); |
+ NestedElementRetainer.process(document); |
+ assertTrue(olStart.getIsContent()); |
+ assertFalse(liStart.getIsContent()); |
+ assertFalse(liEnd.getIsContent()); |
+ assertFalse(liStart2.getIsContent()); |
+ assertFalse(liEnd2.getIsContent()); |
+ assertTrue(liStart3.getIsContent()); |
+ assertTrue(liEnd3.getIsContent()); |
+ assertTrue(olEnd.getIsContent()); |
+ } |
+ |
+ public void testUnorderedListStructure() { |
+ TestWebDocumentBuilder builder = new TestWebDocumentBuilder(); |
+ WebTag ulStart = builder.addTagStart(); |
+ WebTag liStart = builder.addTagStart(); |
+ builder.addText("text 1").setIsContent(true); |
+ WebTag ulStart2 = builder.addTagStart(); |
+ WebTag liStart2 = builder.addTagStart(); |
+ builder.addText("text 2").setIsContent(false); |
+ WebTag liEnd2 = builder.addTagEnd(); |
+ WebTag ulEnd2 = builder.addTagEnd(); |
+ WebTag liEnd = builder.addTagEnd(); |
+ WebTag ulEnd = builder.addTagEnd(); |
+ WebDocument document = builder.build(); |
+ |
+ NestedElementRetainer.process(document); |
+ assertTrue(ulStart.getIsContent()); |
+ assertTrue(liStart.getIsContent()); |
+ assertFalse(ulStart2.getIsContent()); |
+ assertFalse(liStart2.getIsContent()); |
+ assertFalse(liEnd2.getIsContent()); |
+ assertFalse(ulEnd2.getIsContent()); |
+ assertTrue(liEnd.getIsContent()); |
+ assertTrue(ulEnd.getIsContent()); |
+ |
+ } |
+ |
+ public void testContentFromListStrcture() { |
+ TestWebDocumentBuilder builder = new TestWebDocumentBuilder(); |
+ WebTag olStartLevel1 = builder.addTagStart(); |
+ WebTag olStartLevel2 = builder.addTagStart(); |
+ WebTag liStart1 = builder.addTagStart(); |
+ builder.addText("text 1").setIsContent(false); |
+ WebTag liEnd1 = builder.addTagEnd(); |
+ WebTag olStartLevel3 = builder.addTagStart(); |
+ WebTag liStart2 = builder.addTagStart(); |
+ builder.addText("text 2").setIsContent(true); |
+ WebTag liEnd2 = builder.addTagEnd(); |
+ WebTag olStartLevel4 = builder.addTagStart(); |
+ WebTag liStart3 = builder.addTagStart(); |
+ builder.addText("text 3").setIsContent(false); |
+ WebTag liEnd3 = builder.addTagEnd(); |
+ WebTag liStart4 = builder.addTagStart(); |
+ builder.addText("text 4").setIsContent(false); |
+ WebTag liEnd4 = builder.addTagEnd(); |
+ WebTag liStart5 = builder.addTagStart(); |
+ builder.addText("text 5").setIsContent(false); |
+ WebTag liEnd5 = builder.addTagEnd(); |
+ WebTag liStart6 = builder.addTagStart(); |
+ builder.addText("text 6").setIsContent(false); |
+ WebTag liEnd6 = builder.addTagEnd(); |
+ WebTag olEndLevel4 = builder.addTagEnd(); |
+ WebTag olEndLevel3 = builder.addTagEnd(); |
+ WebTag liStart7 = builder.addTagStart(); |
+ builder.addText("text 7").setIsContent(true); |
+ WebTag liEnd7 = builder.addTagEnd(); |
+ WebTag olEndLevel2 = builder.addTagEnd(); |
+ WebTag olEndLevel1 = builder.addTagEnd(); |
+ WebDocument document = builder.build(); |
+ |
+ NestedElementRetainer.process(document); |
+ assertTrue(olStartLevel1.getIsContent()); |
+ assertTrue(olStartLevel2.getIsContent()); |
+ assertFalse(liStart1.getIsContent()); |
+ assertFalse(liEnd1.getIsContent()); |
+ assertTrue(olStartLevel3.getIsContent()); |
+ assertTrue(liStart2.getIsContent()); |
+ assertTrue(liEnd2.getIsContent()); |
+ assertFalse(olStartLevel4.getIsContent()); |
+ assertFalse(liStart3.getIsContent()); |
+ assertFalse(liEnd3.getIsContent()); |
+ assertFalse(liStart4.getIsContent()); |
+ assertFalse(liEnd4.getIsContent()); |
+ assertFalse(liStart5.getIsContent()); |
+ assertFalse(liEnd5.getIsContent()); |
+ assertFalse(liStart6.getIsContent()); |
+ assertFalse(liEnd6.getIsContent()); |
+ assertFalse(olEndLevel4.getIsContent()); |
+ assertTrue(olEndLevel3.getIsContent()); |
+ assertTrue(liStart7.getIsContent()); |
+ assertTrue(liEnd7.getIsContent()); |
+ assertTrue(olEndLevel2.getIsContent()); |
+ assertTrue(olEndLevel1.getIsContent()); |
+ } |
+ |
+ public void testNoContentFromListStructure() { |
+ TestWebDocumentBuilder builder = new TestWebDocumentBuilder(); |
+ WebTag olStartLevel1 = builder.addTagStart(); |
+ WebTag olStartLevel2 = builder.addTagStart(); |
+ WebTag liStart1 = builder.addTagStart(); |
+ builder.addText("text 1").setIsContent(false); |
+ WebTag liEnd1 = builder.addTagEnd(); |
+ WebTag olStartLevel4 = builder.addTagStart(); |
+ WebTag liStart3 = builder.addTagStart(); |
+ builder.addText("text 3").setIsContent(false); |
+ WebTag liEnd3 = builder.addTagEnd(); |
+ WebTag liStart4 = builder.addTagStart(); |
+ builder.addText("text 4").setIsContent(false); |
+ WebTag liEnd4 = builder.addTagEnd(); |
+ WebTag liStart5 = builder.addTagStart(); |
+ builder.addText("text 5").setIsContent(false); |
+ WebTag liEnd5 = builder.addTagEnd(); |
+ WebTag liStart6 = builder.addTagStart(); |
+ builder.addText("text 6").setIsContent(false); |
+ WebTag liEnd6 = builder.addTagEnd(); |
+ WebTag olEndLevel4 = builder.addTagEnd(); |
+ WebTag olEndLevel2 = builder.addTagEnd(); |
+ WebTag olEndLevel1 = builder.addTagEnd(); |
+ WebDocument document = builder.build(); |
+ |
+ NestedElementRetainer.process(document); |
+ assertFalse(olStartLevel1.getIsContent()); |
+ assertFalse(olStartLevel2.getIsContent()); |
+ assertFalse(liStart1.getIsContent()); |
+ assertFalse(liEnd1.getIsContent()); |
+ assertFalse(olStartLevel4.getIsContent()); |
+ assertFalse(liStart3.getIsContent()); |
+ assertFalse(liEnd3.getIsContent()); |
+ assertFalse(liStart4.getIsContent()); |
+ assertFalse(liEnd4.getIsContent()); |
+ assertFalse(liStart5.getIsContent()); |
+ assertFalse(liEnd5.getIsContent()); |
+ assertFalse(liStart6.getIsContent()); |
+ assertFalse(liEnd6.getIsContent()); |
+ assertFalse(olEndLevel4.getIsContent()); |
+ assertFalse(olEndLevel2.getIsContent()); |
+ assertFalse(olEndLevel1.getIsContent()); |
+ } |
+ |
+ public void testNestedListStructure() { |
+ TestWebDocumentBuilder builder = new TestWebDocumentBuilder(); |
+ WebTag ulStart = builder.addTagStart(); |
+ WebTag liStart = builder.addTagStart(); |
+ builder.addText("text 1").setIsContent(true); |
+ WebTag liEnd = builder.addTagEnd(); |
+ WebTag olStart = builder.addTagStart(); |
+ WebTag liOLStart = builder.addTagStart(); |
+ builder.addText("text 2").setIsContent(true); |
+ WebTag liOLEnd = builder.addTagEnd(); |
+ WebTag olEnd = builder.addTagEnd(); |
+ WebTag ulEnd = builder.addTagEnd(); |
+ WebDocument document = builder.build(); |
+ NestedElementRetainer.process(document); |
+ assertTrue(ulStart.getIsContent()); |
+ assertTrue(liStart.getIsContent()); |
+ assertTrue(olStart.getIsContent()); |
+ assertTrue(liOLStart.getIsContent()); |
+ assertTrue(liOLEnd.getIsContent()); |
+ assertTrue(olEnd.getIsContent()); |
+ assertTrue(liEnd.getIsContent()); |
+ assertTrue(ulEnd.getIsContent()); |
+ } |
+} |