123456789_123456789_123456789_123456789_123456789_

Class: ActionCable::Connection::TestSocket

Relationships & Source Files
Namespace Children
Classes:
Inherits: Object
Defined in: actioncable/lib/action_cable/connection/test_case.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(request) ⇒ TestSocket

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 85

def initialize(request)
  inner_logger = ActiveSupport::Logger.new(StringIO.new)
  tagged_logging = ActiveSupport::TaggedLogging.new(inner_logger)
  @logger = ActionCable::Server::TaggedLoggerProxy.new(tagged_logging, tags: [])
  @request = request
  @env = request.env
  @connection = nil
  @closed = false
  @transmissions = []
end

Class Method Details

.build_request(path, params: nil, headers: {}, session: {}, env: {}, cookies: nil)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 62

def build_request(path, params: nil, headers: {}, session: {}, env: {}, cookies: nil)
  wrapped_headers = ActionDispatch::Http::Headers.from_hash(headers)

  uri = URI.parse(path)

  query_string = params.nil? ? uri.query : params.to_query

  request_env = {
    "QUERY_STRING" => query_string,
    "PATH_INFO" => uri.path
  }.merge(env)

  if wrapped_headers.present?
    ActionDispatch::Http::Headers.from_hash(request_env).merge!(wrapped_headers)
  end

  Request.create(request_env).tap do |request|
    request.session = session.with_indifferent_access
    request.cookie_jar = cookies
  end
end

Instance Attribute Details

#closed (readonly)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 59

attr_reader :logger, :request, :transmissions, :closed, :env

#env (readonly)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 59

attr_reader :logger, :request, :transmissions, :closed, :env

#logger (readonly)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 59

attr_reader :logger, :request, :transmissions, :closed, :env

#request (readonly)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 59

attr_reader :logger, :request, :transmissions, :closed, :env

#transmissions (readonly)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 59

attr_reader :logger, :request, :transmissions, :closed, :env

Instance Method Details

#close

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 100

def close
  @closed = true
end

#perform_work(receiver)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 104

def perform_work(receiver, ...)
  receiver.public_send(...)
end

#transmit(data)

[ GitHub ]

  
# File 'actioncable/lib/action_cable/connection/test_case.rb', line 96

def transmit(data)
  @transmissions << data.with_indifferent_access
end