~ubuntu-branches/ubuntu/utopic/jetty/utopic-proposed

« back to all changes in this revision

Viewing changes to contrib/jetty-rewrite-handler/src/test/java/org/mortbay/jetty/handler/rewrite/ForwardedSchemeHeaderRuleTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2009-08-09 08:48:10 UTC
  • Revision ID: james.westby@ubuntu.com-20090809084810-k522b97ind2robyd
ImportĀ upstreamĀ versionĀ 6.1.19

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.mortbay.jetty.handler.rewrite;
 
2
 
 
3
import org.mortbay.jetty.HttpFields;
 
4
 
 
5
public class ForwardedSchemeHeaderRuleTest extends AbstractRuleTestCase
 
6
{
 
7
    private ForwardedSchemeHeaderRule _rule;
 
8
    private HttpFields _requestHeaderFields;
 
9
 
 
10
    public void setUp() throws Exception
 
11
    {
 
12
        super.setUp();
 
13
        _rule = new ForwardedSchemeHeaderRule();
 
14
        _requestHeaderFields = _connection.getRequestFields();
 
15
        _request.setScheme(null);
 
16
    }
 
17
    
 
18
    public void testDefaultScheme() throws Exception
 
19
    {
 
20
        setRequestHeader("X-Forwarded-Scheme", "https");
 
21
        _rule.setHeader("X-Forwarded-Scheme");
 
22
        _rule.setHeaderValue("https");
 
23
        
 
24
        _rule.matchAndApply("/", _request, _response);
 
25
        assertEquals("https", _request.getScheme());
 
26
    }
 
27
 
 
28
    public void testScheme() throws Exception
 
29
    {
 
30
        setRequestHeader("X-Forwarded-Scheme", "https");
 
31
        _rule.setHeader("X-Forwarded-Scheme");
 
32
        _rule.setHeaderValue("https");
 
33
        _rule.setScheme("https");
 
34
 
 
35
        _rule.matchAndApply("/", _request, _response);
 
36
        assertEquals("https", _request.getScheme());
 
37
        
 
38
        
 
39
        _rule.setScheme("http");
 
40
        _rule.matchAndApply("/", _request, _response);
 
41
        assertEquals("http", _request.getScheme());
 
42
    }
 
43
    
 
44
    public void testHeaderValue() throws Exception
 
45
    {
 
46
        setRequestHeader("Front-End-Https", "on");
 
47
        _rule.setHeader("Front-End-Https");
 
48
        _rule.setHeaderValue("on");
 
49
        _rule.setScheme("https");
 
50
        
 
51
        _rule.matchAndApply("/",_request,_response);
 
52
        assertEquals("https",_request.getScheme());
 
53
        _request.setScheme(null);
 
54
        
 
55
        
 
56
        // header value doesn't match rule's value
 
57
        setRequestHeader("Front-End-Https", "off");
 
58
        
 
59
        _rule.matchAndApply("/",_request,_response);
 
60
        assertEquals(null,_request.getScheme());
 
61
        _request.setScheme(null);
 
62
 
 
63
        
 
64
        // header value can be any value
 
65
        setRequestHeader("Front-End-Https", "any");
 
66
        _rule.setHeaderValue(null);
 
67
        
 
68
        _rule.matchAndApply("/",_request,_response);
 
69
        assertEquals("https",_request.getScheme());
 
70
    }
 
71
    
 
72
    private void setRequestHeader(String header, String headerValue)
 
73
    {
 
74
        _requestHeaderFields.put(header, headerValue);
 
75
    }
 
76
}