Skip to content

Commit a8d03a5

Browse files
author
Tessa Bloomer
committed
more testing
1 parent 8d9ea1a commit a8d03a5

File tree

2 files changed

+122
-0
lines changed

2 files changed

+122
-0
lines changed

tests/src/OneLogin/saml2_tests/logout_request_test.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,70 @@ def testIsValid(self):
413413
logout_request5 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
414414
self.assertTrue(logout_request5.is_valid(request_data))
415415

416+
def testIsValidWithCapitalization(self):
417+
"""
418+
Tests the is_valid method of the OneLogin_Saml2_LogoutRequest
419+
"""
420+
request_data = {
421+
'http_host': 'exaMPLe.com',
422+
'script_name': 'index.html'
423+
}
424+
request = self.file_contents(join(self.data_path, 'logout_requests', 'logout_request.xml'))
425+
settings = OneLogin_Saml2_Settings(self.loadSettingsJSON())
426+
427+
logout_request = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
428+
self.assertTrue(logout_request.is_valid(request_data))
429+
430+
settings.set_strict(True)
431+
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
432+
self.assertFalse(logout_request2.is_valid(request_data))
433+
434+
settings.set_strict(False)
435+
dom = parseString(request)
436+
logout_request3 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(dom.toxml()))
437+
self.assertTrue(logout_request3.is_valid(request_data))
438+
439+
settings.set_strict(True)
440+
logout_request4 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(dom.toxml()))
441+
self.assertFalse(logout_request4.is_valid(request_data))
442+
443+
current_url = OneLogin_Saml2_Utils.get_self_url_no_query(request_data)
444+
request = request.replace('http://stuff.com/endpoints/endpoints/sls.php', current_url.lower())
445+
logout_request5 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
446+
self.assertTrue(logout_request5.is_valid(request_data))
447+
448+
def testIsInValidWithCapitalization(self):
449+
"""
450+
Tests the is_valid method of the OneLogin_Saml2_LogoutRequest
451+
"""
452+
request_data = {
453+
'http_host': 'example.com',
454+
'script_name': 'INdex.html'
455+
}
456+
request = self.file_contents(join(self.data_path, 'logout_requests', 'logout_request.xml'))
457+
settings = OneLogin_Saml2_Settings(self.loadSettingsJSON())
458+
459+
logout_request = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
460+
self.assertTrue(logout_request.is_valid(request_data))
461+
462+
settings.set_strict(True)
463+
logout_request2 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
464+
self.assertFalse(logout_request2.is_valid(request_data))
465+
466+
settings.set_strict(False)
467+
dom = parseString(request)
468+
logout_request3 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(dom.toxml()))
469+
self.assertTrue(logout_request3.is_valid(request_data))
470+
471+
settings.set_strict(True)
472+
logout_request4 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(dom.toxml()))
473+
self.assertFalse(logout_request4.is_valid(request_data))
474+
475+
current_url = OneLogin_Saml2_Utils.get_self_url_no_query(request_data)
476+
request = request.replace('http://stuff.com/endpoints/endpoints/sls.php', current_url.lower())
477+
logout_request5 = OneLogin_Saml2_Logout_Request(settings, OneLogin_Saml2_Utils.b64encode(request))
478+
self.assertFalse(logout_request5.is_valid(request_data))
479+
416480
def testIsValidWithXMLEncoding(self):
417481
"""
418482
Tests the is_valid method of the OneLogin_Saml2_LogoutRequest

tests/src/OneLogin/saml2_tests/logout_response_test.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,64 @@ def testIsValid(self):
276276
response_3 = OneLogin_Saml2_Logout_Response(settings, message_3)
277277
self.assertTrue(response_3.is_valid(request_data))
278278

279+
def testIsValidWithCapitalization(self):
280+
"""
281+
Tests the is_valid method of the OneLogin_Saml2_LogoutResponse
282+
"""
283+
request_data = {
284+
'http_host': 'exaMPLe.com',
285+
'script_name': 'index.html',
286+
'get_data': {}
287+
}
288+
settings = OneLogin_Saml2_Settings(self.loadSettingsJSON())
289+
message = self.file_contents(join(self.data_path, 'logout_responses', 'logout_response_deflated.xml.base64'))
290+
291+
response = OneLogin_Saml2_Logout_Response(settings, message)
292+
self.assertTrue(response.is_valid(request_data))
293+
294+
settings.set_strict(True)
295+
response_2 = OneLogin_Saml2_Logout_Response(settings, message)
296+
with self.assertRaisesRegex(Exception, 'The LogoutResponse was received at'):
297+
response_2.is_valid(request_data, raise_exceptions=True)
298+
299+
plain_message = compat.to_string(OneLogin_Saml2_Utils.decode_base64_and_inflate(message))
300+
301+
current_url = OneLogin_Saml2_Utils.get_self_url_no_query(request_data).lower()
302+
plain_message = plain_message.replace('http://stuff.com/endpoints/endpoints/sls.php', current_url)
303+
message_3 = OneLogin_Saml2_Utils.deflate_and_base64_encode(plain_message)
304+
305+
response_3 = OneLogin_Saml2_Logout_Response(settings, message_3)
306+
self.assertTrue(response_3.is_valid(request_data))
307+
308+
def testIsInValidWithCapitalization(self):
309+
"""
310+
Tests the is_valid method of the OneLogin_Saml2_LogoutResponse
311+
"""
312+
request_data = {
313+
'http_host': 'example.com',
314+
'script_name': 'INdex.html',
315+
'get_data': {}
316+
}
317+
settings = OneLogin_Saml2_Settings(self.loadSettingsJSON())
318+
message = self.file_contents(join(self.data_path, 'logout_responses', 'logout_response_deflated.xml.base64'))
319+
320+
response = OneLogin_Saml2_Logout_Response(settings, message)
321+
self.assertTrue(response.is_valid(request_data))
322+
323+
settings.set_strict(True)
324+
response_2 = OneLogin_Saml2_Logout_Response(settings, message)
325+
with self.assertRaisesRegex(Exception, 'The LogoutResponse was received at'):
326+
response_2.is_valid(request_data, raise_exceptions=True)
327+
328+
plain_message = compat.to_string(OneLogin_Saml2_Utils.decode_base64_and_inflate(message))
329+
current_url = OneLogin_Saml2_Utils.get_self_url_no_query(request_data).lower()
330+
plain_message = plain_message.replace('http://stuff.com/endpoints/endpoints/sls.php', current_url)
331+
message_3 = OneLogin_Saml2_Utils.deflate_and_base64_encode(plain_message)
332+
333+
response_3 = OneLogin_Saml2_Logout_Response(settings, message_3)
334+
self.assertFalse(response_3.is_valid(request_data))
335+
336+
279337
def testIsValidWithXMLEncoding(self):
280338
"""
281339
Tests the is_valid method of the OneLogin_Saml2_LogoutResponse

0 commit comments

Comments
 (0)