1212from onelogin .saml2 import compat
1313from onelogin .saml2 .metadata import OneLogin_Saml2_Metadata
1414from onelogin .saml2 .settings import OneLogin_Saml2_Settings
15+ from onelogin .saml2 .constants import OneLogin_Saml2_Constants
1516
1617
1718class OneLogin_Saml2_Metadata_Test (unittest .TestCase ):
@@ -218,6 +219,7 @@ def testSignMetadata(self):
218219
219220 self .assertIn ('<ds:SignedInfo>\n <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>' , signed_metadata )
220221 self .assertIn ('<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>' , signed_metadata )
222+ self .assertIn ('<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>' , signed_metadata )
221223 self .assertIn ('<ds:Reference' , signed_metadata )
222224 self .assertIn ('<ds:KeyInfo>\n <ds:X509Data>\n <ds:X509Certificate>' , signed_metadata )
223225
@@ -226,6 +228,26 @@ def testSignMetadata(self):
226228 exception = context .exception
227229 self .assertIn ("Empty string supplied as input" , str (exception ))
228230
231+ signed_metadata_2 = compat .to_string (OneLogin_Saml2_Metadata .sign_metadata (metadata , key , cert , OneLogin_Saml2_Constants .RSA_SHA256 , OneLogin_Saml2_Constants .SHA384 ))
232+
233+ self .assertIn ('<md:SPSSODescriptor' , signed_metadata_2 )
234+ self .assertIn ('entityID="http://stuff.com/endpoints/metadata.php"' , signed_metadata_2 )
235+ self .assertIn ('AuthnRequestsSigned="false"' , signed_metadata_2 )
236+ self .assertIn ('WantAssertionsSigned="false"' , signed_metadata_2 )
237+
238+ self .assertIn ('<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"' , signed_metadata_2 )
239+ self .assertIn ('Location="http://stuff.com/endpoints/endpoints/acs.php"' , signed_metadata_2 )
240+ self .assertIn ('<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"' , signed_metadata_2 )
241+ self .assertIn (' Location="http://stuff.com/endpoints/endpoints/sls.php"/>' , signed_metadata_2 )
242+
243+ self .assertIn ('<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>' , signed_metadata_2 )
244+
245+ self .assertIn ('<ds:SignedInfo>\n <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>' , signed_metadata_2 )
246+ self .assertIn ('<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384"/>' , signed_metadata_2 )
247+ self .assertIn ('<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>' , signed_metadata_2 )
248+ self .assertIn ('<ds:Reference' , signed_metadata_2 )
249+ self .assertIn ('<ds:KeyInfo>\n <ds:X509Data>\n <ds:X509Certificate>' , signed_metadata_2 )
250+
229251 def testAddX509KeyDescriptors (self ):
230252 """
231253 Tests the addX509KeyDescriptors method of the OneLogin_Saml2_Metadata
0 commit comments