Index: javatests/org/chromium/distiller/EmbedExtractorTest.java |
diff --git a/javatests/org/chromium/distiller/EmbedExtractorTest.java b/javatests/org/chromium/distiller/EmbedExtractorTest.java |
index 2b7a2f886cb30bff60a738b98bd8f9f571c9d97c..40d7638f9874295b924d39b6a4846a617f220933 100644 |
--- a/javatests/org/chromium/distiller/EmbedExtractorTest.java |
+++ b/javatests/org/chromium/distiller/EmbedExtractorTest.java |
@@ -5,7 +5,9 @@ |
package org.chromium.distiller; |
import com.google.gwt.dom.client.Style; |
+import org.chromium.distiller.webdocument.WebElement; |
import org.chromium.distiller.webdocument.WebEmbed; |
+import org.chromium.distiller.webdocument.WebFigure; |
import org.chromium.distiller.webdocument.WebImage; |
import org.chromium.distiller.extractors.embeds.EmbedExtractor; |
import org.chromium.distiller.extractors.embeds.TwitterExtractor; |
@@ -210,7 +212,7 @@ public class EmbedExtractorTest extends DomDistillerJsTestCase { |
mBody.appendChild(twitter); |
// This string represents a very simplified version of the twitter iframe embed structure. |
- String iframeStructure = |
+ String iframeStructure = |
"<div class=\"media-forward root standalone-tweet ltr\"" + |
"data-iframe-title=\"Embedded Tweet\"" + |
"data-scribe=\"page:tweet\">" + |
@@ -394,10 +396,157 @@ public class EmbedExtractorTest extends DomDistillerJsTestCase { |
assertEquals("<img src=\"http://example.com/image.png\">", result.generateOutput(false)); |
} |
+ private void extractLazilyLoadedFigure(String attr) { |
+ ImageElement image = TestUtil.createImage(); |
+ image.setAttribute(attr, "image.png"); |
+ Element figure = Document.get().createElement("FIGURE"); |
+ figure.appendChild(image); |
+ |
+ mBody.appendChild(figure); |
+ |
+ mHead.setInnerHTML("<base href=\"http://example.com/\">"); |
+ |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebFigure result = (WebFigure) extractor.extract(figure); |
+ assertNotNull(result); |
+ assertEquals("<figure><img src=\"http://example.com/image.png\"></figure>", |
+ result.generateOutput(false)); |
+ } |
+ |
public void testImageExtractorLazy() { |
extractLazilyLoadedImage("data-src"); |
extractLazilyLoadedImage("datasrc"); |
extractLazilyLoadedImage("data-original"); |
extractLazilyLoadedImage("data-url"); |
+ |
+ extractLazilyLoadedFigure("data-src"); |
+ extractLazilyLoadedFigure("datasrc"); |
+ extractLazilyLoadedFigure("data-original"); |
+ extractLazilyLoadedFigure("data-url"); |
+ } |
+ |
+ public void testFigureWithoutCaption() { |
+ ImageElement image = TestUtil.createImage(); |
+ image.setSrc("http://wwww.example.com/image.jpeg"); |
+ image.setAttribute("width", "100"); |
+ image.setAttribute("height", "100"); |
+ Element figure = Document.get().createElement("FIGURE"); |
+ figure.appendChild(image); |
+ mBody.appendChild(figure); |
+ |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebImage result = (WebImage) extractor.extract(figure); |
+ String got = result.generateOutput(false); |
+ String expected = |
+ "<figure>" + |
+ "<img src=\"http://wwww.example.com/image.jpeg\"" + |
+ " width=\"100\" height=\"100\">" + |
+ "</figure>"; |
+ assertNotNull(result); |
+ assertEquals(100, result.getHeight()); |
+ assertEquals(100, result.getWidth()); |
+ assertEquals(expected, got); |
+ } |
+ |
+ public void testFigureWithoutImageAndCaption() { |
+ Element figure = Document.get().createElement("FIGURE"); |
+ mBody.appendChild(figure); |
+ |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebImage result = (WebImage) extractor.extract(figure); |
+ assertNull(result); |
+ } |
+ |
+ public void testFigureCaptionTextOnly() { |
+ ImageElement image = TestUtil.createImage(); |
+ image.setSrc("http://wwww.example.com/image.jpeg"); |
+ image.setAttribute("width", "100"); |
+ image.setAttribute("height", "100"); |
+ |
+ Element figure = Document.get().createElement("FIGURE"); |
+ figure.appendChild(image); |
+ Element figcaption = Document.get().createElement("FIGCAPTION"); |
+ figcaption.setInnerHTML("This is a caption"); |
+ figure.appendChild(figcaption); |
+ mBody.appendChild(figure); |
+ |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebElement result = extractor.extract(figure); |
+ assertEquals("This is a caption", result.generateOutput(true)); |
+ } |
+ |
+ public void testFigureCaptionWithAnchor() { |
+ ImageElement image = TestUtil.createImage(); |
+ image.setSrc("http://wwww.example.com/image.jpeg"); |
+ image.setAttribute("width", "100"); |
+ image.setAttribute("height", "100"); |
+ |
+ Element figure = Document.get().createElement("FIGURE"); |
+ figure.appendChild(image); |
+ Element figcaption = Document.get().createElement("FIGCAPTION"); |
+ Element anchor = Document.get().createAnchorElement(); |
wychen
2016/06/07 17:39:19
Put an href and see if it gets converted.
Also, p
marcelorcorrea
2016/06/08 14:34:15
Done.
|
+ anchor.setInnerHTML("This is a caption"); |
+ figcaption.appendChild(anchor); |
+ figure.appendChild(figcaption); |
+ mBody.appendChild(figure); |
+ String expected = |
+ "<figure>" + |
+ "<img src=\"http://wwww.example.com/image.jpeg\"" + |
+ " width=\"100\" height=\"100\">" + |
+ "<figcaption><a>This is a caption</a></figcaption>" + |
+ "</figure>"; |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebElement result = extractor.extract(figure); |
+ assertEquals(expected, result.generateOutput(false)); |
+ } |
+ |
+ public void testFigureWithCaptionWithoutAnchor() { |
+ ImageElement image = TestUtil.createImage(); |
+ image.setSrc("http://wwww.example.com/image.jpeg"); |
+ image.setAttribute("width", "100"); |
+ image.setAttribute("height", "100"); |
+ Element figure = Document.get().createElement("FIGURE"); |
+ figure.appendChild(image); |
+ Element figcaption = Document.get().createElement("FIGCAPTION"); |
+ figcaption.setInnerHTML("This is a caption"); |
wychen
2016/06/07 17:39:19
Put this inside other elements, and make sure it's
marcelorcorrea
2016/06/08 14:34:15
Done.
|
+ figure.appendChild(figcaption); |
+ mBody.appendChild(figure); |
+ |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebImage result = (WebImage) extractor.extract(figure); |
+ String got = result.generateOutput(false); |
+ String expected = |
+ "<figure>" + |
+ "<img src=\"http://wwww.example.com/image.jpeg\"" + |
+ " width=\"100\" height=\"100\">" + |
+ "<figcaption>This is a caption</figcaption>" + |
+ "</figure>"; |
+ assertNotNull(result); |
+ assertEquals(100, result.getHeight()); |
+ assertEquals(100, result.getWidth()); |
+ assertEquals(expected, got); |
+ } |
+ |
+ public void testDivCaption() { |
+ ImageElement image = TestUtil.createImage(); |
+ image.setSrc("http://wwww.example.com/image.jpeg"); |
+ image.setAttribute("width", "100"); |
+ image.setAttribute("height", "100"); |
+ |
+ Element figure = Document.get().createElement("FIGURE"); |
+ figure.appendChild(image); |
+ Element div = Document.get().createElement("DIV"); |
+ div.setInnerHTML("This is a caption"); |
+ figure.appendChild(div); |
+ mBody.appendChild(figure); |
+ String expected = |
+ "<figure>" + |
+ "<img src=\"http://wwww.example.com/image.jpeg\"" + |
+ " width=\"100\" height=\"100\">" + |
+ "<figcaption>This is a caption</figcaption>" + |
+ "</figure>"; |
+ EmbedExtractor extractor = new ImageExtractor(); |
+ WebElement result = extractor.extract(figure); |
+ assertEquals(expected, result.generateOutput(false)); |
} |
} |