@@ -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,7 +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- assert_raises ( RubySaml ::ValidationError ) do
141+ error_msg = "XML load failed: Dangerous XML detected. No Doctype nodes allowed"
142+ assert_raises ( OneLogin ::RubySaml ::ValidationError , error_msg ) do
141143 @response . send ( :validate_structure )
142144 end
143145 end
@@ -244,13 +246,14 @@ def generate_audience_error(expected, actual)
244246
245247 it "raise when encountering a condition that prevents the document from being valid" do
246248 settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
247- response . settings = settings
248- response . soft = false
249+ response_without_recipient . settings = settings
250+ response_without_recipient . soft = false
249251 error_msg = "Current time is on or after NotOnOrAfter condition"
250252 assert_raises ( RubySaml ::ValidationError , error_msg ) do
251- response . is_valid?
253+ response_without_recipient . is_valid?
252254 end
253- assert_includes response . errors [ 0 ] , error_msg
255+ assert !response_without_recipient . errors . empty?
256+ assert_includes response_without_recipient . errors [ 0 ] , error_msg
254257 end
255258
256259 it "raise when encountering a SAML Response with bad formatted" do
@@ -264,7 +267,7 @@ def generate_audience_error(expected, actual)
264267
265268 it "raise when the inResponseTo value does not match the Request ID" do
266269 settings . soft = false
267- settings . idp_cert_fingerprint = signature_fingerprint_1
270+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
268271 opts = { }
269272 opts [ :settings ] = settings
270273 opts [ :matches_request_id ] = "invalid_request_id"
@@ -277,7 +280,7 @@ def generate_audience_error(expected, actual)
277280 end
278281
279282 it "raise when there is no valid audience" do
280- settings . idp_cert_fingerprint = signature_fingerprint_1
283+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
281284 settings . sp_entity_id = 'invalid'
282285 response_valid_signed . settings = settings
283286 response_valid_signed . soft = false
@@ -405,10 +408,11 @@ def generate_audience_error(expected, actual)
405408
406409 it "return false when encountering a condition that prevents the document from being valid" do
407410 settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
408- response . settings = settings
411+ response_without_recipient . settings = settings
409412 error_msg = "Current time is on or after NotOnOrAfter condition"
410- assert !response . is_valid?
411- 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
412416 end
413417
414418 it "return false when encountering a SAML Response with bad formatted" do
@@ -422,7 +426,7 @@ def generate_audience_error(expected, actual)
422426
423427 it "return false when the inResponseTo value does not match the Request ID" do
424428 settings . soft = true
425- settings . idp_cert_fingerprint = signature_fingerprint_1
429+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
426430 opts = { }
427431 opts [ :settings ] = settings
428432 opts [ :matches_request_id ] = "invalid_request_id"
@@ -432,7 +436,7 @@ def generate_audience_error(expected, actual)
432436 end
433437
434438 it "return false when there is no valid audience" do
435- settings . idp_cert_fingerprint = signature_fingerprint_1
439+ settings . idp_cert_fingerprint = ruby_saml_cert_fingerprint
436440 settings . sp_entity_id = 'invalid'
437441 response_valid_signed . settings = settings
438442 response_valid_signed . is_valid?
0 commit comments