01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon;
18:
19: public class Bug36872HttpHeaderActionTestCase extends HtmlUnitTestCase {
20:
21: static final String BASE_URL = "/samples/test/http-header-action/";
22:
23: static final String HEADER = "X-HttpHeaderActionTest";
24:
25: /** some pages must return the X-HttpHeaderActionTest header with the value "from-" + page */
26: private void assertHeaderPresent(String page) throws Exception {
27: loadResponse(BASE_URL + page);
28: final String value = response.getResponseHeaderValue(HEADER);
29: assertNotNull("Header '" + HEADER + "' must be present in'"
30: + page + "' response", value);
31: final String expected = "from-" + page;
32: assertEquals("Header '" + HEADER
33: + "' must match expected value in'" + page
34: + "' response", expected, value);
35: }
36:
37: private void assertHeaderNotPresent(String page) throws Exception {
38: loadResponse(BASE_URL + page);
39: final String value = response.getResponseHeaderValue(HEADER);
40: assertNull("Header '" + HEADER + "' must not be present in'"
41: + page + "' response", value);
42: }
43:
44: public void testMountedSitemap() throws Exception {
45: assertHeaderPresent("mounted-sitemap");
46: }
47:
48: public void testInternalRequestNoFlow() throws Exception {
49: // currently, internal requests do not allow HTTP headers to be set, see bugzilla 36872
50: assertHeaderNotPresent("internal-request");
51: }
52:
53: public void testInternalRequestWithFlow() throws Exception {
54: assertHeaderPresent("internal-request-flow");
55: }
56:
57: }
|