You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@any23.apache.org by le...@apache.org on 2018/01/08 13:14:18 UTC
[2/6] any23 git commit: ANY23-320 Address @Ignore tests in Any23 and
ANY23-131 Nested Microdata are not extracted
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/extractor/html/HCardExtractorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/html/HCardExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/html/HCardExtractorTest.java
index c505bb8..1bffcee 100644
--- a/core/src/test/java/org/apache/any23/extractor/html/HCardExtractorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/html/HCardExtractorTest.java
@@ -17,13 +17,15 @@
package org.apache.any23.extractor.html;
-import junit.framework.Assert;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import org.apache.any23.extractor.ExtractionException;
import org.apache.any23.extractor.ExtractorFactory;
import org.apache.any23.extractor.IssueReport;
import org.apache.any23.rdf.RDFUtils;
import org.apache.any23.vocab.VCard;
-import org.junit.Ignore;
import org.junit.Test;
import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.Statement;
@@ -40,929 +42,927 @@ import java.util.List;
*/
public class HCardExtractorTest extends AbstractExtractorTestCase {
- private static final VCard vVCARD = VCard.getInstance();
-
- protected ExtractorFactory<?> getExtractorFactory() {
- return new HCardExtractorFactory();
- }
-
- @Test
- public void testEMailNotUriReal() throws Exception {
- assertExtract("/microformats/hcard/17-email-not-uri.html");
- assertDefaultVCard();
- assertJohn();
- assertContains(vVCARD.email, RDFUtils.iri("mailto:john@example.com"));
- }
-
- @Test
- public void testTel() throws Exception {
- assertExtract("/microformats/hcard/21-tel.html");
- assertDefaultVCard();
- String[] tels = { "+1.415.555.1231", "+1.415.555.1235",
- "+1.415.555.1236", "+1.415.555.1237", "+1.415.555.1238",
- "+1.415.555.1239", "+1.415.555.1240", "+1.415.555.1241",
- "+1.415.555.1242", "+1.415.555.1243" };
- for (String tel : tels) {
- assertContains(vVCARD.tel, RDFUtils.iri("tel:" + tel));
- }
- Resource telResource = RDFUtils.iri("tel:+14155551233");
- assertContains(vVCARD.fax, telResource);
- assertContains(vVCARD.workTel, telResource);
- assertContains(vVCARD.homeTel, telResource);
- assertJohn();
- }
-
- @Test
- public void testAbbrTitleEverything() throws Exception {
- assertExtract("/microformats/hcard/23-abbr-title-everything.html");
- assertDefaultVCard();
-
- assertContains(vVCARD.fn, "John Doe");
- assertContains(vVCARD.nickname, "JJ");
-
- assertContains(vVCARD.given_name, "Jonathan");
- assertContains(vVCARD.additional_name, "John");
- assertContains(vVCARD.family_name, "Doe-Smith");
- assertContains(vVCARD.honorific_suffix, "Medical Doctor");
-
- assertContains(vVCARD.title, "President");
- assertContains(vVCARD.role, "Chief");
- assertContains(vVCARD.tz, "-0700");
- assertContains(vVCARD.bday, "2006-04-04");
- assertContains(vVCARD.tel, RDFUtils.iri("tel:415.555.1234"));
- assertContains(vVCARD.uid, "abcdefghijklmnopqrstuvwxyz");
- assertContains(vVCARD.class_, "public");
- assertContains(vVCARD.note, "this is a note");
- assertContains(vVCARD.organization_name, "Intellicorp");
- assertContains(vVCARD.organization_unit, "Intelligence");
-
- // We define the property in this extractor _but_ we do not parse it.
- assertContains(vVCARD.geo, (Resource) null);
- // Thus we do not cointain these.
- // The interaction is in @link RDFMergerTest.java
- assertNotContains(RDF.TYPE, vVCARD.Location);
- assertNotContains(null, vVCARD.latitude, "37.77");
- assertNotContains(null, vVCARD.longitude, "-122.41");
-
- // see above
- assertContains(vVCARD.adr, (Resource) null);
- assertNotContains(RDF.TYPE, vVCARD.Address);
- assertNotContains(null, vVCARD.post_office_box, "Box 1234");
- assertNotContains(null, vVCARD.extended_address, "Suite 100");
- assertNotContains(null, vVCARD.street_address, "123 Fake Street");
- assertNotContains(null, vVCARD.locality, "San Francisco");
- assertNotContains(null, vVCARD.region, "California");
- assertNotContains(null, vVCARD.postal_code, "12345-6789");
- assertNotContains(null, vVCARD.country_name, "United States of America");
- assertNotContains(null, vVCARD.addressType, "work");
- }
-
- @Test
- public void testGeoAbbr() throws Exception {
- assertExtract("/microformats/hcard/25-geo-abbr.html");
- assertModelNotEmpty();
- assertContains(vVCARD.fn, "Paradise");
- assertContains(RDF.TYPE, vVCARD.Organization);
- assertContains(vVCARD.organization_name, "Paradise");
- // See above: geo property yes, gteo blank node no.
- assertContains(vVCARD.geo, (Resource) null);
- assertNotContains(RDF.TYPE, vVCARD.Location);
- assertNotContains(null, vVCARD.latitude, "30.267991");
- assertNotContains(null, vVCARD.longitude, "-97.739568");
- }
-
- @Test
- public void testAncestors() throws Exception {
- assertExtract("/microformats/hcard/26-ancestors.html");
- assertModelNotEmpty();
-
- assertContains(vVCARD.fn, "John Doe");
- assertNotContains(null, vVCARD.fn,
- "Mister Jonathan John Doe-Smith Medical Doctor");
- assertContains(vVCARD.nickname, "JJ");
- assertNotContains(RDF.TYPE, vVCARD.Address);
- assertContains(vVCARD.tz, "-0700");
- assertContains(vVCARD.title, "President");
- assertContains(vVCARD.role, "Chief");
- assertContains(vVCARD.organization_name, "Intellicorp");
- assertContains(vVCARD.organization_unit, "Intelligence");
-
- assertContains(vVCARD.tel, RDFUtils.iri("tel:415.555.1234"));
- assertContains(vVCARD.uid, "abcdefghijklmnopqrstuvwxyz");
- assertContains(vVCARD.note, "this is a note");
- assertContains(vVCARD.class_, "public");
-
- assertNotContains(RDF.TYPE, vVCARD.Location);
- assertContains(vVCARD.geo, (Resource) null);
- assertNotContains(null, vVCARD.latitude, "37.77");
- assertNotContains(null, vVCARD.longitude, "-122.41");
-
- assertContains(RDF.TYPE, vVCARD.Name);
- assertContains(vVCARD.additional_name, "John");
- assertContains(vVCARD.given_name, "Jonathan");
- assertContains(vVCARD.family_name, "Doe-Smith");
- assertContains(vVCARD.honorific_prefix, "Mister");
- assertContains(vVCARD.honorific_suffix, "Medical Doctor");
-
- assertNotContains(null, vVCARD.post_office_box, "Box 1234");
- assertNotContains(null, vVCARD.extended_address, "Suite 100");
- assertNotContains(null, vVCARD.street_address, "123 Fake Street");
- assertNotContains(null, vVCARD.locality, "San Francisco");
- assertNotContains(null, vVCARD.region, "California");
- assertNotContains(null, vVCARD.postal_code, "12345-6789");
- assertNotContains(null, vVCARD.country_name, "United States of America");
- assertNotContains(null, vVCARD.addressType, "work");
- }
-
- @Test
- public void testfnOrg() throws Exception {
- assertExtract("/microformats/hcard/30-fn-org.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
- RepositoryResult<Statement> repositoryResult = getStatements(null,
- RDF.TYPE, vVCARD.VCard);
- try {
- while (repositoryResult.hasNext()) {
- Resource card = repositoryResult.next().getSubject();
- Assert.assertNotNull(findObject(card, vVCARD.fn));
- String name = findObjectAsLiteral(card, vVCARD.fn);
-
- Assert.assertNotNull(findObject(card, vVCARD.org));
- Resource org = findObjectAsResource(card, vVCARD.org);
- Assert.assertNotNull(findObject(org, vVCARD.organization_name));
-
- if (name.equals("Dan Connolly")) {
- Assert.assertNotNull(findObject(card, vVCARD.n));
- Assert.assertFalse(name.equals(org.stringValue()));
- }
- }
- } finally {
- repositoryResult.close();
- }
- }
-
- @Test
- public void testInclude() throws Exception {
- assertExtract("/microformats/hcard/31-include.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 3);
- assertStatementsSize(vVCARD.email, (Value) null, 3);
-
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- try {
- while (statements.hasNext()) {
- Resource vcard = statements.next().getSubject();
-
- Assert.assertNotNull(findObject(vcard, vVCARD.fn));
- Assert.assertEquals("Brian Suda",
- findObjectAsLiteral(vcard, vVCARD.fn));
-
- Assert.assertNotNull(findObject(vcard, vVCARD.url));
- String url = findObjectAsResource(vcard, vVCARD.url)
- .stringValue();
- Assert.assertEquals("http://suda.co.uk/", url);
-
- Resource name = findObjectAsResource(vcard, vVCARD.n);
- Assert.assertEquals("Brian",
- findObjectAsLiteral(name, vVCARD.given_name));
- Assert.assertEquals("Suda",
- findObjectAsLiteral(name, vVCARD.family_name));
-
- // Included data.
- Assert.assertNotNull(findObject(vcard, vVCARD.email));
- String mail = findObjectAsLiteral(vcard, vVCARD.email);
- Assert.assertEquals("mailto:correct@example.com", mail);
- }
- } finally {
- statements.close();
- }
- }
-
- @Test
- public void testHeader() throws Exception {
- assertExtract("/microformats/hcard/32-header.html");
- assertModelNotEmpty();
- // check fn, name, family, nick.
- assertJohn();
-
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- try {
- Resource example = RDFUtils.iri("http://example.org/");
- while (statements.hasNext()) {
- Resource card = statements.next().getSubject();
- Assert.assertNotNull(findObject(card, vVCARD.fn));
-
- String fn = findObjectAsLiteral(card, vVCARD.fn);
- if ("Jane Doe".equals(fn)) {
- assertNotFound(card, vVCARD.org);
- } else {
- Assert.assertTrue("John Doe".equals(fn)
- || "Brian Suda".equals(fn));
-
- Assert.assertNotNull(findObject(card, vVCARD.url));
- Assert.assertEquals(example,
- findObjectAsResource(card, vVCARD.url));
-
- Assert.assertNotNull(findObject(card, vVCARD.org));
- Resource org = findObjectAsResource(card, vVCARD.org);
- assertContains(org, RDF.TYPE, vVCARD.Organization);
- Assert.assertNotNull(org);
- Assert.assertNotNull(findObject(card, vVCARD.org));
- Assert.assertNotNull(findObject(org,
- vVCARD.organization_name));
- Assert.assertEquals("example.org",
- findObjectAsLiteral(org, vVCARD.organization_name));
- }
- }
- // Just to be sure there are no spurious statements.
- // assertStatementsSize(VCARD.org, null, 2);
- assertStatementsSize(vVCARD.url, example, 2);
- } finally {
- statements.close();
- }
- }
-
- @Test
- public void testAreaFull() throws Exception {
- assertExtract("/microformats/hcard/33-area.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 5);
-
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- while (statements.hasNext()) {
- Resource vcard = statements.next().getSubject();
- final Value fnValue = findObject(vcard, vVCARD.fn);
- Assert.assertNotNull(fnValue);
- String fn = fnValue.stringValue();
- final Value vcardValue = findObject(vcard, vVCARD.url);
- Assert.assertNotNull(vcardValue);
- String url = vcardValue.stringValue();
- final Value emailValue = findObject(vcard, vVCARD.email);
- Assert.assertNotNull(emailValue);
- String mail = emailValue.stringValue();
- Assert.assertEquals("Joe Public", fn);
- Assert.assertEquals("http://example.com/", url);
- Assert.assertEquals("mailto:joe@example.com", mail);
- }
- }
-
- @Test
- public void testCategories() throws Exception {
- assertExtract("/microformats/hcard/36-categories.html");
- assertModelNotEmpty();
- assertContains(vVCARD.given_name, "Joe");
- assertContains(vVCARD.given_name, "john");
- assertContains(vVCARD.family_name, "doe");
- assertContains(vVCARD.family_name, "User");
- assertContains(vVCARD.fn, "john doe");
- assertContains(vVCARD.fn, "Joe User");
-
- assertContains(vVCARD.category, "C1");
- assertContains(vVCARD.category, "C2a");
- assertContains(vVCARD.category, "C4");
- assertContains(vVCARD.category, "User");
- String[] cats = { "C3", "C5", "C6", "C7", "C9", "luser", "D1", "D2",
- "D3" };
- for (String cat : cats)
- assertContains(vVCARD.category, "http://example.com/tag/" + cat);
-
- assertNotContains(null, vVCARD.category, "D4");
- }
-
- @Test
- public void testSingleton() throws Exception {
- // this tests probably tests that e just get the first fn and so on
- assertExtract("/microformats/hcard/37-singleton.html");
- assertModelNotEmpty();
- assertStatementsSize(vVCARD.fn, (Value) null, 1);
- assertContains(vVCARD.fn, "john doe 1");
-
- assertStatementsSize(RDF.TYPE, vVCARD.Name, 1);
- assertStatementsSize(vVCARD.given_name, (Value) null, 1);
- assertContains(vVCARD.given_name, "john");
- assertStatementsSize(vVCARD.family_name, (Value) null, 1);
- assertContains(vVCARD.family_name, "doe");
- assertStatementsSize(vVCARD.sort_string, (Value) null, 1);
- assertContains(vVCARD.sort_string, "d");
-
- assertStatementsSize(vVCARD.bday, (Value) null, 1);
- assertContains(vVCARD.bday, "20060707");
- assertStatementsSize(vVCARD.rev, (Value) null, 1);
- assertContains(vVCARD.rev, "20060707");
- assertStatementsSize(vVCARD.class_, (Value) null, 1);
- assertContains(vVCARD.class_, "public");
- assertStatementsSize(vVCARD.tz, (Value) null, 1);
- assertContains(vVCARD.tz, "+0600");
-
- // Why 0? because the extractor does not look at geo uF!
- assertStatementsSize(RDF.TYPE, vVCARD.Location, 0);
- assertStatementsSize(vVCARD.geo, (Value) null, 2);
-
- assertNotContains(null, vVCARD.latitude, "123.45");
- assertNotContains(null, vVCARD.longitude, "67.89");
-
- assertStatementsSize(vVCARD.uid, (Value) null, 1);
- assertContains(vVCARD.uid, "unique-id-1");
- }
-
- @Test
- public void testUidFull() throws Exception {
- assertExtract("/microformats/hcard/38-uid.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
-
- try {
- while (statements.hasNext()) {
- Resource vcard = statements.next().getSubject();
- Assert.assertNotNull(findObject(vcard, vVCARD.fn));
- String fn = findObjectAsLiteral(vcard, vVCARD.fn);
- Assert.assertEquals("Ryan King", fn);
-
- Assert.assertNotNull(findObject(vcard, vVCARD.n));
- Resource n = findObjectAsResource(vcard, vVCARD.n);
- Assert.assertNotNull(n);
- Assert.assertNotNull(findObject(n, vVCARD.given_name));
- Assert.assertEquals("Ryan",
- findObjectAsLiteral(n, vVCARD.given_name));
- Assert.assertNotNull(findObject(n, vVCARD.family_name));
- Assert.assertEquals("King",
- findObjectAsLiteral(n, vVCARD.family_name));
-
- Assert.assertNotNull(findObject(vcard, vVCARD.url));
- Resource url = findObjectAsResource(vcard, vVCARD.url);
-
- Assert.assertNotNull(findObject(vcard, vVCARD.uid));
- String uid = findObjectAsLiteral(vcard, vVCARD.uid);
-
- Assert.assertEquals("http://theryanking.com/contact/",
- url.stringValue());
- Assert.assertEquals("http://theryanking.com/contact/", uid);
- }
- } finally {
- statements.close();
- }
- }
-
- @Test
- public void testRomanianWikipedia() throws Exception {
- assertExtract("/microformats/hcard/40-fn-inside-adr.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 1);
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
-
- try {
- while (statements.hasNext()) {
- Resource card = statements.next().getSubject();
- Assert.assertNotNull(findObject(card, vVCARD.fn));
- String fn = findObjectAsLiteral(card, vVCARD.fn);
- Assert.assertEquals("Berlin", fn);
-
- Assert.assertNotNull(findObject(card, vVCARD.org));
- Resource org = findObjectAsResource(card, vVCARD.org);
- assertContains(org, RDF.TYPE, vVCARD.Organization);
- Assert.assertNotNull(org);
- Assert.assertNotNull(findObject(card, vVCARD.org));
- Assert.assertNotNull(findObject(org, vVCARD.organization_name));
- Assert.assertEquals("Berlin",
- findObjectAsLiteral(org, vVCARD.organization_name));
-
- }
- } finally {
- statements.close();
- }
- }
-
- @Test
- public void testNoMicroformats() throws Exception, IOException,
- ExtractionException {
- extract("/html/html-without-uf.html");
- assertModelEmpty();
- }
-
- @Test
- public void testBasic() throws Exception {
- assertExtract("/microformats/hcard/01-tantek-basic.html");
- assertModelNotEmpty();
- assertContains(RDF.TYPE, vVCARD.VCard);
- // assertContains(RDF.TYPE, vVCARD.Organization);
- assertContains(RDF.TYPE, vVCARD.Name);
- // assertContains(vVCARD.organization_name, "Technorati");
- Resource person = findExactlyOneBlankSubject(vVCARD.fn,
- RDFUtils.literal("Tantek Celik"));
- Assert.assertNotNull(person);
- Resource org = findExactlyOneBlankSubject(vVCARD.organization_name,
- RDFUtils.literal("Technorati"));
- Assert.assertNotNull(org);
- assertContains(person, vVCARD.url, RDFUtils.iri("http://tantek.com/"));
- assertContains(person, vVCARD.n, (Resource) null);
- assertContains(person, vVCARD.org, (Resource) null);
- }
-
- @Test
- public void testMultipleclassNamesOnVCard() throws Exception {
- assertExtract("/microformats/hcard/02-multiple-class-names-on-vcard.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
- Resource name;
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- while (statements.hasNext()) {
- name = statements.next().getSubject();
- assertContains(name, vVCARD.fn, "Ryan King");
- }
- }
-
- @Test
- public void testImpliedNames() throws Exception {
- String[] ns = { "Ryan King", "King", "Ryan",
-
- "Ryan King", "King", "Ryan",
-
- "Ryan King", "King", "Ryan",
-
- "Brian Suda", "Suda", "Brian",
-
- "King, Ryan", "King", "Ryan",
-
- "King, R", "King", "R",
-
- "King R", "R", "King",
-
- "R King", "King", "R",
-
- "King R.", "R.", "King",
-
- "Jesse James Garrett", "Garrett", "Jesse",
-
- "Thomas Vander Wall", "Wall", "Thomas" };
- List<String> NAMES = Arrays.asList(ns);
- assertExtract("/microformats/hcard/03-implied-n.html");
- assertModelNotEmpty();
-
- RepositoryResult<Statement> statements = getStatements(null, vVCARD.fn,
- null);
- Resource vcard;
- int count = 0;
- try {
- while (statements.hasNext()) {
- vcard = statements.next().getSubject();
- assertContains(vcard, RDF.TYPE, vVCARD.VCard);
- Resource name = findObjectAsResource(vcard, vVCARD.n);
-
- final String objLiteral = findObjectAsLiteral(vcard, vVCARD.fn);
- int idx = NAMES.indexOf(objLiteral);
- Assert.assertTrue(
- String.format("not in names: '%s'", objLiteral),
- idx >= 0);
- Assert.assertEquals(NAMES.get(idx + 1),
- findObjectAsLiteral(name, vVCARD.family_name));
- Assert.assertEquals(NAMES.get(idx + 2),
- findObjectAsLiteral(name, vVCARD.given_name));
- count++;
- }
- } finally {
- statements.close();
- }
- Assert.assertEquals(10, count);
- }
-
- @Test
- public void testIgnoreUnknowns() throws Exception {
- assertExtract("/microformats/hcard/04-ignore-unknowns.html");
- assertDefaultVCard();
- assertContains(vVCARD.fn, "Ryan King");
- assertContains(vVCARD.n, (Resource) null);
- assertContains(null, "Ryan");
- assertContains(vVCARD.given_name, "Ryan");
- assertContains(vVCARD.family_name, "King");
- }
-
- @Test
- public void testMailto1() throws Exception {
- assertExtract("/microformats/hcard/05-mailto-1.html");
- assertDefaultVCard();
- assertContains(vVCARD.fn, "Ryan King");
- assertContains(RDF.TYPE, vVCARD.Name);
-
- assertContains(vVCARD.email, RDFUtils.iri("mailto:ryan@technorati.com"));
-
- assertContains(vVCARD.given_name, "Ryan");
- assertContains(vVCARD.family_name, "King");
- }
-
- @Test
- public void testMailto2() throws Exception {
- assertExtract("/microformats/hcard/06-mailto-2.html");
- assertDefaultVCard();
- assertContains(vVCARD.fn, "Brian Suda");
-
- assertContains(vVCARD.email, RDFUtils.iri("mailto:brian@example.com"));
- assertContains(vVCARD.given_name, "Brian");
- assertContains(vVCARD.family_name, "Suda");
- }
-
- @Test
- public void testRelativeUrl() throws Exception {
- assertExtract("/microformats/hcard/07-relative-url.html");
- assertDefaultVCard();
- assertJohn();
- assertContains(vVCARD.url, RDFUtils.iri(baseIRI + "home/blah"));
- }
-
- @Test
- public void testRelativeUrlBase() throws Exception {
- assertExtract("/microformats/hcard/08-relative-url-base.html");
- assertDefaultVCard();
- assertContains(vVCARD.url, RDFUtils.iri(baseIRI + "home/blah"));
- assertJohn();
- }
-
- @Test
- public void testRelativeUrlXmlBase1() throws Exception {
- assertExtract("/microformats/hcard/09-relative-url-xmlbase-1.html");
- assertDefaultVCard();
- assertContains(vVCARD.url, RDFUtils.iri((baseIRI + "home/blah")));
- assertJohn();
- }
-
- @Test
- public void testRelativeUrlXmlBase2() throws Exception {
- assertExtract("/microformats/hcard/10-relative-url-xmlbase-2.html");
- assertDefaultVCard();
- assertContains(vVCARD.url, RDFUtils.iri((baseIRI + "home/blah")));
- assertJohn();
- }
-
- @Test
- public void testMultipleUrls() throws Exception {
- assertExtract("/microformats/hcard/11-multiple-urls.html");
- assertDefaultVCard();
- assertContains(vVCARD.url, RDFUtils.iri(("http://example.com/foo")));
- assertContains(vVCARD.url, RDFUtils.iri(("http://example.com/bar")));
-
- assertJohn();
- }
-
- @Test
- public void testImageSrc() throws Exception {
- assertExtract("/microformats/hcard/12-img-src-url.html");
- assertDefaultVCard();
- assertJohn();
- }
-
- @Test
- public void testPhotoLogo() throws Exception {
- assertExtract("/microformats/hcard/13-photo-logo.html");
- assertDefaultVCard();
- assertContains(vVCARD.photo,
- RDFUtils.iri(("http://example.org/picture1.png")));
- assertContains(vVCARD.photo,
- RDFUtils.iri(("http://example.org/picture2.png")));
- assertContains(vVCARD.logo,
- RDFUtils.iri(("http://example.org/picture1.png")));
- assertContains(vVCARD.logo,
- RDFUtils.iri(("http://example.org/picture2.png")));
- assertJohn();
- }
-
- @Test
- public void testImgSrcDataUrl() throws Exception {
- assertExtract("/microformats/hcard/14-img-src-data-url.html");
- assertDefaultVCard();
- Resource data = RDFUtils.iri("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAABGdBTUEAAK/"
- + "INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASUExURf///8zMzJmZmWZmZ"
- + "jMzMwAAAPOPemkAAAM1SURBVHjaYmBgYGBkYQUBFkYWFiCPCchixQAMCCZAACF0MAMVM4K4TFh0IGsBCC"
- + "AkOxhYmBnAAKaHhZkZmxaAAGJgYIbpYGBihGgBWsTMzMwE4jIhaWGAYoAAYmCECDExYAcwGxkg5oNIgAB"
- + "igDqLARdgZmGB2wICrKwAAcSA3xKgIxlZ0PwCEEAMBCxhgHoWSQtAADFAAxgfYEJ1GEAAQbQw4tUCsocB"
- + "YQVAADEgu4uRkREeUCwszEwwLhOKLQABhNDCBA4aSDgwwhIAJKqYUPwCEEAMUK/AUwnc9aywJMCI7DAgA"
- + "AggBohZ8JTBhGIJzCoWZL8ABBCYidAB8RUjWppkYUG2BSCAGMDqEMZiswUtXgACiAHsFYixTMywGGLGpgU"
- + "WYgABxAA2mQkWCMyMqFoYmdD8ACQAAogBHJHMrCxg1cyIiICmCkYWDFsAAgiihYmZCewFFpR0BfI3LLch+"
- + "QUggBiQ0iQjEyMDmh54qCBlUIAAYsCRJsElADQvgWKTlRGeKwECiAF3XgGmMEYQYADZzcoA9z5AAMG9RQC"
- + "AtEC9DxBADFiyFyMjVi0wABBAWLQwQdIiuhYGWJIACCBg+KKUJ9BoBRdS2LQALQMIIGDQIEmwAO1kYcVWH"
- + "CDZAhBAqFqYmOAxj2YNtAwDAYAAYmDEiBYWzHKKkRERYiwAAYSphZEZwxZGZiZQVEJTJkAAMTCyokc7M5o"
- + "ORlC5wcoEjxeAAAJqQXU0UB6W5WFmABMtEzMi1wEEEFAbE0YyAUuzMMEsYQalMkQSBQggUDmNPU3C9IA4L"
- + "CxI+QUggEBiKOU8yExgqccCL3chnkPKlQABhGo6ejHBDKmdUHMlQAAhhQvQaGZGkBIkjcAMywLmI+VKgAB"
- + "CSowsTJhZkhlWXiBpAQggYBqBZl9GVOdBcz0LZqEEEEAMqLULMBLg1THWog9IAwQQA0qiZcRW5aPbAhBAD"
- + "Cg1El4tMAAQQAxoiZYZXnTh1AIQQAzo2QlYpDDjcBgrxGEAAcSAJTthswmiBUwDBBC2GpkZJTaRvQ+mAQK"
- + "IAUuuxdZWQvILQABBmSxMjBj5EpcWgACCMoFOYYSpZyHQHgMIMACt2hmoVEikCQAAAABJRU5ErkJggg==");
-
- assertContains(vVCARD.photo, data);
- assertContains(vVCARD.logo, data);
- assertJohn();
- }
-
- @Test
- public void testHonorificAdditionalSingle() throws Exception {
- assertExtract("/microformats/hcard/15-honorific-additional-single.html");
- assertDefaultVCard();
- assertContains(vVCARD.fn, "Mr. John Maurice Doe, Ph.D.");
-
- assertContains(vVCARD.honorific_prefix, "Mr.");
- assertContains(vVCARD.honorific_suffix, "Ph.D.");
-
- assertContains(vVCARD.given_name, "John");
- assertContains(vVCARD.additional_name, "Maurice");
- assertContains(vVCARD.family_name, "Doe");
- }
-
- @Test
- public void testHonorificAdditionalMultiple() throws Exception {
- assertExtract("/microformats/hcard/16-honorific-additional-multiple.html");
- assertDefaultVCard();
- assertContains(vVCARD.honorific_prefix, "Mr.");
- assertContains(vVCARD.honorific_prefix, "Dr.");
-
- assertContains(vVCARD.honorific_suffix, "Ph.D.");
- assertContains(vVCARD.honorific_suffix, "J.D.");
-
- assertContains(vVCARD.given_name, "John");
- assertContains(vVCARD.additional_name, "Maurice");
- assertContains(vVCARD.additional_name, "Benjamin");
- assertContains(vVCARD.family_name, "Doe");
-
- assertContains(vVCARD.fn,
- "Mr. Dr. John Maurice Benjamin Doe Ph.D., J.D.");
- }
-
- @Test
- public void testEMailNotUri() throws Exception {
- assertExtract("/microformats/hcard/17-email-not-uri.html");
- assertDefaultVCard();
- assertJohn();
- assertContains(vVCARD.email, RDFUtils.iri("mailto:john@example.com"));
- }
-
- @Test
- public void testObjectDataHttpUri() throws Exception {
- assertExtract("/microformats/hcard/18-object-data-http-uri.html");
- assertDefaultVCard();
- assertJohn();
- }
-
- @Ignore
- @Test
- public void testObjectDataDataUri() throws Exception {
- assertExtract("/microformats/hcard/19-object-data-data-uri.html");
- assertDefaultVCard();
- assertJohn();
-
- assertContains(vVCARD.photo, (Resource) null);
- assertContains(vVCARD.logo, (Resource) null);
- }
-
- @Test
- public void testImgAlt() throws Exception {
- assertExtract("/microformats/hcard/20-image-alt.html");
- assertDefaultVCard();
- Resource uri = RDFUtils.iri("http://example.com/foo.png");
- assertContains(vVCARD.photo, uri);
- assertContains(vVCARD.logo, uri);
- assertJohn();
- }
-
- @Test
- public void testAdr() throws Exception {
- assertExtract("/microformats/hcard/22-adr.html");
- assertDefaultVCard();
- assertJohn();
- assertStatementsSize(RDF.TYPE, vVCARD.Address, 0);
- }
-
- @Test
- public void testBirthDayDate() throws Exception {
- assertExtract("/microformats/hcard/27-bday-date.html");
- assertModelNotEmpty();
- assertContains(vVCARD.fn, "john doe");
- assertContains(vVCARD.given_name, "john");
- assertContains(vVCARD.family_name, "doe");
- assertContains(vVCARD.bday, "2000-01-01");
- }
-
- @Test
- public void testBirthDayDateTime() throws Exception {
- assertExtract("/microformats/hcard/28-bday-datetime.html");
- assertModelNotEmpty();
- assertContains(vVCARD.fn, "john doe");
- assertContains(vVCARD.given_name, "john");
- assertContains(vVCARD.family_name, "doe");
- assertContains(vVCARD.bday, "2000-01-01T00:00:00");
- }
-
- @Test
- public void testBirthDayDateTimeTimeZone() throws Exception {
- assertExtract("/microformats/hcard/29-bday-datetime-timezone.html");
- assertModelNotEmpty();
- assertContains(vVCARD.fn, "john doe");
- assertContains(vVCARD.given_name, "john");
- assertContains(vVCARD.family_name, "doe");
- assertContains(vVCARD.bday, "2000-01-01T00:00:00-0800");
- }
-
- @Test
- public void testArea() throws Exception {
- assertExtract("/microformats/hcard/33-area.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 5);
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- try {
- while (statements.hasNext()) {
- Resource vcard = statements.next().getSubject();
-
- Assert.assertNotNull(findObject(vcard, vVCARD.fn));
- Assert.assertEquals("Joe Public",
- findObjectAsLiteral(vcard, vVCARD.fn));
- Assert.assertNotNull(findObject(vcard, vVCARD.url));
- String url = findObjectAsLiteral(vcard, vVCARD.url);
- Assert.assertNotNull(findObject(vcard, vVCARD.email));
- String mail = findObjectAsLiteral(vcard, vVCARD.email);
- Assert.assertEquals("http://example.com/", url);
- Assert.assertEquals("mailto:joe@example.com", mail);
- }
- } finally {
- statements.close();
- }
-
- // Check that there are 4 organizations.
- assertStatementsSize(RDF.TYPE, vVCARD.Organization, 4);
- statements = getStatements(null, RDF.TYPE, vVCARD.Organization);
- try {
- while (statements.hasNext()) {
- Resource org = statements.next().getSubject();
- assertContains(null, vVCARD.org, org);
- Assert.assertNotNull(findObject(org, vVCARD.organization_name));
- Assert.assertEquals("Joe Public",
- findObjectAsLiteral(org, vVCARD.organization_name));
- }
- } finally {
- statements.close();
- }
- }
-
- @Test
- public void testNotes() throws Exception {
- final String[] NOTES = { "Note 1", "Note 3",
- "Note 4 with a ; and a , to be escaped" };
-
- assertExtract("/microformats/hcard/34-notes.html");
- assertModelNotEmpty();
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- try {
- while (statements.hasNext()) {
- Resource vcard = statements.next().getSubject();
- String fn = findObjectAsLiteral(vcard, vVCARD.fn);
- String mail = findObjectAsLiteral(vcard, vVCARD.email);
- Assert.assertEquals("Joe Public", fn);
- Assert.assertEquals("mailto:joe@example.com", mail);
- }
- } finally {
- statements.close();
- }
- for (String note : NOTES) {
- assertContains(vVCARD.note, note);
- }
- }
-
- @Test
- public void testIncludePattern() throws Exception {
- assertExtract("/microformats/hcard/35-include-pattern.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 3);
-
- RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
- vVCARD.Name);
- try {
- while (statements.hasNext()) {
- Resource name = statements.next().getSubject();
- Assert.assertNotNull(findObject(name, vVCARD.given_name));
- String gn = findObjectAsLiteral(name, vVCARD.given_name);
- Assert.assertEquals("James", gn);
- Assert.assertNotNull(findObject(name, vVCARD.family_name));
- String fn = findObjectAsLiteral(name, vVCARD.family_name);
- Assert.assertEquals("Levine", fn);
- }
- } finally {
- statements.close();
- }
-
- assertStatementsSize(RDF.TYPE, vVCARD.Organization, 2);
- statements = getStatements(null, RDF.TYPE, vVCARD.Organization);
- try {
- while (statements.hasNext()) {
- Resource org = statements.next().getSubject();
- Assert.assertNotNull(findObject(org, vVCARD.organization_name));
- Assert.assertEquals("SimplyHired",
- findObjectAsLiteral(org, vVCARD.organization_name));
-
- RepositoryResult<Statement> statements2 = getStatements(null,
- vVCARD.org, org);
- try {
- while (statements2.hasNext()) {
- Resource vcard = statements2.next().getSubject();
- Assert.assertNotNull(findObject(vcard, vVCARD.title));
- Assert.assertEquals("Microformat Brainstormer",
- findObjectAsLiteral(vcard, vVCARD.title));
- }
- } finally {
- statements2.close();
- }
- }
- } finally {
- statements.close();
- }
- }
-
- @Test
- public void testUid() throws Exception {
- assertExtract("/microformats/hcard/38-uid.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
- RepositoryResult<Statement> iter = getStatements(null, RDF.TYPE,
- vVCARD.VCard);
- while (iter.hasNext()) {
- Resource vcard = iter.next().getSubject();
- Assert.assertNotNull(findObject(vcard, vVCARD.fn));
- String fn = findObjectAsLiteral(vcard, vVCARD.fn);
- Assert.assertNotNull(findObject(vcard, vVCARD.url));
- String url = findObjectAsLiteral(vcard, vVCARD.url);
- Assert.assertNotNull(findObject(vcard, vVCARD.uid));
- String uid = findObjectAsLiteral(vcard, vVCARD.uid);
- Assert.assertEquals("Ryan King", fn);
- Assert.assertEquals("http://theryanking.com/contact/", url);
- Assert.assertEquals("http://theryanking.com/contact/", uid);
-
- }
- }
-
- @Test
- public void testIgnoreChildren() throws Exception {
- assertExtract("/microformats/hcard/41-ignore-children.html");
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 1);
- assertContains(vVCARD.fn, "Melanie Kl\u00f6\u00df");
- assertContains(vVCARD.email, RDFUtils.iri("mailto:mkloes@gmail.com"));
- assertContains(vVCARD.adr, (Resource) null);
- assertNotContains(null, vVCARD.postal_code, "53127");
- assertNotContains(null, vVCARD.locality, "Bonn");
- assertNotContains(null, vVCARD.street_address, "Ippendorfer Weg. 24");
- assertNotContains(null, vVCARD.country_name, "Germany");
- }
-
- /**
- * Tests that the HCardName data is not cumulative and is cleaned up at each
- * extraction.
- *
- * @throws Exception
- */
- @Test
- public void testCumulativeHNames() throws Exception {
- assertExtract("/microformats/hcard/linkedin-michelemostarda.html");
- assertModelNotEmpty();
- assertStatementsSize(vVCARD.given_name, "Michele", 7);
- assertStatementsSize(vVCARD.family_name, "Mostarda", 7);
- }
-
- /**
- * Tests the detection and prevention of the inclusion of an ancestor by a
- * sibling node. This test is related to issue <a
- * href="https://issues.apache.org/jira/browse/ANY23-58">ANY23-58</a>.
- *
- * @throws IOException
- * @throws ExtractionException
- */
- @Test
- public void testInfiniteLoop() throws IOException, ExtractionException {
- assertExtract("/microformats/hcard/infinite-loop.html", false);
- assertIssue(IssueReport.IssueLevel.WARNING,
- ".*Current node tries to include an ancestor node.*");
- }
-
- /**
- * Tests extractor performances. This test is related to issue <a
- * href="https://issues.apache.org/jira/browse/ANY23-76">ANY23-76</a>.
- */
- @Ignore
- @Test(timeout = 30 * 1000)
- public void testExtractionPerformance() {
- assertExtract("/microformats/hcard/performance.html");
- }
-
- private void assertDefaultVCard() throws Exception {
- assertModelNotEmpty();
- assertStatementsSize(RDF.TYPE, vVCARD.VCard, 1);
- }
-
- private void assertJohn() throws Exception {
- assertContains(vVCARD.fn, "John Doe");
- assertContains(vVCARD.given_name, "John");
- assertContains(vVCARD.family_name, "Doe");
- }
+ private static final VCard vVCARD = VCard.getInstance();
+
+ protected ExtractorFactory<?> getExtractorFactory() {
+ return new HCardExtractorFactory();
+ }
+
+ @Test
+ public void testEMailNotUriReal() throws Exception {
+ assertExtract("/microformats/hcard/17-email-not-uri.html");
+ assertDefaultVCard();
+ assertJohn();
+ assertContains(vVCARD.email, RDFUtils.iri("mailto:john@example.com"));
+ }
+
+ @Test
+ public void testTel() throws Exception {
+ assertExtract("/microformats/hcard/21-tel.html");
+ assertDefaultVCard();
+ String[] tels = { "+1.415.555.1231", "+1.415.555.1235",
+ "+1.415.555.1236", "+1.415.555.1237", "+1.415.555.1238",
+ "+1.415.555.1239", "+1.415.555.1240", "+1.415.555.1241",
+ "+1.415.555.1242", "+1.415.555.1243" };
+ for (String tel : tels) {
+ assertContains(vVCARD.tel, RDFUtils.iri("tel:" + tel));
+ }
+ Resource telResource = RDFUtils.iri("tel:+14155551233");
+ assertContains(vVCARD.fax, telResource);
+ assertContains(vVCARD.workTel, telResource);
+ assertContains(vVCARD.homeTel, telResource);
+ assertJohn();
+ }
+
+ @Test
+ public void testAbbrTitleEverything() throws Exception {
+ assertExtract("/microformats/hcard/23-abbr-title-everything.html");
+ assertDefaultVCard();
+
+ assertContains(vVCARD.fn, "John Doe");
+ assertContains(vVCARD.nickname, "JJ");
+
+ assertContains(vVCARD.given_name, "Jonathan");
+ assertContains(vVCARD.additional_name, "John");
+ assertContains(vVCARD.family_name, "Doe-Smith");
+ assertContains(vVCARD.honorific_suffix, "Medical Doctor");
+
+ assertContains(vVCARD.title, "President");
+ assertContains(vVCARD.role, "Chief");
+ assertContains(vVCARD.tz, "-0700");
+ assertContains(vVCARD.bday, "2006-04-04");
+ assertContains(vVCARD.tel, RDFUtils.iri("tel:415.555.1234"));
+ assertContains(vVCARD.uid, "abcdefghijklmnopqrstuvwxyz");
+ assertContains(vVCARD.class_, "public");
+ assertContains(vVCARD.note, "this is a note");
+ assertContains(vVCARD.organization_name, "Intellicorp");
+ assertContains(vVCARD.organization_unit, "Intelligence");
+
+ // We define the property in this extractor _but_ we do not parse it.
+ assertContains(vVCARD.geo, (Resource) null);
+ // Thus we do not cointain these.
+ // The interaction is in @link RDFMergerTest.java
+ assertNotContains(RDF.TYPE, vVCARD.Location);
+ assertNotContains(null, vVCARD.latitude, "37.77");
+ assertNotContains(null, vVCARD.longitude, "-122.41");
+
+ // see above
+ assertContains(vVCARD.adr, (Resource) null);
+ assertNotContains(RDF.TYPE, vVCARD.Address);
+ assertNotContains(null, vVCARD.post_office_box, "Box 1234");
+ assertNotContains(null, vVCARD.extended_address, "Suite 100");
+ assertNotContains(null, vVCARD.street_address, "123 Fake Street");
+ assertNotContains(null, vVCARD.locality, "San Francisco");
+ assertNotContains(null, vVCARD.region, "California");
+ assertNotContains(null, vVCARD.postal_code, "12345-6789");
+ assertNotContains(null, vVCARD.country_name, "United States of America");
+ assertNotContains(null, vVCARD.addressType, "work");
+ }
+
+ @Test
+ public void testGeoAbbr() throws Exception {
+ assertExtract("/microformats/hcard/25-geo-abbr.html");
+ assertModelNotEmpty();
+ assertContains(vVCARD.fn, "Paradise");
+ assertContains(RDF.TYPE, vVCARD.Organization);
+ assertContains(vVCARD.organization_name, "Paradise");
+ // See above: geo property yes, gteo blank node no.
+ assertContains(vVCARD.geo, (Resource) null);
+ assertNotContains(RDF.TYPE, vVCARD.Location);
+ assertNotContains(null, vVCARD.latitude, "30.267991");
+ assertNotContains(null, vVCARD.longitude, "-97.739568");
+ }
+
+ @Test
+ public void testAncestors() throws Exception {
+ assertExtract("/microformats/hcard/26-ancestors.html");
+ assertModelNotEmpty();
+
+ assertContains(vVCARD.fn, "John Doe");
+ assertNotContains(null, vVCARD.fn,
+ "Mister Jonathan John Doe-Smith Medical Doctor");
+ assertContains(vVCARD.nickname, "JJ");
+ assertNotContains(RDF.TYPE, vVCARD.Address);
+ assertContains(vVCARD.tz, "-0700");
+ assertContains(vVCARD.title, "President");
+ assertContains(vVCARD.role, "Chief");
+ assertContains(vVCARD.organization_name, "Intellicorp");
+ assertContains(vVCARD.organization_unit, "Intelligence");
+
+ assertContains(vVCARD.tel, RDFUtils.iri("tel:415.555.1234"));
+ assertContains(vVCARD.uid, "abcdefghijklmnopqrstuvwxyz");
+ assertContains(vVCARD.note, "this is a note");
+ assertContains(vVCARD.class_, "public");
+
+ assertNotContains(RDF.TYPE, vVCARD.Location);
+ assertContains(vVCARD.geo, (Resource) null);
+ assertNotContains(null, vVCARD.latitude, "37.77");
+ assertNotContains(null, vVCARD.longitude, "-122.41");
+
+ assertContains(RDF.TYPE, vVCARD.Name);
+ assertContains(vVCARD.additional_name, "John");
+ assertContains(vVCARD.given_name, "Jonathan");
+ assertContains(vVCARD.family_name, "Doe-Smith");
+ assertContains(vVCARD.honorific_prefix, "Mister");
+ assertContains(vVCARD.honorific_suffix, "Medical Doctor");
+
+ assertNotContains(null, vVCARD.post_office_box, "Box 1234");
+ assertNotContains(null, vVCARD.extended_address, "Suite 100");
+ assertNotContains(null, vVCARD.street_address, "123 Fake Street");
+ assertNotContains(null, vVCARD.locality, "San Francisco");
+ assertNotContains(null, vVCARD.region, "California");
+ assertNotContains(null, vVCARD.postal_code, "12345-6789");
+ assertNotContains(null, vVCARD.country_name, "United States of America");
+ assertNotContains(null, vVCARD.addressType, "work");
+ }
+
+ @Test
+ public void testfnOrg() throws Exception {
+ assertExtract("/microformats/hcard/30-fn-org.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
+ RepositoryResult<Statement> repositoryResult = getStatements(null,
+ RDF.TYPE, vVCARD.VCard);
+ try {
+ while (repositoryResult.hasNext()) {
+ Resource card = repositoryResult.next().getSubject();
+ assertNotNull(findObject(card, vVCARD.fn));
+ String name = findObjectAsLiteral(card, vVCARD.fn);
+
+ assertNotNull(findObject(card, vVCARD.org));
+ Resource org = findObjectAsResource(card, vVCARD.org);
+ assertNotNull(findObject(org, vVCARD.organization_name));
+
+ if (name.equals("Dan Connolly")) {
+ assertNotNull(findObject(card, vVCARD.n));
+ assertFalse(name.equals(org.stringValue()));
+ }
+ }
+ } finally {
+ repositoryResult.close();
+ }
+ }
+
+ @Test
+ public void testInclude() throws Exception {
+ assertExtract("/microformats/hcard/31-include.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 3);
+ assertStatementsSize(vVCARD.email, (Value) null, 3);
+
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ try {
+ while (statements.hasNext()) {
+ Resource vcard = statements.next().getSubject();
+
+ assertNotNull(findObject(vcard, vVCARD.fn));
+ assertEquals("Brian Suda",
+ findObjectAsLiteral(vcard, vVCARD.fn));
+
+ assertNotNull(findObject(vcard, vVCARD.url));
+ String url = findObjectAsResource(vcard, vVCARD.url)
+ .stringValue();
+ assertEquals("http://suda.co.uk/", url);
+
+ Resource name = findObjectAsResource(vcard, vVCARD.n);
+ assertEquals("Brian",
+ findObjectAsLiteral(name, vVCARD.given_name));
+ assertEquals("Suda",
+ findObjectAsLiteral(name, vVCARD.family_name));
+
+ // Included data.
+ assertNotNull(findObject(vcard, vVCARD.email));
+ String mail = findObjectAsLiteral(vcard, vVCARD.email);
+ assertEquals("mailto:correct@example.com", mail);
+ }
+ } finally {
+ statements.close();
+ }
+ }
+
+ @Test
+ public void testHeader() throws Exception {
+ assertExtract("/microformats/hcard/32-header.html");
+ assertModelNotEmpty();
+ // check fn, name, family, nick.
+ assertJohn();
+
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ try {
+ Resource example = RDFUtils.iri("http://example.org/");
+ while (statements.hasNext()) {
+ Resource card = statements.next().getSubject();
+ assertNotNull(findObject(card, vVCARD.fn));
+
+ String fn = findObjectAsLiteral(card, vVCARD.fn);
+ if ("Jane Doe".equals(fn)) {
+ assertNotFound(card, vVCARD.org);
+ } else {
+ assertTrue("John Doe".equals(fn)
+ || "Brian Suda".equals(fn));
+
+ assertNotNull(findObject(card, vVCARD.url));
+ assertEquals(example,
+ findObjectAsResource(card, vVCARD.url));
+
+ assertNotNull(findObject(card, vVCARD.org));
+ Resource org = findObjectAsResource(card, vVCARD.org);
+ assertContains(org, RDF.TYPE, vVCARD.Organization);
+ assertNotNull(org);
+ assertNotNull(findObject(card, vVCARD.org));
+ assertNotNull(findObject(org,
+ vVCARD.organization_name));
+ assertEquals("example.org",
+ findObjectAsLiteral(org, vVCARD.organization_name));
+ }
+ }
+ // Just to be sure there are no spurious statements.
+ // assertStatementsSize(VCARD.org, null, 2);
+ assertStatementsSize(vVCARD.url, example, 2);
+ } finally {
+ statements.close();
+ }
+ }
+
+ @Test
+ public void testAreaFull() throws Exception {
+ assertExtract("/microformats/hcard/33-area.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 5);
+
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ while (statements.hasNext()) {
+ Resource vcard = statements.next().getSubject();
+ final Value fnValue = findObject(vcard, vVCARD.fn);
+ assertNotNull(fnValue);
+ String fn = fnValue.stringValue();
+ final Value vcardValue = findObject(vcard, vVCARD.url);
+ assertNotNull(vcardValue);
+ String url = vcardValue.stringValue();
+ final Value emailValue = findObject(vcard, vVCARD.email);
+ assertNotNull(emailValue);
+ String mail = emailValue.stringValue();
+ assertEquals("Joe Public", fn);
+ assertEquals("http://example.com/", url);
+ assertEquals("mailto:joe@example.com", mail);
+ }
+ }
+
+ @Test
+ public void testCategories() throws Exception {
+ assertExtract("/microformats/hcard/36-categories.html");
+ assertModelNotEmpty();
+ assertContains(vVCARD.given_name, "Joe");
+ assertContains(vVCARD.given_name, "john");
+ assertContains(vVCARD.family_name, "doe");
+ assertContains(vVCARD.family_name, "User");
+ assertContains(vVCARD.fn, "john doe");
+ assertContains(vVCARD.fn, "Joe User");
+
+ assertContains(vVCARD.category, "C1");
+ assertContains(vVCARD.category, "C2a");
+ assertContains(vVCARD.category, "C4");
+ assertContains(vVCARD.category, "User");
+ String[] cats = { "C3", "C5", "C6", "C7", "C9", "luser", "D1", "D2",
+ "D3" };
+ for (String cat : cats)
+ assertContains(vVCARD.category, "http://example.com/tag/" + cat);
+
+ assertNotContains(null, vVCARD.category, "D4");
+ }
+
+ @Test
+ public void testSingleton() throws Exception {
+ // this tests probably tests that e just get the first fn and so on
+ assertExtract("/microformats/hcard/37-singleton.html");
+ assertModelNotEmpty();
+ assertStatementsSize(vVCARD.fn, (Value) null, 1);
+ assertContains(vVCARD.fn, "john doe 1");
+
+ assertStatementsSize(RDF.TYPE, vVCARD.Name, 1);
+ assertStatementsSize(vVCARD.given_name, (Value) null, 1);
+ assertContains(vVCARD.given_name, "john");
+ assertStatementsSize(vVCARD.family_name, (Value) null, 1);
+ assertContains(vVCARD.family_name, "doe");
+ assertStatementsSize(vVCARD.sort_string, (Value) null, 1);
+ assertContains(vVCARD.sort_string, "d");
+
+ assertStatementsSize(vVCARD.bday, (Value) null, 1);
+ assertContains(vVCARD.bday, "20060707");
+ assertStatementsSize(vVCARD.rev, (Value) null, 1);
+ assertContains(vVCARD.rev, "20060707");
+ assertStatementsSize(vVCARD.class_, (Value) null, 1);
+ assertContains(vVCARD.class_, "public");
+ assertStatementsSize(vVCARD.tz, (Value) null, 1);
+ assertContains(vVCARD.tz, "+0600");
+
+ // Why 0? because the extractor does not look at geo uF!
+ assertStatementsSize(RDF.TYPE, vVCARD.Location, 0);
+ assertStatementsSize(vVCARD.geo, (Value) null, 2);
+
+ assertNotContains(null, vVCARD.latitude, "123.45");
+ assertNotContains(null, vVCARD.longitude, "67.89");
+
+ assertStatementsSize(vVCARD.uid, (Value) null, 1);
+ assertContains(vVCARD.uid, "unique-id-1");
+ }
+
+ @Test
+ public void testUidFull() throws Exception {
+ assertExtract("/microformats/hcard/38-uid.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+
+ try {
+ while (statements.hasNext()) {
+ Resource vcard = statements.next().getSubject();
+ assertNotNull(findObject(vcard, vVCARD.fn));
+ String fn = findObjectAsLiteral(vcard, vVCARD.fn);
+ assertEquals("Ryan King", fn);
+
+ assertNotNull(findObject(vcard, vVCARD.n));
+ Resource n = findObjectAsResource(vcard, vVCARD.n);
+ assertNotNull(n);
+ assertNotNull(findObject(n, vVCARD.given_name));
+ assertEquals("Ryan",
+ findObjectAsLiteral(n, vVCARD.given_name));
+ assertNotNull(findObject(n, vVCARD.family_name));
+ assertEquals("King",
+ findObjectAsLiteral(n, vVCARD.family_name));
+
+ assertNotNull(findObject(vcard, vVCARD.url));
+ Resource url = findObjectAsResource(vcard, vVCARD.url);
+
+ assertNotNull(findObject(vcard, vVCARD.uid));
+ String uid = findObjectAsLiteral(vcard, vVCARD.uid);
+
+ assertEquals("http://theryanking.com/contact/",
+ url.stringValue());
+ assertEquals("http://theryanking.com/contact/", uid);
+ }
+ } finally {
+ statements.close();
+ }
+ }
+
+ @Test
+ public void testRomanianWikipedia() throws Exception {
+ assertExtract("/microformats/hcard/40-fn-inside-adr.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 1);
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+
+ try {
+ while (statements.hasNext()) {
+ Resource card = statements.next().getSubject();
+ assertNotNull(findObject(card, vVCARD.fn));
+ String fn = findObjectAsLiteral(card, vVCARD.fn);
+ assertEquals("Berlin", fn);
+
+ assertNotNull(findObject(card, vVCARD.org));
+ Resource org = findObjectAsResource(card, vVCARD.org);
+ assertContains(org, RDF.TYPE, vVCARD.Organization);
+ assertNotNull(org);
+ assertNotNull(findObject(card, vVCARD.org));
+ assertNotNull(findObject(org, vVCARD.organization_name));
+ assertEquals("Berlin",
+ findObjectAsLiteral(org, vVCARD.organization_name));
+
+ }
+ } finally {
+ statements.close();
+ }
+ }
+
+ @Test
+ public void testNoMicroformats() throws Exception, IOException,
+ ExtractionException {
+ extract("/html/html-without-uf.html");
+ assertModelEmpty();
+ }
+
+ @Test
+ public void testBasic() throws Exception {
+ assertExtract("/microformats/hcard/01-tantek-basic.html");
+ assertModelNotEmpty();
+ assertContains(RDF.TYPE, vVCARD.VCard);
+ // assertContains(RDF.TYPE, vVCARD.Organization);
+ assertContains(RDF.TYPE, vVCARD.Name);
+ // assertContains(vVCARD.organization_name, "Technorati");
+ Resource person = findExactlyOneBlankSubject(vVCARD.fn,
+ RDFUtils.literal("Tantek Celik"));
+ assertNotNull(person);
+ Resource org = findExactlyOneBlankSubject(vVCARD.organization_name,
+ RDFUtils.literal("Technorati"));
+ assertNotNull(org);
+ assertContains(person, vVCARD.url, RDFUtils.iri("http://tantek.com/"));
+ assertContains(person, vVCARD.n, (Resource) null);
+ assertContains(person, vVCARD.org, (Resource) null);
+ }
+
+ @Test
+ public void testMultipleclassNamesOnVCard() throws Exception {
+ assertExtract("/microformats/hcard/02-multiple-class-names-on-vcard.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
+ Resource name;
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ while (statements.hasNext()) {
+ name = statements.next().getSubject();
+ assertContains(name, vVCARD.fn, "Ryan King");
+ }
+ }
+
+ @Test
+ public void testImpliedNames() throws Exception {
+ String[] ns = { "Ryan King", "King", "Ryan",
+
+ "Ryan King", "King", "Ryan",
+
+ "Ryan King", "King", "Ryan",
+
+ "Brian Suda", "Suda", "Brian",
+
+ "King, Ryan", "King", "Ryan",
+
+ "King, R", "King", "R",
+
+ "King R", "R", "King",
+
+ "R King", "King", "R",
+
+ "King R.", "R.", "King",
+
+ "Jesse James Garrett", "Garrett", "Jesse",
+
+ "Thomas Vander Wall", "Wall", "Thomas" };
+ List<String> NAMES = Arrays.asList(ns);
+ assertExtract("/microformats/hcard/03-implied-n.html");
+ assertModelNotEmpty();
+
+ RepositoryResult<Statement> statements = getStatements(null, vVCARD.fn,
+ null);
+ Resource vcard;
+ int count = 0;
+ try {
+ while (statements.hasNext()) {
+ vcard = statements.next().getSubject();
+ assertContains(vcard, RDF.TYPE, vVCARD.VCard);
+ Resource name = findObjectAsResource(vcard, vVCARD.n);
+
+ final String objLiteral = findObjectAsLiteral(vcard, vVCARD.fn);
+ int idx = NAMES.indexOf(objLiteral);
+ assertTrue(
+ String.format("not in names: '%s'", objLiteral),
+ idx >= 0);
+ assertEquals(NAMES.get(idx + 1),
+ findObjectAsLiteral(name, vVCARD.family_name));
+ assertEquals(NAMES.get(idx + 2),
+ findObjectAsLiteral(name, vVCARD.given_name));
+ count++;
+ }
+ } finally {
+ statements.close();
+ }
+ assertEquals(10, count);
+ }
+
+ @Test
+ public void testIgnoreUnknowns() throws Exception {
+ assertExtract("/microformats/hcard/04-ignore-unknowns.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.fn, "Ryan King");
+ assertContains(vVCARD.n, (Resource) null);
+ assertContains(null, "Ryan");
+ assertContains(vVCARD.given_name, "Ryan");
+ assertContains(vVCARD.family_name, "King");
+ }
+
+ @Test
+ public void testMailto1() throws Exception {
+ assertExtract("/microformats/hcard/05-mailto-1.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.fn, "Ryan King");
+ assertContains(RDF.TYPE, vVCARD.Name);
+
+ assertContains(vVCARD.email, RDFUtils.iri("mailto:ryan@technorati.com"));
+
+ assertContains(vVCARD.given_name, "Ryan");
+ assertContains(vVCARD.family_name, "King");
+ }
+
+ @Test
+ public void testMailto2() throws Exception {
+ assertExtract("/microformats/hcard/06-mailto-2.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.fn, "Brian Suda");
+
+ assertContains(vVCARD.email, RDFUtils.iri("mailto:brian@example.com"));
+ assertContains(vVCARD.given_name, "Brian");
+ assertContains(vVCARD.family_name, "Suda");
+ }
+
+ @Test
+ public void testRelativeUrl() throws Exception {
+ assertExtract("/microformats/hcard/07-relative-url.html");
+ assertDefaultVCard();
+ assertJohn();
+ assertContains(vVCARD.url, RDFUtils.iri(baseIRI + "home/blah"));
+ }
+
+ @Test
+ public void testRelativeUrlBase() throws Exception {
+ assertExtract("/microformats/hcard/08-relative-url-base.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.url, RDFUtils.iri(baseIRI + "home/blah"));
+ assertJohn();
+ }
+
+ @Test
+ public void testRelativeUrlXmlBase1() throws Exception {
+ assertExtract("/microformats/hcard/09-relative-url-xmlbase-1.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.url, RDFUtils.iri((baseIRI + "home/blah")));
+ assertJohn();
+ }
+
+ @Test
+ public void testRelativeUrlXmlBase2() throws Exception {
+ assertExtract("/microformats/hcard/10-relative-url-xmlbase-2.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.url, RDFUtils.iri((baseIRI + "home/blah")));
+ assertJohn();
+ }
+
+ @Test
+ public void testMultipleUrls() throws Exception {
+ assertExtract("/microformats/hcard/11-multiple-urls.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.url, RDFUtils.iri(("http://example.com/foo")));
+ assertContains(vVCARD.url, RDFUtils.iri(("http://example.com/bar")));
+
+ assertJohn();
+ }
+
+ @Test
+ public void testImageSrc() throws Exception {
+ assertExtract("/microformats/hcard/12-img-src-url.html");
+ assertDefaultVCard();
+ assertJohn();
+ }
+
+ @Test
+ public void testPhotoLogo() throws Exception {
+ assertExtract("/microformats/hcard/13-photo-logo.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.photo,
+ RDFUtils.iri(("http://example.org/picture1.png")));
+ assertContains(vVCARD.photo,
+ RDFUtils.iri(("http://example.org/picture2.png")));
+ assertContains(vVCARD.logo,
+ RDFUtils.iri(("http://example.org/picture1.png")));
+ assertContains(vVCARD.logo,
+ RDFUtils.iri(("http://example.org/picture2.png")));
+ assertJohn();
+ }
+
+ @Test
+ public void testImgSrcDataUrl() throws Exception {
+ assertExtract("/microformats/hcard/14-img-src-data-url.html");
+ assertDefaultVCard();
+ Resource data = RDFUtils.iri("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAMAAAAp4XiDAAAABGdBTUEAAK/"
+ + "INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASUExURf///8zMzJmZmWZmZ"
+ + "jMzMwAAAPOPemkAAAM1SURBVHjaYmBgYGBkYQUBFkYWFiCPCchixQAMCCZAACF0MAMVM4K4TFh0IGsBCC"
+ + "AkOxhYmBnAAKaHhZkZmxaAAGJgYIbpYGBihGgBWsTMzMwE4jIhaWGAYoAAYmCECDExYAcwGxkg5oNIgAB"
+ + "igDqLARdgZmGB2wICrKwAAcSA3xKgIxlZ0PwCEEAMBCxhgHoWSQtAADFAAxgfYEJ1GEAAQbQw4tUCsocB"
+ + "YQVAADEgu4uRkREeUCwszEwwLhOKLQABhNDCBA4aSDgwwhIAJKqYUPwCEEAMUK/AUwnc9aywJMCI7DAgA"
+ + "AggBohZ8JTBhGIJzCoWZL8ABBCYidAB8RUjWppkYUG2BSCAGMDqEMZiswUtXgACiAHsFYixTMywGGLGpgU"
+ + "WYgABxAA2mQkWCMyMqFoYmdD8ACQAAogBHJHMrCxg1cyIiICmCkYWDFsAAgiihYmZCewFFpR0BfI3LLch+"
+ + "QUggBiQ0iQjEyMDmh54qCBlUIAAYsCRJsElADQvgWKTlRGeKwECiAF3XgGmMEYQYADZzcoA9z5AAMG9RQC"
+ + "AtEC9DxBADFiyFyMjVi0wABBAWLQwQdIiuhYGWJIACCBg+KKUJ9BoBRdS2LQALQMIIGDQIEmwAO1kYcVWH"
+ + "CDZAhBAqFqYmOAxj2YNtAwDAYAAYmDEiBYWzHKKkRERYiwAAYSphZEZwxZGZiZQVEJTJkAAMTCyokc7M5o"
+ + "ORlC5wcoEjxeAAAJqQXU0UB6W5WFmABMtEzMi1wEEEFAbE0YyAUuzMMEsYQalMkQSBQggUDmNPU3C9IA4L"
+ + "CxI+QUggEBiKOU8yExgqccCL3chnkPKlQABhGo6ejHBDKmdUHMlQAAhhQvQaGZGkBIkjcAMywLmI+VKgAB"
+ + "CSowsTJhZkhlWXiBpAQggYBqBZl9GVOdBcz0LZqEEEEAMqLULMBLg1THWog9IAwQQA0qiZcRW5aPbAhBAD"
+ + "Cg1El4tMAAQQAxoiZYZXnTh1AIQQAzo2QlYpDDjcBgrxGEAAcSAJTthswmiBUwDBBC2GpkZJTaRvQ+mAQK"
+ + "IAUuuxdZWQvILQABBmSxMjBj5EpcWgACCMoFOYYSpZyHQHgMIMACt2hmoVEikCQAAAABJRU5ErkJggg==");
+
+ assertContains(vVCARD.photo, data);
+ assertContains(vVCARD.logo, data);
+ assertJohn();
+ }
+
+ @Test
+ public void testHonorificAdditionalSingle() throws Exception {
+ assertExtract("/microformats/hcard/15-honorific-additional-single.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.fn, "Mr. John Maurice Doe, Ph.D.");
+
+ assertContains(vVCARD.honorific_prefix, "Mr.");
+ assertContains(vVCARD.honorific_suffix, "Ph.D.");
+
+ assertContains(vVCARD.given_name, "John");
+ assertContains(vVCARD.additional_name, "Maurice");
+ assertContains(vVCARD.family_name, "Doe");
+ }
+
+ @Test
+ public void testHonorificAdditionalMultiple() throws Exception {
+ assertExtract("/microformats/hcard/16-honorific-additional-multiple.html");
+ assertDefaultVCard();
+ assertContains(vVCARD.honorific_prefix, "Mr.");
+ assertContains(vVCARD.honorific_prefix, "Dr.");
+
+ assertContains(vVCARD.honorific_suffix, "Ph.D.");
+ assertContains(vVCARD.honorific_suffix, "J.D.");
+
+ assertContains(vVCARD.given_name, "John");
+ assertContains(vVCARD.additional_name, "Maurice");
+ assertContains(vVCARD.additional_name, "Benjamin");
+ assertContains(vVCARD.family_name, "Doe");
+
+ assertContains(vVCARD.fn,
+ "Mr. Dr. John Maurice Benjamin Doe Ph.D., J.D.");
+ }
+
+ @Test
+ public void testEMailNotUri() throws Exception {
+ assertExtract("/microformats/hcard/17-email-not-uri.html");
+ assertDefaultVCard();
+ assertJohn();
+ assertContains(vVCARD.email, RDFUtils.iri("mailto:john@example.com"));
+ }
+
+ @Test
+ public void testObjectDataHttpUri() throws Exception {
+ assertExtract("/microformats/hcard/18-object-data-http-uri.html");
+ assertDefaultVCard();
+ assertJohn();
+ }
+
+ @Test
+ public void testObjectDataDataUri() throws Exception {
+ assertExtract("/microformats/hcard/19-object-data-data-uri.html");
+ assertDefaultVCard();
+ assertJohn();
+
+ assertContains(vVCARD.photo, (Resource) null);
+ assertContains(vVCARD.logo, (Resource) null);
+ }
+
+ @Test
+ public void testImgAlt() throws Exception {
+ assertExtract("/microformats/hcard/20-image-alt.html");
+ assertDefaultVCard();
+ Resource uri = RDFUtils.iri("http://example.com/foo.png");
+ assertContains(vVCARD.photo, uri);
+ assertContains(vVCARD.logo, uri);
+ assertJohn();
+ }
+
+ @Test
+ public void testAdr() throws Exception {
+ assertExtract("/microformats/hcard/22-adr.html");
+ assertDefaultVCard();
+ assertJohn();
+ assertStatementsSize(RDF.TYPE, vVCARD.Address, 0);
+ }
+
+ @Test
+ public void testBirthDayDate() throws Exception {
+ assertExtract("/microformats/hcard/27-bday-date.html");
+ assertModelNotEmpty();
+ assertContains(vVCARD.fn, "john doe");
+ assertContains(vVCARD.given_name, "john");
+ assertContains(vVCARD.family_name, "doe");
+ assertContains(vVCARD.bday, "2000-01-01");
+ }
+
+ @Test
+ public void testBirthDayDateTime() throws Exception {
+ assertExtract("/microformats/hcard/28-bday-datetime.html");
+ assertModelNotEmpty();
+ assertContains(vVCARD.fn, "john doe");
+ assertContains(vVCARD.given_name, "john");
+ assertContains(vVCARD.family_name, "doe");
+ assertContains(vVCARD.bday, "2000-01-01T00:00:00");
+ }
+
+ @Test
+ public void testBirthDayDateTimeTimeZone() throws Exception {
+ assertExtract("/microformats/hcard/29-bday-datetime-timezone.html");
+ assertModelNotEmpty();
+ assertContains(vVCARD.fn, "john doe");
+ assertContains(vVCARD.given_name, "john");
+ assertContains(vVCARD.family_name, "doe");
+ assertContains(vVCARD.bday, "2000-01-01T00:00:00-0800");
+ }
+
+ @Test
+ public void testArea() throws Exception {
+ assertExtract("/microformats/hcard/33-area.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 5);
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ try {
+ while (statements.hasNext()) {
+ Resource vcard = statements.next().getSubject();
+
+ assertNotNull(findObject(vcard, vVCARD.fn));
+ assertEquals("Joe Public",
+ findObjectAsLiteral(vcard, vVCARD.fn));
+ assertNotNull(findObject(vcard, vVCARD.url));
+ String url = findObjectAsLiteral(vcard, vVCARD.url);
+ assertNotNull(findObject(vcard, vVCARD.email));
+ String mail = findObjectAsLiteral(vcard, vVCARD.email);
+ assertEquals("http://example.com/", url);
+ assertEquals("mailto:joe@example.com", mail);
+ }
+ } finally {
+ statements.close();
+ }
+
+ // Check that there are 4 organizations.
+ assertStatementsSize(RDF.TYPE, vVCARD.Organization, 4);
+ statements = getStatements(null, RDF.TYPE, vVCARD.Organization);
+ try {
+ while (statements.hasNext()) {
+ Resource org = statements.next().getSubject();
+ assertContains(null, vVCARD.org, org);
+ assertNotNull(findObject(org, vVCARD.organization_name));
+ assertEquals("Joe Public",
+ findObjectAsLiteral(org, vVCARD.organization_name));
+ }
+ } finally {
+ statements.close();
+ }
+ }
+
+ @Test
+ public void testNotes() throws Exception {
+ final String[] NOTES = { "Note 1", "Note 3",
+ "Note 4 with a ; and a , to be escaped" };
+
+ assertExtract("/microformats/hcard/34-notes.html");
+ assertModelNotEmpty();
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ try {
+ while (statements.hasNext()) {
+ Resource vcard = statements.next().getSubject();
+ String fn = findObjectAsLiteral(vcard, vVCARD.fn);
+ String mail = findObjectAsLiteral(vcard, vVCARD.email);
+ assertEquals("Joe Public", fn);
+ assertEquals("mailto:joe@example.com", mail);
+ }
+ } finally {
+ statements.close();
+ }
+ for (String note : NOTES) {
+ assertContains(vVCARD.note, note);
+ }
+ }
+
+ @Test
+ public void testIncludePattern() throws Exception {
+ assertExtract("/microformats/hcard/35-include-pattern.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 3);
+
+ RepositoryResult<Statement> statements = getStatements(null, RDF.TYPE,
+ vVCARD.Name);
+ try {
+ while (statements.hasNext()) {
+ Resource name = statements.next().getSubject();
+ assertNotNull(findObject(name, vVCARD.given_name));
+ String gn = findObjectAsLiteral(name, vVCARD.given_name);
+ assertEquals("James", gn);
+ assertNotNull(findObject(name, vVCARD.family_name));
+ String fn = findObjectAsLiteral(name, vVCARD.family_name);
+ assertEquals("Levine", fn);
+ }
+ } finally {
+ statements.close();
+ }
+
+ assertStatementsSize(RDF.TYPE, vVCARD.Organization, 2);
+ statements = getStatements(null, RDF.TYPE, vVCARD.Organization);
+ try {
+ while (statements.hasNext()) {
+ Resource org = statements.next().getSubject();
+ assertNotNull(findObject(org, vVCARD.organization_name));
+ assertEquals("SimplyHired",
+ findObjectAsLiteral(org, vVCARD.organization_name));
+
+ RepositoryResult<Statement> statements2 = getStatements(null,
+ vVCARD.org, org);
+ try {
+ while (statements2.hasNext()) {
+ Resource vcard = statements2.next().getSubject();
+ assertNotNull(findObject(vcard, vVCARD.title));
+ assertEquals("Microformat Brainstormer",
+ findObjectAsLiteral(vcard, vVCARD.title));
+ }
+ } finally {
+ statements2.close();
+ }
+ }
+ } finally {
+ statements.close();
+ }
+ }
+
+ @Test
+ public void testUid() throws Exception {
+ assertExtract("/microformats/hcard/38-uid.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 4);
+ RepositoryResult<Statement> iter = getStatements(null, RDF.TYPE,
+ vVCARD.VCard);
+ while (iter.hasNext()) {
+ Resource vcard = iter.next().getSubject();
+ assertNotNull(findObject(vcard, vVCARD.fn));
+ String fn = findObjectAsLiteral(vcard, vVCARD.fn);
+ assertNotNull(findObject(vcard, vVCARD.url));
+ String url = findObjectAsLiteral(vcard, vVCARD.url);
+ assertNotNull(findObject(vcard, vVCARD.uid));
+ String uid = findObjectAsLiteral(vcard, vVCARD.uid);
+ assertEquals("Ryan King", fn);
+ assertEquals("http://theryanking.com/contact/", url);
+ assertEquals("http://theryanking.com/contact/", uid);
+
+ }
+ }
+
+ @Test
+ public void testIgnoreChildren() throws Exception {
+ assertExtract("/microformats/hcard/41-ignore-children.html");
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 1);
+ assertContains(vVCARD.fn, "Melanie Kl\u00f6\u00df");
+ assertContains(vVCARD.email, RDFUtils.iri("mailto:mkloes@gmail.com"));
+ assertContains(vVCARD.adr, (Resource) null);
+ assertNotContains(null, vVCARD.postal_code, "53127");
+ assertNotContains(null, vVCARD.locality, "Bonn");
+ assertNotContains(null, vVCARD.street_address, "Ippendorfer Weg. 24");
+ assertNotContains(null, vVCARD.country_name, "Germany");
+ }
+
+ /**
+ * Tests that the HCardName data is not cumulative and is cleaned up at each
+ * extraction.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testCumulativeHNames() throws Exception {
+ assertExtract("/microformats/hcard/linkedin-michelemostarda.html");
+ assertModelNotEmpty();
+ assertStatementsSize(vVCARD.given_name, "Michele", 7);
+ assertStatementsSize(vVCARD.family_name, "Mostarda", 7);
+ }
+
+ /**
+ * Tests the detection and prevention of the inclusion of an ancestor by a
+ * sibling node. This test is related to issue <a
+ * href="https://issues.apache.org/jira/browse/ANY23-58">ANY23-58</a>.
+ *
+ * @throws IOException
+ * @throws ExtractionException
+ */
+ @Test
+ public void testInfiniteLoop() throws IOException, ExtractionException {
+ assertExtract("/microformats/hcard/infinite-loop.html", false);
+ assertIssue(IssueReport.IssueLevel.WARNING,
+ ".*Current node tries to include an ancestor node.*");
+ }
+
+ /**
+ * Tests extractor performances. This test is related to issue <a
+ * href="https://issues.apache.org/jira/browse/ANY23-76">ANY23-76</a>.
+ */
+ @Test(timeout = 30 * 1000)
+ public void testExtractionPerformance() {
+ assertExtract("/microformats/hcard/performance.html");
+ }
+
+ private void assertDefaultVCard() throws Exception {
+ assertModelNotEmpty();
+ assertStatementsSize(RDF.TYPE, vVCARD.VCard, 1);
+ }
+
+ private void assertJohn() throws Exception {
+ assertContains(vVCARD.fn, "John Doe");
+ assertContains(vVCARD.given_name, "John");
+ assertContains(vVCARD.family_name, "Doe");
+ }
}
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/extractor/html/HListingExtractorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/html/HListingExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/html/HListingExtractorTest.java
index 815d220..5f9ee7d 100644
--- a/core/src/test/java/org/apache/any23/extractor/html/HListingExtractorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/html/HListingExtractorTest.java
@@ -23,7 +23,6 @@ import org.apache.any23.vocab.FOAF;
import org.apache.any23.vocab.HListing;
import org.apache.any23.vocab.SINDICE;
import org.junit.Test;
-import org.junit.Ignore;
import org.eclipse.rdf4j.model.Resource;
import org.eclipse.rdf4j.model.vocabulary.RDF;
import org.slf4j.Logger;
@@ -151,7 +150,6 @@ public class HListingExtractorTest extends AbstractExtractorTestCase {
RDFUtils.iri(baseIRI.stringValue() + "pic.jpg"));
}
- @Ignore("ANY23-159: Error with nodes and markup extracted from HListingExtractorTest.testKelkoo & testKelkooFull")
@Test
public void testKelkoo() throws Exception {
assertExtract("/microformats/hlisting/kelkoo.html");
@@ -187,7 +185,6 @@ public class HListingExtractorTest extends AbstractExtractorTestCase {
assertContains(vHLISTING.price, "\u00A3480.17");
}
- @Ignore("ANY23-159: Error with nodes and markup extracted from HListingExtractorTest.testKelkoo & testKelkooFull")
@Test
public void testKelkooFull() throws Exception {
assertExtract("/microformats/hlisting/kelkoo-full.html");
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java b/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
index ffd4e26..4fa237e 100644
--- a/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/microdata/MicrodataParserTest.java
@@ -37,7 +37,6 @@ import org.apache.any23.extractor.html.TagSoupParser;
import org.apache.any23.util.StreamUtils;
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.Timeout;
@@ -54,12 +53,11 @@ import static org.junit.Assert.assertFalse;
*/
public class MicrodataParserTest {
- @Rule
- public final Timeout timeout = new Timeout(100, TimeUnit.SECONDS);
-
+// @Rule
+// public final Timeout timeout = new Timeout(100, TimeUnit.SECONDS);
+
private static final Logger logger = LoggerFactory.getLogger(MicrodataParserTest.class);
- @Ignore("TODO: Determine the cause of this")
@Test
public void testBasicFeatures() throws IOException {
extractItemsAndVerifyJSONSerialization(
@@ -68,7 +66,6 @@ public class MicrodataParserTest {
);
}
- @Ignore("TODO: Determine the cause of this")
@Test
public void testNestedMicrodata() throws IOException {
extractItemsAndVerifyJSONSerialization(
@@ -77,7 +74,6 @@ public class MicrodataParserTest {
);
}
- @Ignore("TODO: Determine the cause of this")
@Test
public void testAdvancedItemrefManagement() throws IOException {
extractItemsAndVerifyJSONSerialization(
@@ -86,7 +82,6 @@ public class MicrodataParserTest {
);
}
- @Ignore("TODO: Determine the cause of this")
@Test
public void testMicrodataJSONSerialization() throws IOException {
final Document document = getMicrodataDom("microdata-nested");
@@ -97,6 +92,7 @@ public class MicrodataParserTest {
final String expected = StreamUtils.asString(
this.getClass().getResourceAsStream("/microdata/microdata-json-serialization.json")
);
+
Assert.assertEquals("Unexpected serialization for Microdata file.", expected, baos.toString());
}
@@ -122,29 +118,29 @@ public class MicrodataParserTest {
final AtomicBoolean foundFailure = new AtomicBoolean(false);
for (int i = 0; i < threadCount; i++) {
threads.add(new Thread("Test-thread-" + i) {
- @Override
- public void run() {
- try {
- beforeLatch.await();
- int counter = 0;
- while (counter++ < attemptCount && !foundFailure.get()) {
- final Document document = getDom(content);
- final MicrodataParserReport report = MicrodataParser.getMicrodata(document);
- final ItemScope target = report.getDetectedItemScopes()[4];
- Date actualDate = target.getProperties().get("birthday").get(0).getValue().getAsDate();
- if (!expectedDate.equals(actualDate)) {
- foundFailure.set(true);
- }
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- foundFailure.set(true);
- }
- finally {
- afterLatch.countDown();
- }
- }
+ @Override
+ public void run() {
+ try {
+ beforeLatch.await();
+ int counter = 0;
+ while (counter++ < attemptCount && !foundFailure.get()) {
+ final Document document = getDom(content);
+ final MicrodataParserReport report = MicrodataParser.getMicrodata(document);
+ final ItemScope target = report.getDetectedItemScopes()[4];
+ Date actualDate = target.getProperties().get("birthday").get(0).getValue().getAsDate();
+ if (!expectedDate.equals(actualDate)) {
+ foundFailure.set(true);
+ }
+ }
+ }
+ catch (Exception ex) {
+ ex.printStackTrace();
+ foundFailure.set(true);
+ }
+ finally {
+ afterLatch.countDown();
+ }
+ }
});
}
for (Thread thread : threads) {
@@ -167,8 +163,8 @@ public class MicrodataParserTest {
public void testDeferProperties() throws IOException, MicrodataParserException {
final Document document = getMicrodataDom("microdata-itemref");
final MicrodataParser parser = new MicrodataParser(document);
- final ItemProp[] deferred = parser.deferProperties("ip5", "ip4", "ip3", "unexisting");
- Assert.assertEquals(3, deferred.length);
+ final ItemProp[] deferred = parser.deferProperties(document.getElementById("is2"), "ip5", "ip4", "ip3", "unexisting");
+ Assert.assertEquals(2, deferred.length);
}
/**
@@ -181,8 +177,8 @@ public class MicrodataParserTest {
public void testDeferPropertiesLoopDetection1() throws IOException, MicrodataParserException {
final Document document = getMicrodataDom("microdata-itemref");
final MicrodataParser parser = new MicrodataParser(document);
- parser.setErrorMode(MicrodataParser.ErrorMode.StopAtFirstError);
- parser.deferProperties("loop0");
+ parser.setErrorMode(MicrodataParser.ErrorMode.STOP_AT_FIRST_ERROR);
+ parser.deferProperties(null, "loop0");
}
/**
@@ -195,8 +191,8 @@ public class MicrodataParserTest {
public void testDeferPropertiesLoopDetection2() throws IOException, MicrodataParserException {
final Document document = getMicrodataDom("microdata-itemref");
final MicrodataParser parser = new MicrodataParser(document);
- parser.setErrorMode(MicrodataParser.ErrorMode.StopAtFirstError);
- parser.deferProperties("loop2");
+ parser.setErrorMode(MicrodataParser.ErrorMode.STOP_AT_FIRST_ERROR);
+ parser.deferProperties(null, "loop2");
}
/**
@@ -210,9 +206,10 @@ public class MicrodataParserTest {
public void testDeferPropertiesStateManagement() throws IOException, MicrodataParserException {
final Document document = getMicrodataDom("microdata-itemref");
final MicrodataParser parser = new MicrodataParser(document);
- Assert.assertEquals(1, parser.deferProperties("ip1").length);
- Assert.assertEquals(1, parser.deferProperties("ip1").length);
- Assert.assertEquals(1, parser.deferProperties("ip1").length);
+ String ip1 = "ip1";
+ Assert.assertEquals(1, parser.deferProperties(document.getElementById(ip1), ip1).length);
+ Assert.assertEquals(1, parser.deferProperties(document.getElementById(ip1), ip1).length);
+ Assert.assertEquals(1, parser.deferProperties(document.getElementById(ip1), ip1).length);
}
private Document getDom(String document) throws IOException {
@@ -247,7 +244,7 @@ public class MicrodataParserTest {
private void extractItemsAndVerifyJSONSerialization(String htmlFile, String expectedResult)
throws IOException {
final MicrodataParserReport report = extractItems(htmlFile);
- final ItemScope[] items = report.getDetectedItemScopes();
+ final ItemScope[] items = report.getDetectedItemScopes();
final MicrodataParserException[] errors = report.getErrors();
logger.debug("begin itemScopes");
@@ -267,7 +264,7 @@ public class MicrodataParserTest {
final int expectedResults = getExpectedResultCount(resultContent);
final int expectedErrors = getExpectedErrorsCount(resultContent);
Assert.assertEquals("Unexpected number of detect items.", expectedResults, items.length);
- Assert.assertEquals("Unexpected number of errors." , expectedErrors, errors.length);
+ Assert.assertEquals("Unexpected number of errors.", expectedErrors, errors.length);
for (int i = 0; i < items.length; i++) {
Assert.assertEquals(
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/extractor/rdfa/RDFaExtractorTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/rdfa/RDFaExtractorTest.java b/core/src/test/java/org/apache/any23/extractor/rdfa/RDFaExtractorTest.java
index f52cd59..680fe47 100644
--- a/core/src/test/java/org/apache/any23/extractor/rdfa/RDFaExtractorTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/rdfa/RDFaExtractorTest.java
@@ -19,7 +19,6 @@ package org.apache.any23.extractor.rdfa;
import org.apache.any23.extractor.ExtractorFactory;
import org.junit.Assert;
-import org.junit.Ignore;
import org.junit.Test;
import org.eclipse.rdf4j.model.Statement;
import org.eclipse.rdf4j.repository.RepositoryException;
@@ -65,7 +64,6 @@ public class RDFaExtractorTest extends AbstractRDFaExtractorTestCase {
}
}
- @Ignore("RDFa1 parser not able to parse RDFa11 CURIES in this case")
@Test
public void testRDFa11CURIEs() throws Exception {
}
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/extractor/xpath/TemplateXPathExtractorRuleImplTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/extractor/xpath/TemplateXPathExtractorRuleImplTest.java b/core/src/test/java/org/apache/any23/extractor/xpath/TemplateXPathExtractorRuleImplTest.java
index f1f2d88..85f33b5 100644
--- a/core/src/test/java/org/apache/any23/extractor/xpath/TemplateXPathExtractorRuleImplTest.java
+++ b/core/src/test/java/org/apache/any23/extractor/xpath/TemplateXPathExtractorRuleImplTest.java
@@ -75,15 +75,15 @@ public class TemplateXPathExtractorRuleImplTest {
@Test
public void testAddRemoveTemplates() {
final QuadTemplate template1 = new QuadTemplate(
- new TemplateSubject(TemplateSubject.Type.uri, "http://sub1", false),
+ new TemplateSubject(TemplateSubject.Type.URI, "http://sub1", false),
new TemplatePredicate("http://pred1", false),
- new TemplateObject(TemplateObject.Type.uri, "http://obj1", false),
+ new TemplateObject(TemplateObject.Type.URI, "http://obj1", false),
new TemplateGraph("http://graph1", false)
);
final QuadTemplate template2 = new QuadTemplate(
- new TemplateSubject(TemplateSubject.Type.uri, "http://sub2", false),
+ new TemplateSubject(TemplateSubject.Type.URI, "http://sub2", false),
new TemplatePredicate("http://pred2", false),
- new TemplateObject(TemplateObject.Type.uri, "http://obj2", false),
+ new TemplateObject(TemplateObject.Type.URI, "http://obj2", false),
new TemplateGraph("http://graph2", false)
);
@@ -94,9 +94,9 @@ public class TemplateXPathExtractorRuleImplTest {
xPathExtractionRule.add(new Variable("v1", "//"));
final QuadTemplate template3 = new QuadTemplate(
- new TemplateSubject(TemplateSubject.Type.uri, "http://sub2", false),
+ new TemplateSubject(TemplateSubject.Type.URI, "http://sub2", false),
new TemplatePredicate("http://pred2", false),
- new TemplateObject(TemplateObject.Type.uri, "v1", true),
+ new TemplateObject(TemplateObject.Type.URI, "v1", true),
new TemplateGraph("http://graph2", false)
);
xPathExtractionRule.add(template3);
@@ -106,9 +106,9 @@ public class TemplateXPathExtractorRuleImplTest {
public void testAddTemplateWithNoDeclaredVarCheck() {
xPathExtractionRule.add(
new QuadTemplate(
- new TemplateSubject(TemplateSubject.Type.uri, "http://sub2", false),
+ new TemplateSubject(TemplateSubject.Type.URI, "http://sub2", false),
new TemplatePredicate("http://pred2", false),
- new TemplateObject(TemplateObject.Type.uri, "v1", true),
+ new TemplateObject(TemplateObject.Type.URI, "v1", true),
new TemplateGraph("http://graph2", false)
)
);
@@ -127,15 +127,15 @@ public class TemplateXPathExtractorRuleImplTest {
@Test
public void testProcess() throws IOException {
final QuadTemplate template1 = new QuadTemplate(
- new TemplateSubject(TemplateSubject.Type.uri, "http://sub1", false),
+ new TemplateSubject(TemplateSubject.Type.URI, "http://sub1", false),
new TemplatePredicate("http://pred1", false),
- new TemplateObject(TemplateObject.Type.literal, "v1", true),
+ new TemplateObject(TemplateObject.Type.LITERAL, "v1", true),
new TemplateGraph("http://graph1", false)
);
final QuadTemplate template2 = new QuadTemplate(
- new TemplateSubject(TemplateSubject.Type.uri, "http://sub2", false),
+ new TemplateSubject(TemplateSubject.Type.URI, "http://sub2", false),
new TemplatePredicate("v2", true),
- new TemplateObject(TemplateObject.Type.uri, "http://obj2", false),
+ new TemplateObject(TemplateObject.Type.URI, "http://obj2", false),
new TemplateGraph("http://graph2", false)
);
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/filter/IgnoreAccidentalRDFaTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/filter/IgnoreAccidentalRDFaTest.java b/core/src/test/java/org/apache/any23/filter/IgnoreAccidentalRDFaTest.java
index ce5b1d6..de6d980 100644
--- a/core/src/test/java/org/apache/any23/filter/IgnoreAccidentalRDFaTest.java
+++ b/core/src/test/java/org/apache/any23/filter/IgnoreAccidentalRDFaTest.java
@@ -28,7 +28,7 @@ import org.eclipse.rdf4j.model.Value;
import org.eclipse.rdf4j.model.ValueFactory;
import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java b/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
index ebe6ba3..92ae30f 100644
--- a/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
+++ b/core/src/test/java/org/apache/any23/writer/JSONWriterTest.java
@@ -20,11 +20,7 @@ package org.apache.any23.writer;
import org.junit.Assert;
import org.junit.Test;
import org.eclipse.rdf4j.model.IRI;
-import org.eclipse.rdf4j.model.impl.BNodeImpl;
-import org.eclipse.rdf4j.model.impl.LiteralImpl;
import org.eclipse.rdf4j.model.impl.SimpleValueFactory;
-import org.eclipse.rdf4j.model.vocabulary.RDF;
-
import java.io.ByteArrayOutputStream;
/**
http://git-wip-us.apache.org/repos/asf/any23/blob/60e93a76/service/src/test/java/org/apache/any23/servlet/ServletTest.java
----------------------------------------------------------------------
diff --git a/service/src/test/java/org/apache/any23/servlet/ServletTest.java b/service/src/test/java/org/apache/any23/servlet/ServletTest.java
index bb168a1..bc87737 100644
--- a/service/src/test/java/org/apache/any23/servlet/ServletTest.java
+++ b/service/src/test/java/org/apache/any23/servlet/ServletTest.java
@@ -25,7 +25,6 @@ import org.apache.any23.util.StringUtils;
import org.junit.Assert;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.mortbay.jetty.testing.HttpTester;
import org.mortbay.jetty.testing.ServletTester;
@@ -229,7 +228,6 @@ public class ServletTest {
* @throws Exception
*/
@Test
- @Ignore
public void testGETwithURLEncoding() throws Exception {
content = null;
HttpTester response = doGetRequest("/best/http://semanticweb.org/wiki/Knud_M%C3%B6ller");
@@ -241,7 +239,6 @@ public class ServletTest {
* @throws Exception
*/
@Test
- @Ignore
public void testGETwithURLEncodingWithQuery() throws Exception {
content = null;
HttpTester response = doGetRequest("/best/http://semanticweb.org/wiki/Knud_M%C3%B6ller?appo=xxx");
@@ -253,7 +250,6 @@ public class ServletTest {
* @throws Exception
*/
@Test
- @Ignore
public void testGETwithURLEncodingWithFragment() throws Exception {
content = null;
HttpTester response = doGetRequest("/best/http://semanticweb.org/wiki/Knud_M%C3%B6ller#abcde");