Sha256: df6e5915741157e5b56601ead7e2344679b5f58294599591bb833b27f1115d6c

Contents?: true

Size: 923 Bytes

Versions: 46

Compression:

Stored size: 923 Bytes

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)
    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"
          @browser.#{verb}(path, params, headers)
        end
      RUBY
    end

    def response_body
      @browser.body
    end

    def response_code
      @browser.status
    end

    private

      def response
        @browser.response
      end
  end
end

Version data entries

46 entries across 46 versions & 19 rubygems

Version Path
casebook-webrat-0.4.4.1 lib/webrat/sinatra.rb
cavalle-webrat-0.4.4.1 lib/webrat/sinatra.rb
cavalle-webrat-0.4.4.2 lib/webrat/sinatra.rb
davidtrogers-webrat-0.4.4.2 lib/webrat/sinatra.rb
diabolo-diabolo-webrat-0.4.4 lib/webrat/sinatra.rb
diabolo-webrat-0.4.2 lib/webrat/sinatra.rb
diabolo-webrat-0.4.3 lib/webrat/sinatra.rb
diabolo-webrat-0.4.4.1 lib/webrat/sinatra.rb
diabolo-webrat-0.4.4.2 lib/webrat/sinatra.rb
diabolo-webrat-0.4.4 lib/webrat/sinatra.rb
emipair-webrat-0.0.1 lib/webrat/sinatra.rb
futuresinc-webrat-0.4.4.100 lib/webrat/sinatra.rb
futuresinc-webrat-0.4.4.99 lib/webrat/sinatra.rb
garnierjm-webrat-0.4.5 lib/webrat/sinatra.rb
hectoregm-webrat-0.4.2 lib/webrat/sinatra.rb
jwilger-webrat-0.4.3.2 lib/webrat/sinatra.rb
jwilger-webrat-0.4.3.3 lib/webrat/sinatra.rb
jwilger-webrat-0.4.3.4 lib/webrat/sinatra.rb
jwilger-webrat-0.4.4.2 lib/webrat/sinatra.rb
jwilger-webrat-0.4.4.3 lib/webrat/sinatra.rb