Sha256: 2d405dce3f9e16693b28f449061c9c56e731f18cf8ca8a30bd5144093d88ce64
Contents?: true
Size: 1.14 KB
Versions: 4
Compression:
Stored size: 1.14 KB
Contents
require "webrat/rack" require "sinatra/test" module Webrat class SinatraSession < RackSession include Sinatra::Test attr_reader :request, :response def initialize(context = nil) super(context) app = context.respond_to?(:app) ? context.app : Sinatra::Application @browser = Sinatra::TestHarness.new(app) @cookies = [] end %w(get head post put delete).each do |verb| class_eval <<-RUBY def #{verb}(path, data, headers = {}) params = data.inject({}) do |data, (key,value)| data[key] = Rack::Utils.unescape(value) data end headers["HTTP_HOST"] = "www.example.com" headers["HTTP_COOKIE"] = @cookies.join(',') @browser.#{verb}(path, params, headers) set_cookies end RUBY end def response_body @browser.body end def response_code @browser.status end private def set_cookies if set_cookie = @browser.response.headers['Set-Cookie'] @cookies.unshift set_cookie end end def response @browser.response end end end
Version data entries
4 entries across 4 versions & 2 rubygems
Version | Path |
---|---|
dbrady-webrat-0.4.4.1 | lib/webrat/sinatra.rb |
dbrady-webrat-0.4.4.2 | lib/webrat/sinatra.rb |
dbrady-webrat-0.4.4 | lib/webrat/sinatra.rb |
jferris-webrat-0.4.3.0.1238640835 | lib/webrat/sinatra.rb |