blob: 45a6619eb42b2012c2587dd1106f077609405c28 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
require 'abstract_unit'
module MetalTest
class MetalMiddleware < ActionController::Middleware
def call(env)
if env["PATH_INFO"] =~ /authed/
app.call(env)
else
[401, headers, "Not authed!"]
end
end
end
class Endpoint
def call(env)
[200, {}, "Hello World"]
end
end
class TestMiddleware < ActiveSupport::TestCase
include RackTestUtils
def setup
@app = Rack::Builder.new do
use MetalTest::MetalMiddleware
run MetalTest::Endpoint.new
end.to_app
end
test "it can call the next app by using @app" do
env = Rack::MockRequest.env_for("/authed")
response = @app.call(env)
assert_equal "Hello World", body_to_string(response[2])
end
test "it can return a response using the normal AC::Metal techniques" do
env = Rack::MockRequest.env_for("/")
response = @app.call(env)
assert_equal "Not authed!", body_to_string(response[2])
assert_equal 401, response[0]
end
end
end
|