public
Description: Webrat - Ruby Acceptance Testing for Web applications
Homepage: http://gitrdoc.com/brynary/webrat/tree/master/
Clone URL: git://github.com/brynary/webrat.git
webrat / lib / webrat / sinatra.rb
100644 30 lines (24 sloc) 0.787 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'webrat/rack'
require 'sinatra'
require 'sinatra/test/methods'
 
class Sinatra::Application
  # Override this to prevent Sinatra from barfing on the options passed from RSpec
  def self.load_default_options_from_command_line!
  end
end
 
disable :run
disable :reload
 
module Webrat
  class SinatraSession < RackSession #:nodoc:
    include Sinatra::Test::Methods
 
    attr_reader :request, :response
 
    %w(get head post put delete).each do |verb|
      define_method(verb) do |*args| # (path, data, headers = nil)
        path, data, headers = *args
        data = data.inject({}) {|data, (key,value)| data[key] = Rack::Utils.unescape(value); data }
        params = data.merge(:env => headers || {})
        self.__send__("#{verb}_it", path, params)
      end
    end
  end
end