64 lines
2.1 KiB
Ruby
64 lines
2.1 KiB
Ruby
require "test/unit"
|
|
require "openid/consumer/discovery"
|
|
require "openid/consumer/responses"
|
|
|
|
module OpenID
|
|
class Consumer
|
|
module TestResponses
|
|
class TestSuccessResponse < Test::Unit::TestCase
|
|
def setup
|
|
@endpoint = OpenIDServiceEndpoint.new
|
|
@endpoint.claimed_id = 'identity_url'
|
|
end
|
|
|
|
def test_extension_response
|
|
q = {
|
|
'ns.sreg' => 'urn:sreg',
|
|
'ns.unittest' => 'urn:unittest',
|
|
'unittest.one' => '1',
|
|
'unittest.two' => '2',
|
|
'sreg.nickname' => 'j3h',
|
|
'return_to' => 'return_to',
|
|
}
|
|
signed_list = q.keys.map { |k| 'openid.' + k }
|
|
msg = Message.from_openid_args(q)
|
|
resp = SuccessResponse.new(@endpoint, msg, signed_list)
|
|
utargs = resp.extension_response('urn:unittest', false)
|
|
assert_equal(utargs, {'one' => '1', 'two' => '2'})
|
|
sregargs = resp.extension_response('urn:sreg', false)
|
|
assert_equal(sregargs, {'nickname' => 'j3h'})
|
|
end
|
|
|
|
def test_extension_response_signed
|
|
args = {
|
|
'ns.sreg' => 'urn:sreg',
|
|
'ns.unittest' => 'urn:unittest',
|
|
'unittest.one' => '1',
|
|
'unittest.two' => '2',
|
|
'sreg.nickname' => 'j3h',
|
|
'sreg.dob' => 'yesterday',
|
|
'return_to' => 'return_to',
|
|
'signed' => 'sreg.nickname,unittest.one,sreg.dob',
|
|
}
|
|
|
|
signed_list = ['openid.sreg.nickname',
|
|
'openid.unittest.one',
|
|
'openid.sreg.dob',]
|
|
|
|
msg = Message.from_openid_args(args)
|
|
resp = SuccessResponse.new(@endpoint, msg, signed_list)
|
|
|
|
# All args in this NS are signed, so expect all.
|
|
sregargs = resp.extension_response('urn:sreg', true)
|
|
assert_equal(sregargs, {'nickname' => 'j3h', 'dob' => 'yesterday'})
|
|
|
|
# Not all args in this NS are signed, so expect nil when
|
|
# asking for them.
|
|
utargs = resp.extension_response('urn:unittest', true)
|
|
assert_equal(nil, utargs)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|