dchelimsky / rspec-rails

RSpec extension library for Ruby on Rails

This URL has Read+Write access

rspec-rails / lib / spec / rails / example / cookies_proxy.rb
100644 30 lines (25 sloc) 0.659 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 'action_controller/cookies'
 
module Spec
  module Rails
    module Example
      class CookiesProxy
        def initialize(example)
          @example = example
        end
      
        def[]=(name, value)
          if ::Rails::VERSION::STRING >= '2.3'
            @example.request.cookies[name.to_s] = value
          else
            @example.request.cookies[name.to_s] = CGI::Cookie.new(name.to_s, value)
          end
        end
        
        def [](name)
          @example.response.cookies[name.to_s]
        end
      
        def delete(name)
          @example.response.cookies.delete(name.to_s)
        end
      end
    end
  end
end