Module: Sinatra::TestHelpers

Extended by:
Forwardable
Includes:
Rack::Test::Methods
Defined in:
lib/sinatra/test_helpers.rb

Defined Under Namespace

Classes: Session

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#settingsObject

Returns the value of attribute settings.



28
29
30
# File 'lib/sinatra/test_helpers.rb', line 28

def settings
  @settings
end

Instance Method Details

#appObject



51
52
53
54
# File 'lib/sinatra/test_helpers.rb', line 51

def app
  @app ||= Class.new Sinatra::Base
  Rack::Lint.new @app
end

#app=(base) ⇒ Object Also known as: set_app



45
46
47
# File 'lib/sinatra/test_helpers.rb', line 45

def app=(base)
  @app = base
end

#build_rack_test_session(name) ⇒ Object

:nodoc:



87
88
89
# File 'lib/sinatra/test_helpers.rb', line 87

def build_rack_test_session(name) # :nodoc:
  Session.new rack_mock_session(name)
end

#last_envObject



83
84
85
# File 'lib/sinatra/test_helpers.rb', line 83

def last_env
  last_request.env
end

#last_request?Boolean

Returns:

  • (Boolean)


70
71
72
73
74
75
# File 'lib/sinatra/test_helpers.rb', line 70

def last_request?
  last_request
  true
rescue Rack::Test::Error
  false
end

#mock_app(base = Sinatra::Base, &block) ⇒ Object



35
36
37
38
39
40
41
42
43
# File 'lib/sinatra/test_helpers.rb', line 35

def mock_app(base = Sinatra::Base, &block)
  inner = nil
  @app  = Sinatra.new(base) do
    inner = self
    class_eval(&block)
  end
  @settings = inner
  app
end

#options(uri, params = {}, env = {}, &block) ⇒ Object



57
58
59
60
# File 'lib/sinatra/test_helpers.rb', line 57

def options(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "OPTIONS", :params => params))
  current_session.send(:process_request, uri, env, &block)
end

#patch(uri, params = {}, env = {}, &block) ⇒ Object



64
65
66
67
# File 'lib/sinatra/test_helpers.rb', line 64

def patch(uri, params = {}, env = {}, &block)
  env = env_for(uri, env.merge(:method => "PATCH", :params => params))
  current_session.send(:process_request, uri, env, &block)
end

#sessionObject

Raises:

  • (Rack::Test::Error)


77
78
79
80
81
# File 'lib/sinatra/test_helpers.rb', line 77

def session
  return {} unless last_request?
  raise Rack::Test::Error, "session not enabled for app" unless last_env["rack.session"] or app.session?
  last_request.session
end