1
0
Fork 0
mirror of https://github.com/puma/puma.git synced 2022-11-09 13:48:40 -05:00
puma--puma/test/test_app_status.rb

107 lines
1.9 KiB
Ruby
Raw Normal View History

require 'test/unit'
require 'rack'
require 'puma/app/status'
class TestAppStatus < Test::Unit::TestCase
class FakeServer
def initialize
@status = :running
@backlog = 0
@running = 0
end
attr_reader :status
attr_accessor :backlog, :running
def stop
@status = :stop
end
def halt
@status = :halt
end
end
def setup
@server = FakeServer.new
@app = Puma::App::Status.new(@server, @server)
2011-12-06 19:22:02 -05:00
@app.auth_token = nil
end
def lint(env)
app = Rack::Lint.new @app
mock_env = Rack::MockRequest.env_for env['PATH_INFO']
app.call mock_env
end
2011-12-06 19:22:02 -05:00
def test_bad_token
@app.auth_token = "abcdef"
env = { 'PATH_INFO' => "/whatever" }
status, _, _ = @app.call env
2011-12-06 19:22:02 -05:00
assert_equal 403, status
lint(env)
2011-12-06 19:22:02 -05:00
end
def test_good_token
@app.auth_token = "abcdef"
env = {
'PATH_INFO' => "/whatever",
'QUERY_STRING' => "token=abcdef"
}
status, _, _ = @app.call env
2011-12-06 19:22:02 -05:00
assert_equal 404, status
lint(env)
end
def test_unsupported
env = { 'PATH_INFO' => "/not-real" }
status, _, _ = @app.call env
assert_equal 404, status
lint(env)
end
def test_stop
env = { 'PATH_INFO' => "/stop" }
status, _ , body = @app.call env
assert_equal :stop, @server.status
assert_equal 200, status
assert_equal ['{ "status": "ok" }'], body
lint(env)
end
def test_halt
env = { 'PATH_INFO' => "/halt" }
status, _ , body = @app.call env
assert_equal :halt, @server.status
assert_equal 200, status
assert_equal ['{ "status": "ok" }'], body
lint(env)
end
def test_stats
env = { 'PATH_INFO' => "/stats" }
@server.backlog = 1
@server.running = 9
status, _ , body = @app.call env
assert_equal 200, status
assert_equal ['{ "backlog": 1, "running": 9 }'], body
lint(env)
end
end