Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

85 lines (63 sloc) 1.569 kb
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)
@app.auth_token = nil
end
def lint(uri)
app = Rack::Lint.new @app
mock_env = Rack::MockRequest.env_for uri
app.call mock_env
end
def test_bad_token
@app.auth_token = "abcdef"
status, _, _ = lint('/whatever')
assert_equal 403, status
end
def test_good_token
@app.auth_token = "abcdef"
status, _, _ = lint('/whatever?token=abcdef')
assert_equal 404, status
end
def test_unsupported
status, _, _ = lint('/not-real')
assert_equal 404, status
end
def test_stop
status, _ , app = lint('/stop')
assert_equal :stop, @server.status
assert_equal 200, status
assert_equal ['{ "status": "ok" }'], app.enum_for.to_a
end
def test_halt
status, _ , app = lint('/halt')
assert_equal :halt, @server.status
assert_equal 200, status
assert_equal ['{ "status": "ok" }'], app.enum_for.to_a
end
def test_stats
@server.backlog = 1
@server.running = 9
status, _ , app = lint('/stats')
assert_equal 200, status
assert_equal ['{ "backlog": 1, "running": 9 }'], app.enum_for.to_a
end
end
Jump to Line
Something went wrong with that request. Please try again.