Class: SonarSession
- Inherits:
-
Object
show all
- Includes:
- Sonar
- Defined in:
- lib/sonar/session.rb
Defined Under Namespace
Classes: MockDigestRequest
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Sonar
#follow_redirect!, #map, #request
Constructor Details
Returns a new instance of SonarSession.
8
9
10
11
12
13
14
|
# File 'lib/sonar/session.rb', line 8
def initialize app
app.respond_to?(:call) ||
raise('app should be a valid Rack app')
@app = app
@headers, @cookies = {}, ::SonarCookies.new
end
|
Instance Attribute Details
#cookies ⇒ Object
Returns the value of attribute cookies.
5
6
7
|
# File 'lib/sonar/session.rb', line 5
def cookies
@cookies
end
|
Returns the value of attribute headers.
5
6
7
|
# File 'lib/sonar/session.rb', line 5
def
@headers
end
|
#last_request ⇒ Object
Returns the value of attribute last_request.
5
6
7
|
# File 'lib/sonar/session.rb', line 5
def last_request
@last_request
end
|
#last_response ⇒ Object
Returns the value of attribute last_response.
5
6
7
|
# File 'lib/sonar/session.rb', line 5
def last_response
@last_response
end
|
Instance Method Details
#__sonar__session__ ⇒ Object
63
64
65
|
# File 'lib/sonar/session.rb', line 63
def __sonar__session__
self
end
|
#app(*args) ⇒ Object
73
74
75
76
|
# File 'lib/sonar/session.rb', line 73
def app *args
args.any? && raise('It makes no sense to use `%s` with manually created sessions. To test another app, just create a new session.' % __method__)
@app
end
|
#basic_authorize(user, pass) ⇒ Object
Also known as:
authorize, auth
16
17
18
|
# File 'lib/sonar/session.rb', line 16
def basic_authorize user, pass
@basic_auth = [user, pass]
end
|
#digest_authorize(user, pass) ⇒ Object
Also known as:
digest_auth
23
24
25
|
# File 'lib/sonar/session.rb', line 23
def digest_authorize user, pass
@digest_auth = [user, pass]
end
|
#invoke_request(request_method, uri, params, env) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/sonar/session.rb', line 42
def invoke_request request_method, uri, params, env
default_env = ::SonarConstants::DEFAULT_ENV.dup.merge(env)
default_env.update :method => request_method
default_env.update :params => params
default_env.update 'HTTP_COOKIE' => cookies.to_s(uri)
default_env.update
process_request uri, default_env
if @digest_auth && @last_response.status == 401 && (challenge = @last_response['WWW-Authenticate'])
default_env.update (challenge, uri.path, request_method)
process_request uri, default_env
end
cookies.persist(@last_response.['Set-Cookie'], uri)
@last_response.respond_to?(:finish) && @last_response.finish
@last_response
end
|
#reset_app! ⇒ Object
Also known as:
reset_browser!
67
68
69
|
# File 'lib/sonar/session.rb', line 67
def reset_app!
raise 'It makes no sense to use `%s` with manually created sessions. To test another app, just create a new session.' % __method__
end
|
#reset_auth! ⇒ Object
37
38
39
40
|
# File 'lib/sonar/session.rb', line 37
def reset_auth!
reset_basic_auth!
reset_digest_auth!
end
|
#reset_basic_auth! ⇒ Object
29
30
31
|
# File 'lib/sonar/session.rb', line 29
def reset_basic_auth!
@basic_auth = nil
end
|
#reset_digest_auth! ⇒ Object
33
34
35
|
# File 'lib/sonar/session.rb', line 33
def reset_digest_auth!
@digest_auth = nil
end
|