From a8cfc10b2eb5a1e6494802e6adbd3f78dc2dd708 Mon Sep 17 00:00:00 2001 From: bdc34 Date: Tue, 11 May 2010 13:50:33 +0000 Subject: [PATCH] Fixing bug in HTTP accept header processing as requested by timbl@w3.org --- .../webapp/controller/EntityController.java | 2 +- .../mannlib/vitro/webapp/web/ContentType.java | 2 +- .../controller/EntityControllerTest.java | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 webapp/test/edu/cornell/mannlib/vitro/webapp/controller/EntityControllerTest.java diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityController.java index 059101581..6daa5da4e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/EntityController.java @@ -423,7 +423,7 @@ public class EntityController extends VitroHttpServlet { * @return null if this is not a linked data request, returns content type if it is a * linked data request. */ - private ContentType checkForLinkedDataRequest(String url, String acceptHeader) { + protected ContentType checkForLinkedDataRequest(String url, String acceptHeader) { try { //check the accept header if (acceptHeader != null) { diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/ContentType.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/ContentType.java index f1f850710..3cce67e01 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/ContentType.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/ContentType.java @@ -260,7 +260,7 @@ public class ContentType implements Serializable { if (qValue <= 0 || qValue > 1) { continue; } - curQ = qValue; + curQ = qValue + 0.0001F; } } catch (NumberFormatException ex) { // ignore exception diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/EntityControllerTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/EntityControllerTest.java new file mode 100644 index 000000000..9cefe2889 --- /dev/null +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/controller/EntityControllerTest.java @@ -0,0 +1,24 @@ +package edu.cornell.mannlib.vitro.webapp.controller; + +import org.junit.Assert; +import org.junit.Test; + +import edu.cornell.mannlib.vitro.webapp.web.ContentType; + + +public class EntityControllerTest { + + @Test + public void testAcceptHeader(){ + EntityController entityController = new EntityController(); + + /* Check to see if vitro would send RDF/XML to tabulator */ + String tabulatorsAcceptHeader = + "text/xml,application/xml,application/xhtml+xml,text/html;q=0.5,text/plain;q=0.5," + + "image/png,*/*;q=0.1," + + "application/rdf+xml;q=1.0,text/n3;q=0.4"; + ContentType result = entityController.checkForLinkedDataRequest("http://notUsedInThisTestCase.com/bogus",tabulatorsAcceptHeader); + Assert.assertTrue( result != null ); + Assert.assertTrue( "application/rdf+xml".equals( result.toString()) ); + } +}