[tests] remove work-around for letting ID-FF 1.2 tests work with the thin-sessions flag activated

But when thin-sessions is activated we use the new way of passing artifact
message content around.
This commit is contained in:
Benjamin Dauvergne 2011-12-23 11:09:47 +01:00
parent 7b3b7d6900
commit af4c8de947
1 changed files with 24 additions and 21 deletions

View File

@ -33,16 +33,6 @@
#include "tests.h" #include "tests.h"
#include "../bindings/ghashtable.h" #include "../bindings/ghashtable.h"
#define save_thin_session \
gboolean old_thin_sessions = lasso_flag_thin_sessions;
#define push_thin_sessions \
lasso_flag_thin_sessions = FALSE;
#define pop_thin_sessions \
lasso_flag_thin_sessions = old_thin_sessions;
static char* static char*
generateIdentityProviderContextDump() generateIdentityProviderContextDump()
{ {
@ -160,7 +150,8 @@ START_TEST(test02_serviceProviderLogin)
char *spLoginDump; char *spLoginDump;
int requestType; int requestType;
char *found; char *found;
save_thin_session; char *artifact_message;
char *artifact;
serviceProviderContextDump = generateServiceProviderContextDump(); serviceProviderContextDump = generateServiceProviderContextDump();
spContext = lasso_server_new_from_dump(serviceProviderContextDump); spContext = lasso_server_new_from_dump(serviceProviderContextDump);
@ -190,7 +181,6 @@ START_TEST(test02_serviceProviderLogin)
"authnRequestQuery RelayState parameter should be encoded"); "authnRequestQuery RelayState parameter should be encoded");
/* Identity provider singleSignOn, for a user having no federation. */ /* Identity provider singleSignOn, for a user having no federation. */
push_thin_sessions;
identityProviderContextDump = generateIdentityProviderContextDump(); identityProviderContextDump = generateIdentityProviderContextDump();
idpContext = lasso_server_new_from_dump(identityProviderContextDump); idpContext = lasso_server_new_from_dump(identityProviderContextDump);
idpLoginContext = lasso_login_new(idpContext); idpLoginContext = lasso_login_new(idpContext);
@ -239,7 +229,12 @@ START_TEST(test02_serviceProviderLogin)
serviceProviderId = g_strdup(LASSO_PROFILE(idpLoginContext)->remote_providerID); serviceProviderId = g_strdup(LASSO_PROFILE(idpLoginContext)->remote_providerID);
fail_unless(serviceProviderId != NULL, fail_unless(serviceProviderId != NULL,
"lasso_profile_get_remote_providerID shouldn't return NULL"); "lasso_profile_get_remote_providerID shouldn't return NULL");
pop_thin_sessions; if (lasso_flag_thin_sessions) {
/* when using thin sessions, the way artifact message is constructed changes as the
* session no more contains full assertions. */
artifact = g_strdup(lasso_profile_get_artifact(&idpLoginContext->parent));
artifact_message = g_strdup(lasso_profile_get_artifact_message(&idpLoginContext->parent));
}
/* Service provider assertion consumer */ /* Service provider assertion consumer */
lasso_server_destroy(spContext); lasso_server_destroy(spContext);
@ -262,7 +257,6 @@ START_TEST(test02_serviceProviderLogin)
soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body; soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body;
fail_unless(soapRequestMsg != NULL, "soapRequestMsg must not be NULL"); fail_unless(soapRequestMsg != NULL, "soapRequestMsg must not be NULL");
push_thin_sessions;
/* Identity provider SOAP endpoint */ /* Identity provider SOAP endpoint */
lasso_server_destroy(idpContext); lasso_server_destroy(idpContext);
lasso_login_destroy(idpLoginContext); lasso_login_destroy(idpLoginContext);
@ -275,12 +269,15 @@ START_TEST(test02_serviceProviderLogin)
idpLoginContext = lasso_login_new(idpContext); idpLoginContext = lasso_login_new(idpContext);
check_true(LASSO_IS_LOGIN(idpLoginContext)); check_true(LASSO_IS_LOGIN(idpLoginContext));
check_good_rc(lasso_login_process_request_msg(idpLoginContext, soapRequestMsg)); check_good_rc(lasso_login_process_request_msg(idpLoginContext, soapRequestMsg));
if (lasso_flag_thin_sessions) {
check_str_equals(idpLoginContext->assertionArtifact, artifact);
lasso_profile_set_artifact_message(&idpLoginContext->parent, artifact_message);
}
check_good_rc(lasso_profile_set_session_from_dump(LASSO_PROFILE(idpLoginContext), check_good_rc(lasso_profile_set_session_from_dump(LASSO_PROFILE(idpLoginContext),
idpSessionContextDump)); idpSessionContextDump));
check_good_rc(lasso_login_build_response_msg(idpLoginContext, serviceProviderId)); check_good_rc(lasso_login_build_response_msg(idpLoginContext, serviceProviderId));
soapResponseMsg = LASSO_PROFILE(idpLoginContext)->msg_body; soapResponseMsg = LASSO_PROFILE(idpLoginContext)->msg_body;
fail_unless(soapResponseMsg != NULL, "soapResponseMsg must not be NULL"); fail_unless(soapResponseMsg != NULL, "soapResponseMsg must not be NULL");
pop_thin_sessions;
/* Service provider assertion consumer (step 2: process SOAP response) */ /* Service provider assertion consumer (step 2: process SOAP response) */
check_good_rc(lasso_login_process_response_msg(spLoginContext, soapResponseMsg)); check_good_rc(lasso_login_process_response_msg(spLoginContext, soapResponseMsg));
@ -337,7 +334,8 @@ START_TEST(test03_serviceProviderLogin)
char *spIdentityContextDump; char *spIdentityContextDump;
char *spSessionDump; char *spSessionDump;
int requestType; int requestType;
save_thin_session; char *artifact_message;
char *artifact;
serviceProviderContextDump = generateServiceProviderContextDump(); serviceProviderContextDump = generateServiceProviderContextDump();
spContext = lasso_server_new_from_dump(serviceProviderContextDump); spContext = lasso_server_new_from_dump(serviceProviderContextDump);
@ -363,7 +361,6 @@ START_TEST(test03_serviceProviderLogin)
fail_unless(strlen(authnRequestQuery) > 0, fail_unless(strlen(authnRequestQuery) > 0,
"authnRequestRequest shouldn't be an empty string"); "authnRequestRequest shouldn't be an empty string");
push_thin_sessions;
/* Identity provider singleSignOn, for a user having no federation. */ /* Identity provider singleSignOn, for a user having no federation. */
identityProviderContextDump = generateIdentityProviderContextDumpMemory(); identityProviderContextDump = generateIdentityProviderContextDumpMemory();
idpContext = lasso_server_new_from_dump(identityProviderContextDump); idpContext = lasso_server_new_from_dump(identityProviderContextDump);
@ -404,7 +401,12 @@ START_TEST(test03_serviceProviderLogin)
serviceProviderId = g_strdup(LASSO_PROFILE(idpLoginContext)->remote_providerID); serviceProviderId = g_strdup(LASSO_PROFILE(idpLoginContext)->remote_providerID);
fail_unless(serviceProviderId != NULL, fail_unless(serviceProviderId != NULL,
"lasso_profile_get_remote_providerID shouldn't return NULL"); "lasso_profile_get_remote_providerID shouldn't return NULL");
pop_thin_sessions; if (lasso_flag_thin_sessions) {
/* when using thin sessions, the way artifact message is constructed changes as the
* session no more contains full assertions. */
artifact = g_strdup(lasso_profile_get_artifact(&idpLoginContext->parent));
artifact_message = g_strdup(lasso_profile_get_artifact_message(&idpLoginContext->parent));
}
/* Service provider assertion consumer */ /* Service provider assertion consumer */
lasso_server_destroy(spContext); lasso_server_destroy(spContext);
@ -421,7 +423,6 @@ START_TEST(test03_serviceProviderLogin)
soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body; soapRequestMsg = LASSO_PROFILE(spLoginContext)->msg_body;
fail_unless(soapRequestMsg != NULL, "soapRequestMsg must not be NULL"); fail_unless(soapRequestMsg != NULL, "soapRequestMsg must not be NULL");
push_thin_sessions;
/* Identity provider SOAP endpoint */ /* Identity provider SOAP endpoint */
lasso_server_destroy(idpContext); lasso_server_destroy(idpContext);
lasso_login_destroy(idpLoginContext); lasso_login_destroy(idpLoginContext);
@ -433,7 +434,10 @@ START_TEST(test03_serviceProviderLogin)
idpLoginContext = lasso_login_new(idpContext); idpLoginContext = lasso_login_new(idpContext);
rc = lasso_login_process_request_msg(idpLoginContext, soapRequestMsg); rc = lasso_login_process_request_msg(idpLoginContext, soapRequestMsg);
fail_unless(rc == 0, "lasso_login_process_request_msg failed"); fail_unless(rc == 0, "lasso_login_process_request_msg failed");
if (lasso_flag_thin_sessions) {
check_str_equals(idpLoginContext->assertionArtifact, artifact);
lasso_profile_set_artifact_message(&idpLoginContext->parent, artifact_message);
}
rc = lasso_profile_set_session_from_dump(LASSO_PROFILE(idpLoginContext), rc = lasso_profile_set_session_from_dump(LASSO_PROFILE(idpLoginContext),
idpSessionContextDump); idpSessionContextDump);
fail_unless(rc == 0, "lasso_login_set_assertion_from_dump failed"); fail_unless(rc == 0, "lasso_login_set_assertion_from_dump failed");
@ -441,7 +445,6 @@ START_TEST(test03_serviceProviderLogin)
fail_unless(rc == 0, "lasso_login_build_response_msg failed"); fail_unless(rc == 0, "lasso_login_build_response_msg failed");
soapResponseMsg = LASSO_PROFILE(idpLoginContext)->msg_body; soapResponseMsg = LASSO_PROFILE(idpLoginContext)->msg_body;
fail_unless(soapResponseMsg != NULL, "soapResponseMsg must not be NULL"); fail_unless(soapResponseMsg != NULL, "soapResponseMsg must not be NULL");
pop_thin_sessions;
/* Service provider assertion consumer (step 2: process SOAP response) */ /* Service provider assertion consumer (step 2: process SOAP response) */
rc = lasso_login_process_response_msg(spLoginContext, soapResponseMsg); rc = lasso_login_process_response_msg(spLoginContext, soapResponseMsg);