@@ -129,6 +129,20 @@ class RequestTest < Minitest::Test
129129 assert_match /&hello=$/ , auth_url
130130 end
131131
132+ it "RelayState cases" do
133+ auth_url = OneLogin ::RubySaml ::Authrequest . new . create ( settings , { :RelayState => nil } )
134+ assert !auth_url . include? ( 'RelayState' )
135+
136+ auth_url = OneLogin ::RubySaml ::Authrequest . new . create ( settings , { :RelayState => "http://example.com" } )
137+ assert auth_url . include? ( '&RelayState=http%3A%2F%2Fexample.com' )
138+
139+ auth_url = OneLogin ::RubySaml ::Authrequest . new . create ( settings , { 'RelayState' => nil } )
140+ assert !auth_url . include? ( 'RelayState' )
141+
142+ auth_url = OneLogin ::RubySaml ::Authrequest . new . create ( settings , { 'RelayState' => "http://example.com" } )
143+ assert auth_url . include? ( '&RelayState=http%3A%2F%2Fexample.com' )
144+ end
145+
132146 describe "when the target url is not set" do
133147 before do
134148 settings . idp_sso_target_url = nil
@@ -235,7 +249,7 @@ class RequestTest < Minitest::Test
235249 settings . certificate = ruby_saml_cert_text
236250 settings . private_key = ruby_saml_key_text
237251 end
238-
252+
239253 it "create a signature parameter with RSA_SHA1 and validate it" do
240254 settings . security [ :signature_method ] = XMLSecurity ::Document ::RSA_SHA1
241255
@@ -268,7 +282,7 @@ class RequestTest < Minitest::Test
268282
269283 signature_algorithm = XMLSecurity ::BaseDocument . new . algorithm ( params [ 'SigAlg' ] )
270284 assert_equal signature_algorithm , OpenSSL ::Digest ::SHA256
271- assert cert . public_key . verify ( signature_algorithm . new , Base64 . decode64 ( params [ 'Signature' ] ) , query_string )
285+ assert cert . public_key . verify ( signature_algorithm . new , Base64 . decode64 ( params [ 'Signature' ] ) , query_string )
272286 end
273287 end
274288
0 commit comments