@@ -7,6 +7,7 @@ class RubySamlTest < Minitest::Test
77 describe "Response" do
88 let ( :settings ) { RubySaml ::Settings . new }
99 let ( :response ) { RubySaml ::Response . new ( response_document_without_recipient ) }
10+ let ( :response_without_recipient ) { OneLogin ::RubySaml ::Response . new ( signed_response_document_without_recipient ) }
1011 let ( :response_without_attributes ) { RubySaml ::Response . new ( response_document_without_attributes ) }
1112 let ( :response_with_multiple_attribute_statements ) { RubySaml ::Response . new ( fixture ( :response_with_multiple_attribute_statements ) ) }
1213 let ( :response_without_reference_uri ) { RubySaml ::Response . new ( response_document_without_reference_uri ) }
@@ -137,8 +138,8 @@ def generate_audience_error(expected, actual)
137138
138139 it "raise when evil attack vector is present, soft = false " do
139140 @response . soft = false
140-
141- assert_raises ( RubySaml ::ValidationError ) do
141+ error_msg = "XML load failed: Dangerous XML detected. No Doctype nodes allowed"
142+ assert_raises ( RubySaml ::ValidationError , error_msg ) do
142143 @response . send ( :validate_structure )
143144 end
144145 end
@@ -245,13 +246,14 @@ def generate_audience_error(expected, actual)
245246
246247 it "raise when encountering a condition that prevents the document from being valid" do
247248 settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
248- response . settings = settings
249- response . soft = false
249+ response_without_recipient . settings = settings
250+ response_without_recipient . soft = false
250251 error_msg = "Current time is on or after NotOnOrAfter condition"
251252 assert_raises ( RubySaml ::ValidationError , error_msg ) do
252- response . is_valid?
253+ response_without_recipient . is_valid?
253254 end
254- assert_includes response . errors [ 0 ] , error_msg
255+ assert !response_without_recipient . errors . empty?
256+ assert_includes response_without_recipient . errors [ 0 ] , error_msg
255257 end
256258
257259 it "raise when encountering a SAML Response with bad formatted" do
@@ -265,7 +267,7 @@ def generate_audience_error(expected, actual)
265267
266268 it "raise when the inResponseTo value does not match the Request ID" do
267269 settings . soft = false
268- settings . idp_cert_fingerprint = signature_fingerprint_1
270+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
269271 opts = { }
270272 opts [ :settings ] = settings
271273 opts [ :matches_request_id ] = "invalid_request_id"
@@ -278,7 +280,7 @@ def generate_audience_error(expected, actual)
278280 end
279281
280282 it "raise when there is no valid audience" do
281- settings . idp_cert_fingerprint = signature_fingerprint_1
283+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
282284 settings . sp_entity_id = 'invalid'
283285 response_valid_signed . settings = settings
284286 response_valid_signed . soft = false
@@ -406,10 +408,11 @@ def generate_audience_error(expected, actual)
406408
407409 it "return false when encountering a condition that prevents the document from being valid" do
408410 settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
409- response . settings = settings
411+ response_without_recipient . settings = settings
410412 error_msg = "Current time is on or after NotOnOrAfter condition"
411- assert !response . is_valid?
412- assert_includes response . errors [ 0 ] , error_msg
413+ assert !response_without_recipient . is_valid?
414+ assert !response_without_recipient . errors . empty?
415+ assert_includes response_without_recipient . errors [ 0 ] , error_msg
413416 end
414417
415418 it "return false when encountering a SAML Response with bad formatted" do
@@ -423,7 +426,7 @@ def generate_audience_error(expected, actual)
423426
424427 it "return false when the inResponseTo value does not match the Request ID" do
425428 settings . soft = true
426- settings . idp_cert_fingerprint = signature_fingerprint_1
429+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
427430 opts = { }
428431 opts [ :settings ] = settings
429432 opts [ :matches_request_id ] = "invalid_request_id"
@@ -433,7 +436,7 @@ def generate_audience_error(expected, actual)
433436 end
434437
435438 it "return false when there is no valid audience" do
436- settings . idp_cert_fingerprint = signature_fingerprint_1
439+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
437440 settings . sp_entity_id = 'invalid'
438441 response_valid_signed . settings = settings
439442 response_valid_signed . is_valid?
0 commit comments