Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(33)

Side by Side Diff: javatests/org/chromium/distiller/EmbedExtractorTest.java

Issue 2020403002: Add support for figure element (Closed) Base URL: https://github.com/chromium/dom-distiller.git@master
Patch Set: added support for lazily-loaded images in figures Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.distiller; 5 package org.chromium.distiller;
6 6
7 import com.google.gwt.dom.client.Style; 7 import com.google.gwt.dom.client.Style;
8 import org.chromium.distiller.webdocument.WebElement;
8 import org.chromium.distiller.webdocument.WebEmbed; 9 import org.chromium.distiller.webdocument.WebEmbed;
10 import org.chromium.distiller.webdocument.WebFigure;
9 import org.chromium.distiller.webdocument.WebImage; 11 import org.chromium.distiller.webdocument.WebImage;
10 import org.chromium.distiller.extractors.embeds.EmbedExtractor; 12 import org.chromium.distiller.extractors.embeds.EmbedExtractor;
11 import org.chromium.distiller.extractors.embeds.TwitterExtractor; 13 import org.chromium.distiller.extractors.embeds.TwitterExtractor;
12 import org.chromium.distiller.extractors.embeds.VimeoExtractor; 14 import org.chromium.distiller.extractors.embeds.VimeoExtractor;
13 import org.chromium.distiller.extractors.embeds.YouTubeExtractor; 15 import org.chromium.distiller.extractors.embeds.YouTubeExtractor;
14 import org.chromium.distiller.extractors.embeds.ImageExtractor; 16 import org.chromium.distiller.extractors.embeds.ImageExtractor;
15 17
16 import com.google.gwt.dom.client.Document; 18 import com.google.gwt.dom.client.Document;
17 import com.google.gwt.dom.client.Element; 19 import com.google.gwt.dom.client.Element;
18 import com.google.gwt.dom.client.IFrameElement; 20 import com.google.gwt.dom.client.IFrameElement;
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 result = (WebEmbed) extractor.extract(nontweet); 205 result = (WebEmbed) extractor.extract(nontweet);
204 assertNull(result); 206 assertNull(result);
205 } 207 }
206 208
207 public void testRenderedTwitterExtractor() { 209 public void testRenderedTwitterExtractor() {
208 IFrameElement twitter = TestUtil.createIframe(); 210 IFrameElement twitter = TestUtil.createIframe();
209 // Add iframe to body so its document is generated. 211 // Add iframe to body so its document is generated.
210 mBody.appendChild(twitter); 212 mBody.appendChild(twitter);
211 213
212 // This string represents a very simplified version of the twitter ifram e embed structure. 214 // This string represents a very simplified version of the twitter ifram e embed structure.
213 String iframeStructure = 215 String iframeStructure =
214 "<div class=\"media-forward root standalone-tweet ltr\"" + 216 "<div class=\"media-forward root standalone-tweet ltr\"" +
215 "data-iframe-title=\"Embedded Tweet\"" + 217 "data-iframe-title=\"Embedded Tweet\"" +
216 "data-scribe=\"page:tweet\">" + 218 "data-scribe=\"page:tweet\">" +
217 "<blockquote data-tweet-id=\"1234567890\"" + 219 "<blockquote data-tweet-id=\"1234567890\"" +
218 "data-scribe=\"section:subject\">" + 220 "data-scribe=\"section:subject\">" +
219 "<div class=\"cards-base cards-multimedia customisable-b order\"" + 221 "<div class=\"cards-base cards-multimedia customisable-b order\"" +
220 "data-scribe=\"component:card\"" + 222 "data-scribe=\"component:card\"" +
221 "data-video-content-id=\"0987654321\">" + 223 "data-video-content-id=\"0987654321\">" +
222 "</div>" + 224 "</div>" +
223 "<div class=\"header\">" + 225 "<div class=\"header\">" +
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 mBody.appendChild(image); 389 mBody.appendChild(image);
388 390
389 mHead.setInnerHTML("<base href=\"http://example.com/\">"); 391 mHead.setInnerHTML("<base href=\"http://example.com/\">");
390 392
391 EmbedExtractor extractor = new ImageExtractor(); 393 EmbedExtractor extractor = new ImageExtractor();
392 WebImage result = (WebImage) extractor.extract(image); 394 WebImage result = (WebImage) extractor.extract(image);
393 assertNotNull(result); 395 assertNotNull(result);
394 assertEquals("<img src=\"http://example.com/image.png\">", result.genera teOutput(false)); 396 assertEquals("<img src=\"http://example.com/image.png\">", result.genera teOutput(false));
395 } 397 }
396 398
399 private void extractLazilyLoadedFigure(String attr) {
400 ImageElement image = TestUtil.createImage();
401 image.setAttribute(attr, "image.png");
402 Element figure = Document.get().createElement("FIGURE");
403 figure.appendChild(image);
404
405 mBody.appendChild(figure);
406
407 mHead.setInnerHTML("<base href=\"http://example.com/\">");
408
409 EmbedExtractor extractor = new ImageExtractor();
410 WebFigure result = (WebFigure) extractor.extract(figure);
411 assertNotNull(result);
412 assertEquals("<figure><img src=\"http://example.com/image.png\"></figure >",
413 result.generateOutput(false));
414 }
415
397 public void testImageExtractorLazy() { 416 public void testImageExtractorLazy() {
398 extractLazilyLoadedImage("data-src"); 417 extractLazilyLoadedImage("data-src");
399 extractLazilyLoadedImage("datasrc"); 418 extractLazilyLoadedImage("datasrc");
400 extractLazilyLoadedImage("data-original"); 419 extractLazilyLoadedImage("data-original");
401 extractLazilyLoadedImage("data-url"); 420 extractLazilyLoadedImage("data-url");
421
422 extractLazilyLoadedFigure("data-src");
423 extractLazilyLoadedFigure("datasrc");
424 extractLazilyLoadedFigure("data-original");
425 extractLazilyLoadedFigure("data-url");
426 }
427
428 public void testFigureWithoutCaption() {
429 ImageElement image = TestUtil.createImage();
430 image.setSrc("http://wwww.example.com/image.jpeg");
431 image.setAttribute("width", "100");
432 image.setAttribute("height", "100");
433 Element figure = Document.get().createElement("FIGURE");
434 figure.appendChild(image);
435 mBody.appendChild(figure);
436
437 EmbedExtractor extractor = new ImageExtractor();
438 WebImage result = (WebImage) extractor.extract(figure);
439 String got = result.generateOutput(false);
440 String expected =
441 "<figure>" +
442 "<img src=\"http://wwww.example.com/image.jpeg\"" +
443 " width=\"100\" height=\"100\">" +
444 "</figure>";
445 assertNotNull(result);
446 assertEquals(100, result.getHeight());
447 assertEquals(100, result.getWidth());
448 assertEquals(expected, got);
449 }
450
451 public void testFigureWithoutImageAndCaption() {
452 Element figure = Document.get().createElement("FIGURE");
453 mBody.appendChild(figure);
454
455 EmbedExtractor extractor = new ImageExtractor();
456 WebImage result = (WebImage) extractor.extract(figure);
457 assertNull(result);
458 }
459
460 public void testFigureCaptionTextOnly() {
461 ImageElement image = TestUtil.createImage();
462 image.setSrc("http://wwww.example.com/image.jpeg");
463 image.setAttribute("width", "100");
464 image.setAttribute("height", "100");
465
466 Element figure = Document.get().createElement("FIGURE");
467 figure.appendChild(image);
468 Element figcaption = Document.get().createElement("FIGCAPTION");
469 figcaption.setInnerHTML("This is a caption");
470 figure.appendChild(figcaption);
471 mBody.appendChild(figure);
472
473 EmbedExtractor extractor = new ImageExtractor();
474 WebElement result = extractor.extract(figure);
475 assertEquals("This is a caption", result.generateOutput(true));
476 }
477
478 public void testFigureCaptionWithAnchor() {
479 ImageElement image = TestUtil.createImage();
480 image.setSrc("http://wwww.example.com/image.jpeg");
481 image.setAttribute("width", "100");
482 image.setAttribute("height", "100");
483
484 Element figure = Document.get().createElement("FIGURE");
485 figure.appendChild(image);
486 Element figcaption = Document.get().createElement("FIGCAPTION");
487 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.
488 anchor.setInnerHTML("This is a caption");
489 figcaption.appendChild(anchor);
490 figure.appendChild(figcaption);
491 mBody.appendChild(figure);
492 String expected =
493 "<figure>" +
494 "<img src=\"http://wwww.example.com/image.jpeg\"" +
495 " width=\"100\" height=\"100\">" +
496 "<figcaption><a>This is a caption</a></figcaption>" +
497 "</figure>";
498 EmbedExtractor extractor = new ImageExtractor();
499 WebElement result = extractor.extract(figure);
500 assertEquals(expected, result.generateOutput(false));
501 }
502
503 public void testFigureWithCaptionWithoutAnchor() {
504 ImageElement image = TestUtil.createImage();
505 image.setSrc("http://wwww.example.com/image.jpeg");
506 image.setAttribute("width", "100");
507 image.setAttribute("height", "100");
508 Element figure = Document.get().createElement("FIGURE");
509 figure.appendChild(image);
510 Element figcaption = Document.get().createElement("FIGCAPTION");
511 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.
512 figure.appendChild(figcaption);
513 mBody.appendChild(figure);
514
515 EmbedExtractor extractor = new ImageExtractor();
516 WebImage result = (WebImage) extractor.extract(figure);
517 String got = result.generateOutput(false);
518 String expected =
519 "<figure>" +
520 "<img src=\"http://wwww.example.com/image.jpeg\"" +
521 " width=\"100\" height=\"100\">" +
522 "<figcaption>This is a caption</figcaption>" +
523 "</figure>";
524 assertNotNull(result);
525 assertEquals(100, result.getHeight());
526 assertEquals(100, result.getWidth());
527 assertEquals(expected, got);
528 }
529
530 public void testDivCaption() {
531 ImageElement image = TestUtil.createImage();
532 image.setSrc("http://wwww.example.com/image.jpeg");
533 image.setAttribute("width", "100");
534 image.setAttribute("height", "100");
535
536 Element figure = Document.get().createElement("FIGURE");
537 figure.appendChild(image);
538 Element div = Document.get().createElement("DIV");
539 div.setInnerHTML("This is a caption");
540 figure.appendChild(div);
541 mBody.appendChild(figure);
542 String expected =
543 "<figure>" +
544 "<img src=\"http://wwww.example.com/image.jpeg\"" +
545 " width=\"100\" height=\"100\">" +
546 "<figcaption>This is a caption</figcaption>" +
547 "</figure>";
548 EmbedExtractor extractor = new ImageExtractor();
549 WebElement result = extractor.extract(figure);
550 assertEquals(expected, result.generateOutput(false));
402 } 551 }
403 } 552 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698