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

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: mdjones' comments addressed Created 4 years, 4 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
« no previous file with comments | « java/org/chromium/distiller/webdocument/WebImage.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.AnchorElement;
7 import com.google.gwt.dom.client.Style; 8 import com.google.gwt.dom.client.Style;
9 import org.chromium.distiller.webdocument.WebElement;
8 import org.chromium.distiller.webdocument.WebEmbed; 10 import org.chromium.distiller.webdocument.WebEmbed;
11 import org.chromium.distiller.webdocument.WebFigure;
9 import org.chromium.distiller.webdocument.WebImage; 12 import org.chromium.distiller.webdocument.WebImage;
10 import org.chromium.distiller.extractors.embeds.EmbedExtractor; 13 import org.chromium.distiller.extractors.embeds.EmbedExtractor;
11 import org.chromium.distiller.extractors.embeds.TwitterExtractor; 14 import org.chromium.distiller.extractors.embeds.TwitterExtractor;
12 import org.chromium.distiller.extractors.embeds.VimeoExtractor; 15 import org.chromium.distiller.extractors.embeds.VimeoExtractor;
13 import org.chromium.distiller.extractors.embeds.YouTubeExtractor; 16 import org.chromium.distiller.extractors.embeds.YouTubeExtractor;
14 import org.chromium.distiller.extractors.embeds.ImageExtractor; 17 import org.chromium.distiller.extractors.embeds.ImageExtractor;
15 18
16 import com.google.gwt.dom.client.Document; 19 import com.google.gwt.dom.client.Document;
17 import com.google.gwt.dom.client.Element; 20 import com.google.gwt.dom.client.Element;
18 import com.google.gwt.dom.client.IFrameElement; 21 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); 206 result = (WebEmbed) extractor.extract(nontweet);
204 assertNull(result); 207 assertNull(result);
205 } 208 }
206 209
207 public void testRenderedTwitterExtractor() { 210 public void testRenderedTwitterExtractor() {
208 IFrameElement twitter = TestUtil.createIframe(); 211 IFrameElement twitter = TestUtil.createIframe();
209 // Add iframe to body so its document is generated. 212 // Add iframe to body so its document is generated.
210 mBody.appendChild(twitter); 213 mBody.appendChild(twitter);
211 214
212 // This string represents a very simplified version of the twitter ifram e embed structure. 215 // This string represents a very simplified version of the twitter ifram e embed structure.
213 String iframeStructure = 216 String iframeStructure =
214 "<div class=\"media-forward root standalone-tweet ltr\"" + 217 "<div class=\"media-forward root standalone-tweet ltr\"" +
215 "data-iframe-title=\"Embedded Tweet\"" + 218 "data-iframe-title=\"Embedded Tweet\"" +
216 "data-scribe=\"page:tweet\">" + 219 "data-scribe=\"page:tweet\">" +
217 "<blockquote data-tweet-id=\"1234567890\"" + 220 "<blockquote data-tweet-id=\"1234567890\"" +
218 "data-scribe=\"section:subject\">" + 221 "data-scribe=\"section:subject\">" +
219 "<div class=\"cards-base cards-multimedia customisable-b order\"" + 222 "<div class=\"cards-base cards-multimedia customisable-b order\"" +
220 "data-scribe=\"component:card\"" + 223 "data-scribe=\"component:card\"" +
221 "data-video-content-id=\"0987654321\">" + 224 "data-video-content-id=\"0987654321\">" +
222 "</div>" + 225 "</div>" +
223 "<div class=\"header\">" + 226 "<div class=\"header\">" +
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 mBody.appendChild(image); 390 mBody.appendChild(image);
388 391
389 mHead.setInnerHTML("<base href=\"http://example.com/\">"); 392 mHead.setInnerHTML("<base href=\"http://example.com/\">");
390 393
391 EmbedExtractor extractor = new ImageExtractor(); 394 EmbedExtractor extractor = new ImageExtractor();
392 WebImage result = (WebImage) extractor.extract(image); 395 WebImage result = (WebImage) extractor.extract(image);
393 assertNotNull(result); 396 assertNotNull(result);
394 assertEquals("<img src=\"http://example.com/image.png\">", result.genera teOutput(false)); 397 assertEquals("<img src=\"http://example.com/image.png\">", result.genera teOutput(false));
395 } 398 }
396 399
400 private void extractLazilyLoadedFigure(String attr) {
401 ImageElement image = TestUtil.createImage();
402 image.setAttribute(attr, "image.png");
403 Element figure = Document.get().createElement("FIGURE");
404 figure.appendChild(image);
405
406 mBody.appendChild(figure);
407
408 mHead.setInnerHTML("<base href=\"http://example.com/\">");
409
410 EmbedExtractor extractor = new ImageExtractor();
411 WebFigure result = (WebFigure) extractor.extract(figure);
412 assertNotNull(result);
413 assertEquals("<figure><img src=\"http://example.com/image.png\"></figure >",
414 result.generateOutput(false));
415 }
416
397 public void testImageExtractorLazy() { 417 public void testImageExtractorLazy() {
398 extractLazilyLoadedImage("data-src"); 418 extractLazilyLoadedImage("data-src");
399 extractLazilyLoadedImage("datasrc"); 419 extractLazilyLoadedImage("datasrc");
400 extractLazilyLoadedImage("data-original"); 420 extractLazilyLoadedImage("data-original");
401 extractLazilyLoadedImage("data-url"); 421 extractLazilyLoadedImage("data-url");
422
423 extractLazilyLoadedFigure("data-src");
424 extractLazilyLoadedFigure("datasrc");
425 extractLazilyLoadedFigure("data-original");
426 extractLazilyLoadedFigure("data-url");
427 }
428
429 public void testFigureWithoutCaption() {
430 ImageElement image = TestUtil.createImage();
431 image.setSrc("http://wwww.example.com/image.jpeg");
432 image.setAttribute("width", "100");
433 image.setAttribute("height", "100");
434 Element figure = Document.get().createElement("FIGURE");
435 figure.appendChild(image);
436 mBody.appendChild(figure);
437
438 EmbedExtractor extractor = new ImageExtractor();
439 WebImage result = (WebImage) extractor.extract(figure);
440 String got = result.generateOutput(false);
441 String expected =
442 "<figure>" +
443 "<img src=\"http://wwww.example.com/image.jpeg\"" +
444 " width=\"100\" height=\"100\">" +
445 "</figure>";
446 assertNotNull(result);
447 assertEquals(100, result.getHeight());
448 assertEquals(100, result.getWidth());
449 assertEquals(expected, got);
450 }
451
452 public void testFigureWithoutImageAndCaption() {
453 Element figure = Document.get().createElement("FIGURE");
454 mBody.appendChild(figure);
455
456 EmbedExtractor extractor = new ImageExtractor();
457 WebImage result = (WebImage) extractor.extract(figure);
458 assertNull(result);
459 }
460
461 public void testFigureCaptionTextOnly() {
462 ImageElement image = TestUtil.createImage();
463 image.setSrc("http://wwww.example.com/image.jpeg");
464 image.setAttribute("width", "100");
465 image.setAttribute("height", "100");
466
467 Element figure = Document.get().createElement("FIGURE");
468 figure.appendChild(image);
469 Element figcaption = Document.get().createElement("FIGCAPTION");
470 figcaption.setInnerHTML("This is a caption");
471 figure.appendChild(figcaption);
472 mBody.appendChild(figure);
473
474 EmbedExtractor extractor = new ImageExtractor();
475 WebElement result = extractor.extract(figure);
476 assertEquals("This is a caption", result.generateOutput(true));
477 }
478
479 public void testFigureCaptionWithAnchor() {
480 mHead.setInnerHTML("<base href=\"http://example.com/\">");
481
482 ImageElement image = TestUtil.createImage();
483 image.setSrc("http://wwww.example.com/image.jpeg");
484 image.setAttribute("width", "100");
485 image.setAttribute("height", "100");
486
487 Element figure = Document.get().createElement("FIGURE");
488 figure.appendChild(image);
489 figure.setAttribute("class", "test");
490 figure.setAttribute("attribute", "value");
491
492 Element figcaption = Document.get().createElement("FIGCAPTION");
493 AnchorElement anchor = Document.get().createAnchorElement();
494 anchor.setHref("link_page.html");
495 anchor.setInnerHTML("caption link");
496 figcaption.appendChild(TestUtil.createText("This is a "));
497 figcaption.appendChild(anchor);
498 figure.appendChild(figcaption);
499 mBody.appendChild(figure);
500 String expected =
501 "<figure>" +
502 "<img src=\"http://wwww.example.com/image.jpeg\"" +
503 " width=\"100\" height=\"100\">" +
504 "<figcaption>This is a " +
505 "<a href=\"http://example.com/link_page.html\">caption link< /a>" +
506 "</figcaption>" +
507 "</figure>";
508 EmbedExtractor extractor = new ImageExtractor();
509 WebElement result = extractor.extract(figure);
510 assertEquals(expected, TestUtil.removeAllDirAttributes(
511 result.generateOutput(false)));
512 }
513
514 public void testFigureWithCaptionWithoutAnchor() {
515 ImageElement image = TestUtil.createImage();
516 image.setSrc("http://wwww.example.com/image.jpeg");
517 image.setAttribute("width", "100");
518 image.setAttribute("height", "100");
519 Element figure = Document.get().createElement("FIGURE");
520 figure.appendChild(image);
521 Element figcaption = Document.get().createElement("FIGCAPTION");
522 figcaption.setInnerHTML("<div><span>This is a caption</span></div>");
523 figure.appendChild(figcaption);
524 mBody.appendChild(figure);
525
526 EmbedExtractor extractor = new ImageExtractor();
527 WebImage result = (WebImage) extractor.extract(figure);
528 String expected =
529 "<figure>" +
530 "<img src=\"http://wwww.example.com/image.jpeg\"" +
531 " width=\"100\" height=\"100\">" +
532 "<figcaption>This is a caption</figcaption>" +
533 "</figure>";
534 assertNotNull(result);
535 assertEquals(100, result.getHeight());
536 assertEquals(100, result.getWidth());
537 assertEquals(expected, TestUtil.removeAllDirAttributes(
538 result.generateOutput(false)));
539 }
540
541 public void testDivCaption() {
542 ImageElement image = TestUtil.createImage();
543 image.setSrc("http://wwww.example.com/image.jpeg");
544 image.setAttribute("width", "100");
545 image.setAttribute("height", "100");
546
547 Element figure = Document.get().createElement("FIGURE");
548 figure.appendChild(image);
549 Element div = Document.get().createElement("DIV");
550 div.setInnerHTML("This is a caption");
551 figure.appendChild(div);
552 mBody.appendChild(figure);
553 String expected =
554 "<figure>" +
555 "<img src=\"http://wwww.example.com/image.jpeg\"" +
556 " width=\"100\" height=\"100\">" +
557 "<figcaption>This is a caption</figcaption>" +
558 "</figure>";
559 EmbedExtractor extractor = new ImageExtractor();
560 WebElement result = extractor.extract(figure);
561 assertEquals(expected, TestUtil.removeAllDirAttributes(
562 result.generateOutput(false)));
402 } 563 }
403 } 564 }
OLDNEW
« no previous file with comments | « java/org/chromium/distiller/webdocument/WebImage.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698