END_TEST START_TEST(test04_node_new_from_dump) { LassoNode *node; char *msg = \ "<lib:LogoutRequest xmlns:lib=\"urn:liberty:iff:2003-08\" "\ "xmlns:saml=\"urn:oasis:names:tc:SAML:1.0:assertion\" "\ "RequestID=\"_52EDD5A8A0BF74977C0A16B827CA4229\" MajorVersion=\"1\" "\ "MinorVersion=\"2\" IssueInstant=\"2004-12-04T11:05:26Z\">" \ "<lib:ProviderID>https://idp1/metadata</lib:ProviderID>" \ "<saml:NameIdentifier xmlns:saml=\"urn:oasis:names:tc:SAML:1.0:assertion\" "\ "NameQualifier=\"https://idp1/metadata\" "\ "Format=\"urn:liberty:iff:nameid:federated\">_AF452F97C9E1590DDEB91D5BA6AA48ED"\ "</saml:NameIdentifier>"\ "</lib:LogoutRequest>"; char *dump; node = lasso_node_new_from_dump(msg); fail_unless(node != NULL, "new_from_dump failed"); dump = lasso_node_dump(node); fail_unless(dump != NULL, "node_dump failed"); g_object_unref(node); g_free(dump); }
/** * lasso_server_new_from_dump: * @dump: XML server dump * * Restores the @dump to a new #LassoServer. * * Return value: a newly created #LassoServer; or NULL if an error occured **/ LassoServer* lasso_server_new_from_dump(const gchar *dump) { LassoServer *server; server = (LassoServer*)lasso_node_new_from_dump(dump); if (! LASSO_IS_SERVER(server)) { lasso_release_gobject(server); } return server; }
/** * lasso_identity_new_from_dump: * @dump: XML server dump * * Restores the @dump to a new #LassoIdentity. * * Return value: a newly created #LassoIdentity; or NULL if an error occured **/ LassoIdentity* lasso_identity_new_from_dump(const gchar *dump) { LassoIdentity *identity; identity = (LassoIdentity*)lasso_node_new_from_dump(dump); if (! LASSO_IS_IDENTITY(identity)) { lasso_release_gobject(identity); } return identity; }
/** * lasso_server_add_service_from_dump: * @server: a #LassoServer * @dump: the XML dump of a #LassoNode representing a service endpoint. * * An utility function that parse a #LassoNode dump an try to add it as a * service using lasso_server_add_service. * * Return value: 0 if succesfull, LASSO_PARAM_ERROR_BAD_TYPE_OF_NULL_OBJECT if * said dump is not a #LassoNode or is not of the righ type, * LASSO_PARAM_ERROR_INVALID_VALUE if dump is NULL. **/ gint lasso_server_add_service_from_dump(LassoServer *server, const gchar *dump) { LassoNode *node; gint return_code; g_return_val_if_fail(dump != NULL, LASSO_PARAM_ERROR_INVALID_VALUE); node = lasso_node_new_from_dump(dump); return_code = lasso_server_add_service(server, node); g_object_unref(node); return return_code; }