Chromium Code Reviews| 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)); |
| } |
| } |