Class: Authlogic::TestCase::MockSignedCookieJar

Inherits:
MockCookieJar
  • Object
show all
Defined in:
lib/authlogic/test_case/mock_cookie_jar.rb

Overview

A mock of `ActionDispatch::Cookies::SignedKeyRotatingCookieJar`

> .. a jar that'll automatically generate a signed representation of > cookie value and verify it when reading from the cookie again. > actionpack/lib/action_dispatch/middleware/cookies.rb

Instance Attribute Summary collapse

Attributes inherited from MockCookieJar

#set_cookies

Instance Method Summary collapse

Methods inherited from MockCookieJar

#delete, #encrypted, #signed

Constructor Details

#initialize(parent_jar) ⇒ MockSignedCookieJar

Returns a new instance of MockSignedCookieJar.


55
56
57
58
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 55

def initialize(parent_jar)
  @parent_jar = parent_jar
  parent_jar.each { |k, v| self[k] = v }
end

Instance Attribute Details

#parent_jarObject (readonly)

helper for testing


53
54
55
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 53

def parent_jar
  @parent_jar
end

Instance Method Details

#[](val) ⇒ Object


60
61
62
63
64
65
66
67
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 60

def [](val)
  signed_message = @parent_jar[val]
  if signed_message
    payload, signature = signed_message.split("--")
    raise "Invalid signature" unless Digest::SHA1.hexdigest(payload) == signature
    payload
  end
end

#[]=(key, options) ⇒ Object


69
70
71
72
73
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 69

def []=(key, options)
  opt = cookie_options_to_hash(options)
  opt[:value] = "#{opt[:value]}--#{Digest::SHA1.hexdigest opt[:value]}"
  @parent_jar[key] = opt
end