Fixing #serviceValidation identation. The right way.
This commit is contained in:
Родитель
a1ec1c5d6d
Коммит
143b71e553
|
@ -11,6 +11,7 @@ class CASServer::Authenticators::Test < CASServer::Authenticators::Base
|
|||
raise CASServer::AuthenticatorError, "Username is 'do_error'!" if @username == 'do_error'
|
||||
|
||||
@extra_attributes[:test_string] = "testing!"
|
||||
@extra_attributes[:test_utf_string] = "Ютф"
|
||||
@extra_attributes[:test_numeric] = 123.45
|
||||
@extra_attributes[:test_serialized] = {:foo => 'bar', :alpha => [1,2,3]}
|
||||
|
||||
|
|
|
@ -651,13 +651,15 @@ module CASServer
|
|||
end
|
||||
end
|
||||
|
||||
def serialize_extra_attribute(builder, value)
|
||||
def serialize_extra_attribute(builder, key, value)
|
||||
if value.kind_of?(String)
|
||||
builder.text! value
|
||||
builder.tag! key, value
|
||||
elsif value.kind_of?(Numeric)
|
||||
builder.text! value.to_s
|
||||
builder.tag! key, value.to_s
|
||||
else
|
||||
builder.cdata! value.to_yaml
|
||||
builder.tag! key do
|
||||
builder.cdata! value.to_yaml
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,9 +3,7 @@ if @success
|
|||
xml.tag!("cas:authenticationSuccess") do
|
||||
xml.tag!("cas:user", @username.to_s)
|
||||
@extra_attributes.each do |key, value|
|
||||
xml.tag!(key) do
|
||||
serialize_extra_attribute(xml, value)
|
||||
end
|
||||
serialize_extra_attribute(xml, key, value)
|
||||
end
|
||||
if @pgtiou
|
||||
xml.tag!("cas:proxyGrantingTicket", @pgtiou.to_s)
|
||||
|
|
|
@ -3,9 +3,7 @@ if @success
|
|||
xml.tag!("cas:authenticationSuccess") do
|
||||
xml.tag!("cas:user", @username.to_s)
|
||||
@extra_attributes.each do |key, value|
|
||||
xml.tag!(key) do
|
||||
serialize_extra_attribute(xml, value)
|
||||
end
|
||||
serialize_extra_attribute(xml, key, value)
|
||||
end
|
||||
if @pgtiou
|
||||
xml.tag!("cas:proxyGrantingTicket", @pgtiou.to_s)
|
||||
|
|
|
@ -111,4 +111,30 @@ describe 'CASServer' do
|
|||
page.status_code.should_not == 404
|
||||
end
|
||||
end
|
||||
|
||||
describe "proxyValidate" do
|
||||
before do
|
||||
load_server(File.dirname(__FILE__) + "/default_config.yml")
|
||||
reset_spec_database
|
||||
|
||||
visit "/login?service="+CGI.escape(@target_service)
|
||||
|
||||
fill_in 'username', :with => VALID_USERNAME
|
||||
fill_in 'password', :with => VALID_PASSWORD
|
||||
|
||||
click_button 'login-submit'
|
||||
|
||||
page.current_url.should =~ /^#{Regexp.escape(@target_service)}\/?\?ticket=ST\-[1-9rA-Z]+/
|
||||
@ticket = page.current_url.match(/ticket=(.*)$/)[1]
|
||||
end
|
||||
|
||||
it "should have extra attributes in proper format" do
|
||||
visit "/serviceValidate?service=#{CGI.escape(@target_service)}&ticket=#{@ticket}"
|
||||
|
||||
puts page.body
|
||||
page.body.should match("<test_string>testing!</test_string>")
|
||||
page.body.should match("<test_numeric>123.45</test_numeric>")
|
||||
page.body.should match("<test_utf_string>Ютф</test_utf_string>")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче