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!