Index: javatests/org/chromium/distiller/SchemaOrgParserAccessorTest.java |
diff --git a/javatests/org/chromium/distiller/SchemaOrgParserAccessorTest.java b/javatests/org/chromium/distiller/SchemaOrgParserAccessorTest.java |
index eca7267b06f30ec5483a2f76055f25ad11d46e5b..6d10fc9f0fe84a79d19335a1a605040455e279d7 100644 |
--- a/javatests/org/chromium/distiller/SchemaOrgParserAccessorTest.java |
+++ b/javatests/org/chromium/distiller/SchemaOrgParserAccessorTest.java |
@@ -9,19 +9,42 @@ import com.google.gwt.dom.client.Element; |
public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
+ private static final String ITEM_TYPE = "itemscope itemtype=\"" + |
+ "http://schema.org/"; |
+ private static final String ITEM_TYPE_ARTICLE = ITEM_TYPE + |
+ "Article\""; |
+ private static final String ITEM_TYPE_PERSON = ITEM_TYPE + |
+ "Person\""; |
+ private static final String ITEM_TYPE_RECIPE = ITEM_TYPE + |
+ "Recipe\""; |
+ private static final String ITEM_TYPE_MOVIE = ITEM_TYPE + |
+ "Movie\""; |
+ private static final String ITEM_TYPE_IMAGE_OBJECT = ITEM_TYPE + |
+ "ImageObject\""; |
+ private static final String ITEM_TYPE_ORGANIZATION = ITEM_TYPE + |
+ "Organization\""; |
+ private static final String ITEM_TYPE_AGGREGATE_RATING = |
+ ITEM_TYPE + "AggregateRating\""; |
+ private static final String RECIPE_DESCRIPTION = |
+ "Testing RECIPE with required recipe schema.org attributes"; |
+ private static final String RECIPE_URL = |
+ "http://dummy/test_article_with_embedded_items.html"; |
+ private static final String RECIPE_IMAGE_URL = |
+ "http://dummy/test_article_with_embedded_items.jpeg"; |
+ |
public void testImageWithEmbeddedPublisher() { |
String expectedUrl = "http://dummy/test_image_with_embedded_item.html"; |
String expectedFormat = "jpeg"; |
String expectedCaption = "A test for IMAGE with embedded publisher"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/ImageObject\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_IMAGE_OBJECT + ">" + |
"<h1 itemprop=\"headline\">Testcase for IMAGE" + |
"</h1>" + |
"<h2 itemprop=\"description\">Testing IMAGE with embedded publisher" + |
"</h2>" + |
"<a itemprop=\"contentUrl\" href=\"" + expectedUrl + "\">test results" + |
"</a>" + |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Organization\"" + |
+ "<div id=\"2\"" + ITEM_TYPE_ORGANIZATION + "" + |
" itemprop=\"publisher\">Publisher: " + |
"<span itemprop=\"name\">Whatever Image Incorporated" + |
"</span>" + |
@@ -74,7 +97,7 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
String expectedFormat2 = "gif"; |
String expectedCaption2 = "A test for 2nd IMAGE"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/ImageObject\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_IMAGE_OBJECT + ">" + |
"<h1 itemprop=\"headline\">Testcase for 1st IMAGE" + |
"</h1>" + |
"<h2 itemprop=\"description\">Testing 1st IMAGE" + |
@@ -97,7 +120,7 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
"<meta itemprop=\"width\" content=\"400\">" + |
"<meta itemprop=\"height\" content=\"300\">" + |
"</div>" + |
- "<div id=\"4\" itemscope itemtype=\"http://schema.org/ImageObject\">" + |
+ "<div id=\"4\" " + ITEM_TYPE_IMAGE_OBJECT + ">" + |
"<h3 itemprop=\"headline\">Testcase for 2nd IMAGE" + |
"</h3>" + |
"<h4 itemprop=\"description\">Testing 2nd IMAGE" + |
@@ -160,8 +183,6 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
public void testArticleWithEmbeddedAuthorAndPublisher() { |
String expectedTitle = "Testcase for ARTICLE"; |
String expectedDescription = "Testing ARTICLE with embedded author and publisher"; |
- String expectedUrl = "http://dummy/test_article_with_embedded_items.html"; |
- String expectedImage = "http://dummy/test_article_with_embedded_items.jpeg"; |
String expectedAuthor = "Whoever authored"; |
String expectedPublisher = "Whatever Article Incorporated"; |
String expectedDatePublished = "April 15, 2014"; |
@@ -170,20 +191,20 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
String expectedCopyrightHolder = "Whoever Article Copyrighted"; |
String expectedSection = "Romance thriller"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
"<h1 itemprop=\"headline\">" + expectedTitle + |
"</h1>" + |
"<h2 itemprop=\"description\">" + expectedDescription + |
"</h2>" + |
- "<a itemprop=\"url\" href=\"" + expectedUrl + "\">test results" + |
+ "<a itemprop=\"url\" href=\"" + RECIPE_URL + "\">test results" + |
"</a>" + |
- "<img itemprop=\"image\" src=\"" + expectedImage + "\">" + |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<img itemprop=\"image\" src=\"" + RECIPE_IMAGE_URL + "\">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
" itemprop=\"author\">Author: " + |
"<span itemprop=\"name\">" + expectedAuthor + |
"</span>" + |
"</div>" + |
- "<div id=\"3\" itemscope itemtype=\"http://schema.org/Organization\"" + |
+ "<div id=\"3\"" + ITEM_TYPE_ORGANIZATION + "" + |
" itemprop=\"publisher\">Publisher: " + |
"<span itemprop=\"name\">" + expectedPublisher + |
"</span>" + |
@@ -209,14 +230,14 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
assertEquals("Article", parser.getType()); |
assertEquals(expectedTitle, parser.getTitle()); |
assertEquals(expectedDescription, parser.getDescription()); |
- assertEquals(expectedUrl, parser.getUrl()); |
+ assertEquals(RECIPE_URL, parser.getUrl()); |
assertEquals(expectedAuthor, parser.getAuthor()); |
assertEquals(expectedPublisher, parser.getPublisher()); |
assertEquals( "Copyright " + expectedCopyrightYear + " " + expectedCopyrightHolder, |
parser.getCopyright()); |
MarkupParser.Image[] images = parser.getImages(); |
assertEquals(1, images.length); |
- assertEquals(expectedImage, images[0].url); |
+ assertEquals(RECIPE_IMAGE_URL, images[0].url); |
MarkupParser.Article article = parser.getArticle(); |
assertEquals(expectedDatePublished, article.publishedTime); |
assertEquals(expectedTimeModified, article.modifiedTime); |
@@ -237,7 +258,7 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
String expectedFormat2 = "jpeg"; |
String expectedCaption2 = "A test for emedded IMAGE in ARTICLE"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/ImageObject\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_IMAGE_OBJECT + ">" + |
"<span itemprop=\"headline\">Title should be ignored" + |
"</span>" + |
"<span itemprop=\"description\">Testing top-level IMAGE" + |
@@ -254,7 +275,7 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
"<meta itemprop=\"width\" content=\"1000\">" + |
"<meta itemprop=\"height\" content=\"600\">" + |
"</div>" + |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Article\">" + |
+ "<div id=\"2\" " + ITEM_TYPE_ARTICLE + ">" + |
"<span itemprop=\"headline\">" + expectedTitle + |
"</span>" + |
"<span itemprop=\"description\">" + expectedDescription + |
@@ -262,7 +283,7 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
"<a itemprop=\"url\" href=\"" + expectedUrl + "\">test results" + |
"</a>" + |
"<img itemprop=\"image\" src=\"http://dummy/should_be_ignored_image.jpeg\">" + |
- "<div id=\"3\" itemscope itemtype=\"http://schema.org/ImageObject\"" + |
+ "<div id=\"3\" " + ITEM_TYPE_IMAGE_OBJECT + "" + |
" itemprop=\"associatedMedia\">" + |
"<a itemprop=\"url\" href=\"" + expectedImage2 + "\">associated image" + |
"</a>" + |
@@ -326,18 +347,18 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
String expectedTitle = "Testcase for Supported With Unsupported Itemprop"; |
String expectedSection = "Testing"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
"<span itemprop=\"headline\">" + expectedTitle + |
"</span>" + |
"<span itemprop=\"articleSection\">" + expectedSection + |
"</span>" + |
// Add unsupported AggregateRating to supported Article as itemprop. |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/AggregateRating\"" + |
+ "<div id=\"2\" " + ITEM_TYPE_AGGREGATE_RATING + "" + |
" itemprop=\"aggregateRating\">Ratings: " + |
"<span itemprop=\"ratingValue\">9.9" + |
"</span>" + |
// Add supported Person to unsupported AggregateRating as itemprop. |
- "<div id=\"3\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<div id=\"3\" " + ITEM_TYPE_PERSON + |
" itemprop=\"author\">Author: " + |
"<span itemprop=\"name\">Whoever authored" + |
"</span>" + |
@@ -367,11 +388,11 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
public void testUnsupportedWithSupportedItemprop() { |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Movie\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_MOVIE + ">" + |
"<span itemprop=\"headline\">Testcase for Unsupported With Supported Itemprop" + |
"</span>" + |
// Add supported Person to unsupported Movie as itemprop. |
- "<div id=\"3\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<div id=\"3\" " + ITEM_TYPE_PERSON + |
" itemprop=\"publisher\">Publisher: " + |
"<span itemprop=\"name\">Whoever published" + |
"</span>" + |
@@ -396,30 +417,28 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
public void testUnsupportedWithNestedSupported() { |
String expectedTitle = "Testcase for ARTICLE nested in Unsupported Type"; |
String expectedDescription = "Testing ARTICLE that is nested within unsupported type"; |
- String expectedUrl = "http://dummy/test_article_with_embedded_items.html"; |
- String expectedImage = "http://dummy/test_article_with_embedded_items.jpeg"; |
String expectedAuthor = "Whoever authored"; |
String expectedPublisher = "Whatever Article Incorporated"; |
String expectedDatePublished = "April 15, 2014"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Movie\">" + |
+ "<div id=\"1\" " + ITEM_TYPE_MOVIE + ">" + |
"<span itemprop=\"headline\">Testcase for Unsupported With Supported Itemprop" + |
"</span>" + |
// Add supported Article to unsupported Movie as a non-itemprop. |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Article\">" + |
+ "<div id=\"2\" " + ITEM_TYPE_ARTICLE + ">" + |
"<span itemprop=\"headline\">" + expectedTitle + |
"</span>" + |
"<span itemprop=\"description\">" + expectedDescription + |
"</span>" + |
- "<a itemprop=\"url\" href=\"" + expectedUrl + "\">test results" + |
+ "<a itemprop=\"url\" href=\"" + RECIPE_URL + "\">test results" + |
"</a>" + |
- "<img itemprop=\"image\" src=\"" + expectedImage + "\">" + |
- "<div id=\"3\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<img itemprop=\"image\" src=\"" + RECIPE_IMAGE_URL + "\">" + |
+ "<div id=\"3\" " + ITEM_TYPE_PERSON + |
" itemprop=\"author\">Author: " + |
"<span itemprop=\"name\">" + expectedAuthor + |
"</span>" + |
"</div>" + |
- "<div id=\"4\" itemscope itemtype=\"http://schema.org/Organization\"" + |
+ "<div id=\"4\"" + ITEM_TYPE_ORGANIZATION + "" + |
" itemprop=\"publisher\">Publisher: " + |
"<span itemprop=\"name\">" + expectedPublisher + |
"</span>" + |
@@ -436,13 +455,13 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
assertEquals("Article", parser.getType()); |
assertEquals(expectedTitle, parser.getTitle()); |
assertEquals(expectedDescription, parser.getDescription()); |
- assertEquals(expectedUrl, parser.getUrl()); |
+ assertEquals(RECIPE_URL, parser.getUrl()); |
assertEquals(expectedAuthor, parser.getAuthor()); |
assertEquals(expectedPublisher, parser.getPublisher()); |
assertEquals("", parser.getCopyright()); |
MarkupParser.Image[] images = parser.getImages(); |
assertEquals(1, images.length); |
- assertEquals(expectedImage, images[0].url); |
+ assertEquals(RECIPE_IMAGE_URL, images[0].url); |
MarkupParser.Article article = parser.getArticle(); |
assertEquals(expectedDatePublished, article.publishedTime); |
assertEquals("", article.expirationTime); |
@@ -451,12 +470,12 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
} |
public void testSameItempropDifferentValues() { |
- String expectedAuthor = "Author 1"; |
+ String expectedAuthor = "Author 1, Author 2"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" + |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
" itemprop=\"author\">Authors: " + |
- "<span itemprop=\"name\">" + expectedAuthor + |
+ "<span itemprop=\"name\">Author 1" + |
"</span>" + |
"<span itemprop=\"name\">Author 2" + |
"</span>" + |
@@ -478,8 +497,8 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
public void testItempropWithMultiProperties() { |
String expectedPerson = "Person foo"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" + |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
" itemprop=\"author publisher\">" + |
"<span itemprop=\"name\">" + expectedPerson + |
"</span>" + |
@@ -503,8 +522,8 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
// Test that "creator" property is used when "author" property doens't exist. |
String expectedCreator = "Whoever created"; |
String htmlStr = |
- "<div id=\"1\" itemscope itemtype=\"http://schema.org/Article\">" + |
- "<div id=\"2\" itemscope itemtype=\"http://schema.org/Person\"" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
" itemprop=\"author\">Creator: " + |
"<span itemprop=\"name\">" + expectedCreator + |
"</span>" + |
@@ -541,6 +560,234 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
link.removeFromParent(); |
} |
+ public void testSingleRecipe() { |
+ String htmlStr = |
+ "<div id=\"1\" " + ITEM_TYPE_RECIPE + ">" + |
+ "<meta http-equiv=\"Content-Language\" " + |
+ "content=\"en_US\">" + |
+ "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" + |
+ "<h2 itemprop=\"description\">" + |
+ RECIPE_DESCRIPTION + "</h2>" + |
+ "<a itemprop=\"url\" " + |
+ "href=\"" + RECIPE_URL + "\">" + |
+ "test results" + "</a>" + |
+ "<img itemprop=\"image\" " + |
+ "src=\"" + RECIPE_IMAGE_URL + "\" />" + |
+ "<div itemprop=\"author\">Whoever authored</div>" + |
+ "<div itemprop=\"recipeYield\" content=\"4\">" + |
+ "4 servings</div>" + |
+ "<time itemprop=\"prepTime\" datetime=\"PT15M\">" + |
+ "15 Minutes" + "</time>" + |
+ "<time itemprop=\"cookTime\" datetime=\"PT45M\">" + |
+ "45 Minutes" + "</time>" + |
+ "<time itemprop=\"totalTime\" datetime=\"PT9H\">" + |
+ "9 Hours</time>" + |
+ "<span itemprop=\"ingredients\">4 bats</span>" + |
+ "<span itemprop=\"ingredients\">1/4 milk</span>" + |
+ "<span itemprop=\"recipeInstructions\">" + |
+ "Mix everything and wait for cook</span>" + |
+ "</div>"; |
+ |
+ Element rootDiv = TestUtil.createDiv(0); |
+ rootDiv.setInnerHTML(htmlStr); |
+ mBody.appendChild(rootDiv); |
+ SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot); |
+ String result = parser.getStructuredData(); |
+ |
+ String expected = |
+ "<img src='" + RECIPE_IMAGE_URL + "' />" + |
+ "<p>Author: Whoever authored</p><p>Description: " + |
+ RECIPE_DESCRIPTION + "</p>" + |
+ "<p>Serves: 4 servings</p>" + |
+ "<p>Prep time: 15 minute(s)</p>" + |
+ "<p>Cook time: 45 minute(s)</p>" + |
+ "<p>Total time: 9 hour(s)</p>" + |
+ "Ingredients: <ul><li>4 bats</li>" + |
+ "<li>1/4 milk</li>" + |
+ "</ul><p>Instructions: <br />" + |
+ "Mix everything and wait for cook</p>"; |
+ assertEquals(expected, result); |
+ } |
+ |
+ public void testSingleRecipeWithEmbeddedPerson() { |
+ String htmlStr = |
+ "<div id=\"1\" " + ITEM_TYPE_RECIPE + ">" + |
+ "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" + |
+ "<h2 itemprop=\"description\">" + |
+ RECIPE_DESCRIPTION + "</h2>" + |
+ "<a itemprop=\"url\" href=\"" + RECIPE_URL + "\">" + |
+ "test results" + "</a>" + |
+ "<img itemprop=\"image\" " + |
+ "src=\"" + RECIPE_IMAGE_URL + "\" />" + |
+ "<span itemprop=\"author\" " + ITEM_TYPE_PERSON + ">" + |
+ "<span itemprop=\"givenName\">Guest</span>" + |
+ "<span itemprop=\"familyName\">Smith</span>" + |
+ "</span>" + |
+ "<div itemprop=\"recipeYield\" content=\"4\">" + |
+ "4 servings</div>" + |
+ "<time itemprop=\"prepTime\" datetime=\"PT15M\">1" + |
+ "5 Minutes" + "</time>" + |
+ "<time itemprop=\"cookTime\" datetime=\"PT45M\">" + |
+ "45 Minutes" + "</time>" + |
+ "<time itemprop=\"totalTime\" datetime=\"PT9H\">" + |
+ "9 Hours</time>" + |
+ "<span itemprop=\"ingredients\">4 bats</span>" + |
+ "<span itemprop=\"ingredients\">1/4 milk</span>" + |
+ "<span itemprop=\"recipeInstructions\">" + |
+ "Mix everything and wait for cook</span>" + |
+ "</div>"; |
+ |
+ Element rootDiv = TestUtil.createDiv(0); |
+ rootDiv.setInnerHTML(htmlStr); |
+ mRoot.setAttribute("lang", "en"); |
+ mBody.appendChild(rootDiv); |
+ SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot); |
+ String result = parser.getStructuredData(); |
+ |
+ String expected = |
+ "<img src='" + RECIPE_IMAGE_URL + "' />" + |
+ "<p>Author: <span>Guest Smith</span></p>" + |
+ "<p>Description: " + |
+ RECIPE_DESCRIPTION + "</p>" + |
+ "<p>Serves: 4 servings</p>" + |
+ "<p>Prep time: 15 minute(s)</p>" + |
+ "<p>Cook time: 45 minute(s)</p>" + |
+ "<p>Total time: 9 hour(s)</p>" + |
+ "Ingredients: <ul><li>4 bats</li>" + |
+ "<li>1/4 milk</li>" + |
+ "</ul><p>Instructions: <br />" + |
+ "Mix everything and wait for cook</p>"; |
+ assertEquals(expected, result); |
+ } |
+ |
+ public void testMoreThanOneSchemaOrg() { |
+ String htmlStr = |
+ "<div id=\"1\" " + ITEM_TYPE_RECIPE + ">" + |
+ "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" + |
+ "<meta name=\"Language\" " + |
+ "content=\"en_US\">" + |
+ "<h2 itemprop=\"description\">" + |
+ RECIPE_DESCRIPTION + "</h2>" + |
+ "<a itemprop=\"url\" href=\"" + RECIPE_URL + "\">" + |
+ "test results" + "</a>" + |
+ "<img itemprop=\"image\" src=\"" + |
+ RECIPE_IMAGE_URL + "\" />" + |
+ "<div itemprop=\"author\">Whoever authored</div>" + |
+ "<div itemprop=\"recipeYield\" content=\"4\">" + |
+ "4 servings</div>" + |
+ "<time itemprop=\"prepTime\" datetime=\"PT15M\">" + |
+ "15 Minutes" + "</time>" + |
+ "<time itemprop=\"cookTime\" datetime=\"PT45M\">" + |
+ "45 Minutes" + "</time>" + |
+ "<time itemprop=\"totalTime\" datetime=\"PT9H\">" + |
+ "9 Hours</time>" + |
+ "<span itemprop=\"ingredients\">4 bats</span>" + |
+ "<span itemprop=\"ingredients\">1/4 milk</span>" + |
+ "<span itemprop=\"recipeInstructions\">" + |
+ "Mix everything and wait for cook</span>" + |
+ "</div>" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
+ "itemprop=\"author\">Creator: " + |
+ "<span itemprop=\"name\"> User </span>" + |
+ "</div>" + |
+ "</div>"; |
+ |
+ Element rootDiv = TestUtil.createDiv(0); |
+ rootDiv.setInnerHTML(htmlStr); |
+ mBody.appendChild(rootDiv); |
+ SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot); |
+ String result = parser.getStructuredData(); |
+ |
+ assertEquals("", result); |
+ } |
+ |
+ public void testNonEnglishPageSchemaOrgSupport() { |
+ String htmlStr = |
+ "<div id=\"1\" " + ITEM_TYPE_RECIPE + ">" + |
+ "<meta itemprop=\"mainEntityOfPage\" " + |
+ "content=\"true\">" + |
+ "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" + |
+ "<h2 itemprop=\"description\">" + |
+ RECIPE_DESCRIPTION + "</h2>" + |
+ "<a itemprop=\"url\" href=\"" + RECIPE_URL + "\">" + |
+ "test results" + "</a>" + |
+ "<img itemprop=\"image\" src=\"" + |
+ RECIPE_IMAGE_URL + "\" />" + |
+ "<span itemprop=\"recipeInstructions\">" + |
+ "Mix everything and wait for cook</span>" + |
+ "</div>" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
+ "itemprop=\"author\">Creator: " + |
+ "<span itemprop=\"name\"> User </span>" + |
+ "</div>" + |
+ "</div>"; |
+ |
+ Element rootDiv = TestUtil.createDiv(0); |
+ rootDiv.setInnerHTML(htmlStr); |
+ mBody.appendChild(rootDiv); |
+ SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot); |
+ String result = parser.getStructuredData(); |
+ assertEquals("", result); |
+ } |
+ |
+ public void testMultipleSchemaOrgWithMainEntity() { |
+ String htmlStr = |
+ "<div id=\"1\" " + ITEM_TYPE_RECIPE + ">" + |
+ "<meta http-equiv=\"Content-Language\" " + |
+ "content=\"en_US\">" + |
+ "<meta itemprop=\"mainEntityOfPage\" " + |
+ "content=\"true\">" + |
+ "<h1 itemprop=\"name\">Bat Rice Recipe</h1>" + |
+ "<h2 itemprop=\"description\">" + |
+ RECIPE_DESCRIPTION + "</h2>" + |
+ "<a itemprop=\"url\" href=\"" + RECIPE_URL + "\">" + |
+ "test results" + "</a>" + |
+ "<img itemprop=\"image\" src=\"" + |
+ RECIPE_IMAGE_URL + "\" />" + |
+ "<div itemprop=\"author\">Whoever authored</div>" + |
+ "<div itemprop=\"recipeYield\" content=\"4\">" + |
+ "4 servings</div>" + |
+ "<time itemprop=\"prepTime\" datetime=\"PT15M\">" + |
+ "15 Minutes" + "</time>" + |
+ "<time itemprop=\"cookTime\" datetime=\"PT45M\">" + |
+ "45 Minutes" + "</time>" + |
+ "<time itemprop=\"totalTime\" datetime=\"PT9H\">" + |
+ "9 Hours</time>" + |
+ "<span itemprop=\"ingredients\">4 bats</span>" + |
+ "<span itemprop=\"ingredients\">1/4 milk</span>" + |
+ "<span itemprop=\"recipeInstructions\">" + |
+ "Mix everything and wait for cook</span>" + |
+ "</div>" + |
+ "<div id=\"1\" " + ITEM_TYPE_ARTICLE + ">" + |
+ "<div id=\"2\" " + ITEM_TYPE_PERSON + |
+ "itemprop=\"author\">Creator: " + |
+ "<span itemprop=\"name\"> User </span>" + |
+ "</div>" + |
+ "</div>"; |
+ |
+ Element rootDiv = TestUtil.createDiv(0); |
+ rootDiv.setInnerHTML(htmlStr); |
+ mBody.appendChild(rootDiv); |
+ SchemaOrgParserAccessor parser = new SchemaOrgParserAccessor(mRoot); |
+ String result = parser.getStructuredData(); |
+ |
+ String expected = |
+ "<img src='" + RECIPE_IMAGE_URL + "' />" + |
+ "<p>Author: Whoever authored</p><p>Description: " + |
+ RECIPE_DESCRIPTION + "</p>" + |
+ "<p>Serves: 4 servings</p>" + |
+ "<p>Prep time: 15 minute(s)</p>" + |
+ "<p>Cook time: 45 minute(s)</p>" + |
+ "<p>Total time: 9 hour(s)</p>" + |
+ "Ingredients: <ul><li>4 bats</li>" + |
+ "<li>1/4 milk</li>" + |
+ "</ul><p>Instructions: <br />" + |
+ "Mix everything and wait for cook</p>"; |
+ assertEquals(expected, result); |
+ } |
+ |
public void testGetTitleWhenTheMainArticleDoesntHaveHeadline() { |
String expectedTitle = "This is a headline"; |
String elements = |
@@ -609,4 +856,4 @@ public class SchemaOrgParserAccessorTest extends DomDistillerJsTestCase { |
private void setItemProp(Element e, String name) { |
e.setAttribute("itemprop", name); |
} |
-} |
+} |