module Sonar

Public Instance Methods

__sonar__session__(reset = false) click to toggle source
# File lib/sonar.rb, line 90
def __sonar__session__ reset = false
  (@__sonar__session__ ||= {})[app.__id__] = ::SonarSession.new(app) if reset
  (@__sonar__session__ ||= {})[app.__id__] ||= ::SonarSession.new(app)
end
app(app = nil) click to toggle source

switch session

sonar using app based sessions, that's it, creates sessions based on app __id__. you can test multiple apps and use `app RackApp` to switch between them.

# File lib/sonar.rb, line 25
def app app = nil
  @__sonar__app__ = app if app
  @__sonar__app__
end
follow_redirect!() click to toggle source
# File lib/sonar.rb, line 83
def follow_redirect!
  last_response.redirect? ||
      raise('Last response is not an redirect!')
  scheme = last_request.env['HTTPS'] == 'on' ? 'https' : 'http'
  request scheme, 'GET', last_response['Location'], {}, {'HTTP_REFERER' => last_request.url}
end
map(*args) click to toggle source
# File lib/sonar.rb, line 30
def map *args
  @__sonar__base_url__ = args.first if args.size > 0
  @__sonar__base_url__
end
request(scheme, request_method, uri, params, env = {}) click to toggle source
# File lib/sonar.rb, line 71
def request scheme, request_method, uri, params, env = {}
  uri = [@__sonar__base_url__, uri].compact.join('/') unless uri =~ /\A\/|\A[\w|\d]+\:\/\//
  uri = ::URI.parse(uri.gsub(/\A\/+/, '/'))
  uri.scheme ||= scheme.to_s
  uri.host ||= ::SonarConstants::DEFAULT_HOST
  uri.path = '/' << uri.path unless uri.path =~ /\A\//
  params.is_a?(Hash) && params.each_pair do |k, v|
    (v.is_a?(Numeric) || v.is_a?(Symbol)) && params.update(k => v.to_s)
  end
  __sonar__session__.invoke_request request_method, uri, params, env
end
reset_app!() click to toggle source

reset session for current app. everything will be reset - cookies, headers, authorizations etc.

# File lib/sonar.rb, line 37
def reset_app!
  __sonar__session__ :reset
end
Also aliased as: reset_browser!
reset_browser!()
Alias for: reset_app!