Class: Booth::Testing::Support::CookieDataFromBrowser

Inherits:
Object
  • Object
show all
Includes:
Logging, Calls
Defined in:
lib/booth/testing/support/cookie_data_from_browser.rb

Instance Method Summary collapse

Instance Method Details

#callObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/booth/testing/support/cookie_data_from_browser.rb', line 10

def call
  cipher = ActiveSupport::MessageEncryptor.default_cipher
  key_length = ActiveSupport::MessageEncryptor.key_len(cipher)
  key_generator = Rails.application.key_generator
  salt = Rails.configuration.action_dispatch.authenticated_encrypted_cookie_salt
  secret = key_generator.generate_key(salt, key_length)
  encryptor = ActiveSupport::MessageEncryptor.new(secret, cipher:, serializer: ActiveSupport::MessageEncryptor::NullSerializer)
  cookie = CGI.unescape(encrypted_cookie_data.strip)
  session_name = Rails.application.config.session_options[:key]

  JSON.parse encryptor.decrypt_and_verify(cookie, purpose: "cookie.#{session_name}")
end