~ubuntu-branches/debian/sid/unicorn/sid

« back to all changes in this revision

Viewing changes to test/unit/test_request.rb

  • Committer: Package Import Robot
  • Author(s): Jérémy Bobbio, Hleb Valoshka, Jérémy Bobbio
  • Date: 2013-05-07 11:02:06 UTC
  • mfrom: (7.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20130507110206-urgp5n2mwmkcsu5k
Tags: 4.6.2-2
[ Hleb Valoshka ]
* Change the way tests are run during package build.
* Bump Standards-Version to 3.9.4.
* Remove DM-Upload-Allowed.

[ Jérémy Bobbio ]
* Upload to unstable.

Show diffs side-by-side

added added

removed removed

Lines of Context:
30
30
  def test_options
31
31
    client = MockRequest.new("OPTIONS * HTTP/1.1\r\n" \
32
32
                             "Host: foo\r\n\r\n")
33
 
    res = env = nil
34
 
    assert_nothing_raised { env = @request.read(client) }
 
33
    env = @request.read(client)
35
34
    assert_equal '', env['REQUEST_PATH']
36
35
    assert_equal '', env['PATH_INFO']
37
36
    assert_equal '*', env['REQUEST_URI']
38
 
    assert_nothing_raised { res = @lint.call(env) }
 
37
    res = @lint.call(env)
39
38
  end
40
39
 
41
40
  def test_absolute_uri_with_query
42
41
    client = MockRequest.new("GET http://e:3/x?y=z HTTP/1.1\r\n" \
43
42
                             "Host: foo\r\n\r\n")
44
 
    res = env = nil
45
 
    assert_nothing_raised { env = @request.read(client) }
 
43
    env = @request.read(client)
46
44
    assert_equal '/x', env['REQUEST_PATH']
47
45
    assert_equal '/x', env['PATH_INFO']
48
46
    assert_equal 'y=z', env['QUERY_STRING']
49
 
    assert_nothing_raised { res = @lint.call(env) }
 
47
    res = @lint.call(env)
50
48
  end
51
49
 
52
50
  def test_absolute_uri_with_fragment
53
51
    client = MockRequest.new("GET http://e:3/x#frag HTTP/1.1\r\n" \
54
52
                             "Host: foo\r\n\r\n")
55
 
    res = env = nil
56
 
    assert_nothing_raised { env = @request.read(client) }
 
53
    env = @request.read(client)
57
54
    assert_equal '/x', env['REQUEST_PATH']
58
55
    assert_equal '/x', env['PATH_INFO']
59
56
    assert_equal '', env['QUERY_STRING']
60
57
    assert_equal 'frag', env['FRAGMENT']
61
 
    assert_nothing_raised { res = @lint.call(env) }
 
58
    res = @lint.call(env)
62
59
  end
63
60
 
64
61
  def test_absolute_uri_with_query_and_fragment
65
62
    client = MockRequest.new("GET http://e:3/x?a=b#frag HTTP/1.1\r\n" \
66
63
                             "Host: foo\r\n\r\n")
67
 
    res = env = nil
68
 
    assert_nothing_raised { env = @request.read(client) }
 
64
    env = @request.read(client)
69
65
    assert_equal '/x', env['REQUEST_PATH']
70
66
    assert_equal '/x', env['PATH_INFO']
71
67
    assert_equal 'a=b', env['QUERY_STRING']
72
68
    assert_equal 'frag', env['FRAGMENT']
73
 
    assert_nothing_raised { res = @lint.call(env) }
 
69
    res = @lint.call(env)
74
70
  end
75
71
 
76
72
  def test_absolute_uri_unsupported_schemes
82
78
  end
83
79
 
84
80
  def test_x_forwarded_proto_https
85
 
    res = env = nil
86
81
    client = MockRequest.new("GET / HTTP/1.1\r\n" \
87
82
                             "X-Forwarded-Proto: https\r\n" \
88
83
                             "Host: foo\r\n\r\n")
89
 
    assert_nothing_raised { env = @request.read(client) }
 
84
    env = @request.read(client)
90
85
    assert_equal "https", env['rack.url_scheme']
91
 
    assert_nothing_raised { res = @lint.call(env) }
 
86
    res = @lint.call(env)
92
87
  end
93
88
 
94
89
  def test_x_forwarded_proto_http
95
 
    res = env = nil
96
90
    client = MockRequest.new("GET / HTTP/1.1\r\n" \
97
91
                             "X-Forwarded-Proto: http\r\n" \
98
92
                             "Host: foo\r\n\r\n")
99
 
    assert_nothing_raised { env = @request.read(client) }
 
93
    env = @request.read(client)
100
94
    assert_equal "http", env['rack.url_scheme']
101
 
    assert_nothing_raised { res = @lint.call(env) }
 
95
    res = @lint.call(env)
102
96
  end
103
97
 
104
98
  def test_x_forwarded_proto_invalid
105
 
    res = env = nil
106
99
    client = MockRequest.new("GET / HTTP/1.1\r\n" \
107
100
                             "X-Forwarded-Proto: ftp\r\n" \
108
101
                             "Host: foo\r\n\r\n")
109
 
    assert_nothing_raised { env = @request.read(client) }
 
102
    env = @request.read(client)
110
103
    assert_equal "http", env['rack.url_scheme']
111
 
    assert_nothing_raised { res = @lint.call(env) }
 
104
    res = @lint.call(env)
112
105
  end
113
106
 
114
107
  def test_rack_lint_get
115
108
    client = MockRequest.new("GET / HTTP/1.1\r\nHost: foo\r\n\r\n")
116
 
    res = env = nil
117
 
    assert_nothing_raised { env = @request.read(client) }
 
109
    env = @request.read(client)
118
110
    assert_equal "http", env['rack.url_scheme']
119
111
    assert_equal '127.0.0.1', env['REMOTE_ADDR']
120
 
    assert_nothing_raised { res = @lint.call(env) }
 
112
    res = @lint.call(env)
121
113
  end
122
114
 
123
115
  def test_no_content_stringio
124
116
    client = MockRequest.new("GET / HTTP/1.1\r\nHost: foo\r\n\r\n")
125
 
    env = nil
126
 
    assert_nothing_raised { env = @request.read(client) }
 
117
    env = @request.read(client)
127
118
    assert_equal StringIO, env['rack.input'].class
128
119
  end
129
120
 
131
122
    client = MockRequest.new("PUT / HTTP/1.1\r\n" \
132
123
                             "Content-Length: 0\r\n" \
133
124
                             "Host: foo\r\n\r\n")
134
 
    env = nil
135
 
    assert_nothing_raised { env = @request.read(client) }
 
125
    env = @request.read(client)
136
126
    assert_equal StringIO, env['rack.input'].class
137
127
  end
138
128
 
140
130
    client = MockRequest.new("PUT / HTTP/1.1\r\n" \
141
131
                             "Content-Length: 1\r\n" \
142
132
                             "Host: foo\r\n\r\n")
143
 
    env = nil
144
 
    assert_nothing_raised { env = @request.read(client) }
 
133
    env = @request.read(client)
145
134
    assert_equal Unicorn::TeeInput, env['rack.input'].class
146
135
  end
147
136
 
152
141
      "Content-Length: 5\r\n" \
153
142
      "\r\n" \
154
143
      "abcde")
155
 
    res = env = nil
156
 
    assert_nothing_raised { env = @request.read(client) }
 
144
    env = @request.read(client)
157
145
    assert ! env.include?(:http_body)
158
 
    assert_nothing_raised { res = @lint.call(env) }
 
146
    res = @lint.call(env)
159
147
  end
160
148
 
161
149
  def test_rack_lint_big_put
179
167
      "\r\n")
180
168
    count.times { assert_equal bs, client.syswrite(buf) }
181
169
    assert_equal 0, client.sysseek(0)
182
 
    res = env = nil
183
 
    assert_nothing_raised { env = @request.read(client) }
 
170
    env = @request.read(client)
184
171
    assert ! env.include?(:http_body)
185
172
    assert_equal length, env['rack.input'].size
186
173
    count.times {
189
176
      assert_equal buf, tmp
190
177
    }
191
178
    assert_nil env['rack.input'].read(bs)
192
 
    assert_nothing_raised { env['rack.input'].rewind }
193
 
    assert_nothing_raised { res = @lint.call(env) }
 
179
    env['rack.input'].rewind
 
180
    res = @lint.call(env)
194
181
  end
195
 
 
196
182
end
197