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

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

Issue 1705123002: Add support for Schema.org/Recipe Base URL: https://github.com/chromium/dom-distiller.git@master
Patch Set: Created 4 years, 10 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.AnchorElement; 7 import com.google.gwt.dom.client.AnchorElement;
8 import com.google.gwt.dom.client.Element; 8 import com.google.gwt.dom.client.Element;
9 9
10 public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { 10 public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase {
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 assertEquals(1, images.length); 444 assertEquals(1, images.length);
445 assertEquals(expectedImage, images[0].url); 445 assertEquals(expectedImage, images[0].url);
446 MarkupParser.Article article = parser.getArticle(); 446 MarkupParser.Article article = parser.getArticle();
447 assertEquals(expectedDatePublished, article.publishedTime); 447 assertEquals(expectedDatePublished, article.publishedTime);
448 assertEquals("", article.expirationTime); 448 assertEquals("", article.expirationTime);
449 assertEquals(1, article.authors.length); 449 assertEquals(1, article.authors.length);
450 assertEquals(expectedAuthor, article.authors[0]); 450 assertEquals(expectedAuthor, article.authors[0]);
451 } 451 }
452 452
453 public void testSameItempropDifferentValues() { 453 public void testSameItempropDifferentValues() {
454 String expectedAuthor = "Author 1"; 454 String expectedAuthor = "Author 1, Author 2";
455 String htmlStr = 455 String htmlStr =
456 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" + 456 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" +
457 "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\"" + 457 "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\"" +
458 " itemprop=\"author\">Authors: " + 458 " itemprop=\"author\">Authors: " +
459 "<span itemprop=\"name\">" + expectedAuthor + 459 "<span itemprop=\"name\">Author 1" +
460 "</span>" + 460 "</span>" +
461 "<span itemprop=\"name\">Author 2" + 461 "<span itemprop=\"name\">Author 2" +
462 "</span>" + 462 "</span>" +
463 "</div>" + 463 "</div>" +
464 "</div>"; 464 "</div>";
465 465
466 Element rootDiv = TestUtil.createDiv(0); 466 Element rootDiv = TestUtil.createDiv(0);
467 rootDiv.setInnerHTML(htmlStr); 467 rootDiv.setInnerHTML(htmlStr);
468 mBody.appendChild(rootDiv); 468 mBody.appendChild(rootDiv);
469 469
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 534
535 parser = new SchemaOrgParserAccessor(mRoot); 535 parser = new SchemaOrgParserAccessor(mRoot);
536 assertEquals("", parser.getType()); 536 assertEquals("", parser.getType());
537 assertEquals(expectedAuthor, parser.getAuthor()); 537 assertEquals(expectedAuthor, parser.getAuthor());
538 assertEquals(null, parser.getArticle()); 538 assertEquals(null, parser.getArticle());
539 539
540 // Remove anchor from parent, so that other testcases won't be affected. 540 // Remove anchor from parent, so that other testcases won't be affected.
541 link.removeFromParent(); 541 link.removeFromParent();
542 } 542 }
543 543
544 public void testSingleRecipe() {
545 String htmlStr =
546 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Recipe\">" +
wychen 2016/03/14 22:58:42 Lots of duplicated text here. Maybe saving the com
547 "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" +
548 "<h2 itemprop=\"description\">" +
549 "Testing RECIPE with required recipe schema.org attributes" +
550 "</h2>" +
551 "<a itemprop=\"url\" " +
552 "href=\"http://dummy/test_article_with_embedded_items.html\" >" +
553 "test results" + "</a>" +
554 "<img itemprop=\"image\" " +
555 "src=\"http://dummy/test_article_with_embedded_items.jpeg\" />" +
556 "<div itemprop=\"author\">Whoever authored</div>" +
557 "<div itemprop=\"recipeYield\" content=\"4\">" +
558 "4 servings</div>" +
559 "<time itemprop=\"prepTime\" datetime=\"PT15M\">" +
560 "15 Minutes" + "</time>" +
561 "<time itemprop=\"cookTime\" datetime=\"PT45M\">" +
562 "45 Minutes" + "</time>" +
563 "<time itemprop=\"totalTime\" datetime=\"PT9H\">" +
564 "9 Hours</time>" +
565 "<span itemprop=\"ingredients\">4 bats</span>" +
566 "<span itemprop=\"ingredients\">1/4 milk</span>" +
567 "<span itemprop=\"ingredients\">1 rice</span>" +
568 "<span itemprop=\"ingredients\">1 salt</span>" +
569 "<span itemprop=\"recipeInstructions\">" +
570 "Mix everything and wait for cook</span>" +
571 "</div>";
572
573 Element rootDiv = TestUtil.createDiv(0);
574 rootDiv.setInnerHTML(htmlStr);
575 mBody.appendChild(rootDiv);
576 SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot);
577 String result = parser.getStructuredData();
578
579 String expected =
580 "<img src='http://dummy/test_article_with_embedded_items.jpeg' />" +
581 "<p>Author: Whoever authored</p><p>Description: " +
582 "Testing RECIPE with required recipe schema.org attributes</p>" +
583 "<p>Serves: 4 servings</p>" +
584 "<p>Prep time: 15 minute(s)</p>" +
585 "<p>Cook time: 45 minute(s)</p>" +
586 "<p>Total time: 9 hour(s)</p>" +
587 "Ingredients: <ul><li>4 bats</li>" +
588 "<li>1/4 milk</li>" +
589 "<li>1 rice</li>" +
590 "<li>1 salt</li>" +
591 "</ul><p>Instructions: <br />" +
592 "Mix everything and wait for cook</p>";
593 assertEquals(expected, result);
594 }
595
596 public void testSingleRecipeWithEmbeddedPerson() {
597 String htmlStr =
598 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Recipe\">" +
599 "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" +
600 "<h2 itemprop=\"description\">" +
601 "Testing RECIPE with required recipe schema.org attributes</ h2>" +
602 "<a itemprop=\"url\" href=\"" +
603 "http://dummy/test_article_with_embedded_items.html\">" +
604 "test results" + "</a>" +
605 "<img itemprop=\"image\" " +
606 "src=\"http://dummy/test_article_with_embedded_items.jpeg\" />" +
607 "<span itemprop=\"author\" " +
608 "itemscope itemtype=\"http://schema.org/Person\">" +
609 "<span itemprop=\"givenName\">Guest</span>" +
610 "<span itemprop=\"familyName\">Smith</span>" +
611 "</span>" +
612 "<div itemprop=\"recipeYield\" content=\"4\">4 servings</div>" +
613 "<time itemprop=\"prepTime\" datetime=\"PT15M\">1" +
614 "5 Minutes" + "</time>" +
615 "<time itemprop=\"cookTime\" datetime=\"PT45M\">" +
616 "45 Minutes" + "</time>" +
617 "<time itemprop=\"totalTime\" datetime=\"PT9H\">" +
618 "9 Hours</time>" +
619 "<span itemprop=\"ingredients\">4 bats</span>" +
620 "<span itemprop=\"ingredients\">1/4 milk</span>" +
621 "<span itemprop=\"ingredients\">1 rice</span>" +
622 "<span itemprop=\"ingredients\">1 salt</span>" +
623 "<span itemprop=\"recipeInstructions\">" +
624 "Mix everything and wait for cook</span>" +
625 "</div>";
626
627 Element rootDiv = TestUtil.createDiv(0);
628 rootDiv.setInnerHTML(htmlStr);
629 mBody.appendChild(rootDiv);
630 SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot);
631 String result = parser.getStructuredData();
632
633 String expected =
634 "<img src='http://dummy/test_article_with_embedded_items.jpeg' />" +
635 "<p>Author: <span>Guest Smith</span></p>" +
636 "<p>Description: " +
637 "Testing RECIPE with required recipe schema.org attributes</p>" +
638 "<p>Serves: 4 servings</p>" +
639 "<p>Prep time: 15 minute(s)</p>" +
640 "<p>Cook time: 45 minute(s)</p>" +
641 "<p>Total time: 9 hour(s)</p>" +
642 "Ingredients: <ul><li>4 bats</li>" +
643 "<li>1/4 milk</li>" +
644 "<li>1 rice</li>" +
645 "<li>1 salt</li>" +
646 "</ul><p>Instructions: <br />" +
647 "Mix everything and wait for cook</p>";
648 assertEquals(expected, result);
649 }
650
651 public void testMoreThanOneSchemaOrg() {
652 String htmlStr =
653 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Recipe\">" +
654 "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" +
655 "<h2 itemprop=\"description\">" +
656 "Testing RECIPE with required recipe schema.org attributes" +
657 "</h2>" +
658 "<a itemprop=\"url\" href=\"" +
659 "http://dummy/test_article_with_embedded_items.html\">" +
660 "test results" + "</a>" +
661 "<img itemprop=\"image\" src=\"" +
662 "http://dummy/test_article_with_embedded_items.jpeg\" />" +
663 "<div itemprop=\"author\">Whoever authored</div>" +
664 "<div itemprop=\"recipeYield\" content=\"4\">" +
665 "4 servings</div>" +
666 "<time itemprop=\"prepTime\" datetime=\"PT15M\">" +
667 "15 Minutes" + "</time>" +
668 "<time itemprop=\"cookTime\" datetime=\"PT45M\">" +
669 "45 Minutes" + "</time>" +
670 "<time itemprop=\"totalTime\" datetime=\"PT9H\">" +
671 "9 Hours</time>" +
672 "<span itemprop=\"ingredients\">4 bats</span>" +
673 "<span itemprop=\"ingredients\">1/4 milk</span>" +
674 "<span itemprop=\"ingredients\">1 rice</span>" +
675 "<span itemprop=\"ingredients\">1 salt</span>" +
676 "<span itemprop=\"recipeInstructions\">" +
677 "Mix everything and wait for cook</span>" +
678 "</div>" +
679 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" +
680 "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\" " +
681 "itemprop=\"author\">Creator: " +
682 "<span itemprop=\"name\"> User </span>" +
683 "</div>" +
684 "</div>";
685
686 Element rootDiv = TestUtil.createDiv(0);
687 rootDiv.setInnerHTML(htmlStr);
688 mBody.appendChild(rootDiv);
689 SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot);
690 String result = parser.getStructuredData();
691
692 assertEquals("", result);
693 }
694
695 public void testMultipleSchemaOrgWithMainEntity() {
696 String htmlStr =
697 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Recipe\">" +
698 "<meta itemprop=\"mainEntityOfPage\" content=\"true\">" +
699 "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" +
700 "<h2 itemprop=\"description\">" +
701 "Testing RECIPE with required recipe schema.org attributes" +
702 "</h2>" +
703 "<a itemprop=\"url\" href=\"" +
704 "http://dummy/test_article_with_embedded_items.html\">" +
705 "test results" + "</a>" +
706 "<img itemprop=\"image\" src=\"" +
707 "http://dummy/test_article_with_embedded_items.jpeg\" />" +
708 "<div itemprop=\"author\">Whoever authored</div>" +
709 "<div itemprop=\"recipeYield\" content=\"4\">" +
710 "4 servings</div>" +
711 "<time itemprop=\"prepTime\" datetime=\"PT15M\">" +
712 "15 Minutes" + "</time>" +
713 "<time itemprop=\"cookTime\" datetime=\"PT45M\">" +
714 "45 Minutes" + "</time>" +
715 "<time itemprop=\"totalTime\" datetime=\"PT9H\">" +
716 "9 Hours</time>" +
717 "<span itemprop=\"ingredients\">4 bats</span>" +
718 "<span itemprop=\"ingredients\">1/4 milk</span>" +
719 "<span itemprop=\"ingredients\">1 rice</span>" +
720 "<span itemprop=\"ingredients\">1 salt</span>" +
721 "<span itemprop=\"recipeInstructions\">" +
722 "Mix everything and wait for cook</span>" +
723 "</div>" +
724 "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" +
725 "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\" " +
726 "itemprop=\"author\">Creator: " +
727 "<span itemprop=\"name\"> User </span>" +
728 "</div>" +
729 "</div>";
730
731 Element rootDiv = TestUtil.createDiv(0);
732 rootDiv.setInnerHTML(htmlStr);
733 mBody.appendChild(rootDiv);
734 SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot);
735 String result = parser.getStructuredData();
736
737 String expected =
738 "<img src='http://dummy/test_article_with_embedded_items.jpeg' />" +
739 "<p>Author: Whoever authored</p><p>Description: " +
740 "Testing RECIPE with required recipe schema.org attributes" +
741 "</p>" +
742 "<p>Serves: 4 servings</p>" +
743 "<p>Prep time: 15 minute(s)</p>" +
744 "<p>Cook time: 45 minute(s)</p>" +
745 "<p>Total time: 9 hour(s)</p>" +
746 "Ingredients: <ul><li>4 bats</li>" +
747 "<li>1/4 milk</li>" +
748 "<li>1 rice</li>" +
749 "<li>1 salt</li>" +
750 "</ul><p>Instructions: <br />" +
751 "Mix everything and wait for cook</p>";
752 assertEquals(expected, result);
753 }
754
544 private void setItemScopeAndType(Element e, String type) { 755 private void setItemScopeAndType(Element e, String type) {
545 e.setAttribute("ITEMSCOPE", ""); 756 e.setAttribute("ITEMSCOPE", "");
546 e.setAttribute("ITEMTYPE", "http://schema.org/" + type); 757 e.setAttribute("ITEMTYPE", "http://schema.org/" + type);
547 } 758 }
548 759
549 private void setItemProp(Element e, String name) { 760 private void setItemProp(Element e, String name) {
550 e.setAttribute("itemprop", name); 761 e.setAttribute("itemprop", name);
551 } 762 }
552 } 763 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698