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, #signed

Constructor Details

#initialize(parent_jar) ⇒ MockSignedCookieJar

Returns a new instance of MockSignedCookieJar.



36
37
38
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 36

def initialize(parent_jar)
  @parent_jar = parent_jar
end

Instance Attribute Details

#parent_jarObject (readonly)

helper for testing



34
35
36
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 34

def parent_jar
  @parent_jar
end

Instance Method Details

#[](val) ⇒ Object



40
41
42
43
44
45
46
47
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 40

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



49
50
51
52
# File 'lib/authlogic/test_case/mock_cookie_jar.rb', line 49

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