You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ca...@apache.org on 2007/05/22 17:45:07 UTC

svn commit: r540612 - in /myfaces/shared/trunk/core/src: main/java/org/apache/myfaces/shared/renderkit/html/ test/java/org/apache/myfaces/shared/renderkit/html/

Author: cagatay
Date: Tue May 22 08:45:05 2007
New Revision: 540612

URL: http://svn.apache.org/viewvc?view=rev&rev=540612
Log:
Fixed MYFACES-1641, when the accept type is only text/*, content type is set to text/html

Added:
    myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/
    myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java   (with props)
Modified:
    myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java

Modified: myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java?view=diff&rev=540612&r1=540611&r2=540612
==============================================================================
--- myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java (original)
+++ myfaces/shared/trunk/core/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtils.java Tue May 22 08:45:05 2007
@@ -1327,6 +1327,7 @@
 
 
     private static String HTML_CONTENT_TYPE = "text/html";
+    private static String TEXT_ANY_CONTENT_TYPE = "text/*";
     private static String ANY_CONTENT_TYPE = "*/*";
 
     public static String DEFAULT_CHAR_ENCODING = "ISO-8859-1";
@@ -1387,14 +1388,15 @@
 
     public static String[] getSupportedContentTypes() {
         //noinspection UnnecessaryLocalVariable
-        String[] supportedContentTypeArray = new String[]{HTML_CONTENT_TYPE, ANY_CONTENT_TYPE,
+        String[] supportedContentTypeArray = new String[]{HTML_CONTENT_TYPE, TEXT_ANY_CONTENT_TYPE, ANY_CONTENT_TYPE,
                                                           XHTML_CONTENT_TYPE, APPLICATION_XML_CONTENT_TYPE, TEXT_XML_CONTENT_TYPE};
         return supportedContentTypeArray;
     }
 
     private static boolean isHTMLContentType(String contentType) {
         return contentType.indexOf(HTML_CONTENT_TYPE) != -1 ||
-            contentType.indexOf(ANY_CONTENT_TYPE) != -1;
+            contentType.indexOf(ANY_CONTENT_TYPE) != -1 ||
+            contentType.indexOf(TEXT_ANY_CONTENT_TYPE) != -1 ;
     }
 
     public static boolean isXHTMLContentType(String contentType) {

Added: myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java
URL: http://svn.apache.org/viewvc/myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java?view=auto&rev=540612
==============================================================================
--- myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java (added)
+++ myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java Tue May 22 08:45:05 2007
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.shared.renderkit.html;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+import org.apache.shale.test.base.AbstractJsfTestCase;
+
+/**
+ * @author cagatay (latest modification by $Author$)
+ * @version $Revision$ $Date$
+ */
+public class HtmlRendererUtilsTest extends AbstractJsfTestCase {
+
+	public HtmlRendererUtilsTest(String name) {
+		super(name);
+	}
+
+	public void setUp() {
+		super.setUp();
+	}
+
+	public void tearDown() {
+		super.tearDown();
+	}
+
+	public static Test suite() {
+		return new TestSuite(HtmlRendererUtilsTest.class);
+	}
+
+	public void testSelectContentType() {
+		MockExternalContext mockExternalContext = new MockExternalContext(servletContext,request, response);
+		facesContext.setExternalContext(mockExternalContext);
+		
+		mockExternalContext.getRequestHeaderMap().put("Accept", "text/html");
+		String selectedContentType = HtmlRendererUtils.selectContentType(null);
+		assertEquals("text/html", selectedContentType);
+		
+		mockExternalContext.getRequestHeaderMap().put("Accept", "text/*");
+		selectedContentType = HtmlRendererUtils.selectContentType(null);
+		assertEquals("text/html", selectedContentType);
+		
+		mockExternalContext.getRequestHeaderMap().put("Accept", "text/xml");
+		selectedContentType = HtmlRendererUtils.selectContentType(null);
+		assertEquals("application/xhtml+xml", selectedContentType);
+	}
+
+	//shale's external context does not support playing with request header map
+	static public class MockExternalContext extends org.apache.shale.test.mock.MockExternalContext {
+
+		private Map requestHeaderMap = new HashMap();
+
+		public MockExternalContext(ServletContext context,HttpServletRequest request, HttpServletResponse response) {
+			super(context, request, response);
+		}
+
+		public Map getRequestHeaderMap() {
+			return requestHeaderMap;
+		}
+
+		public void setRequestHeaderMap(Map requestHeaderMap) {
+			this.requestHeaderMap = requestHeaderMap;
+		}
+	}
+}
\ No newline at end of file

Propchange: myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: myfaces/shared/trunk/core/src/test/java/org/apache/myfaces/shared/renderkit/html/HtmlRendererUtilsTest.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL