oc-facho/experimental/facho-signer/src/xades/xades_test.c
bit4bit 27ebbecc01 facho-signer: se usa autoconf
FossilOrigin-Name: 5a7e25376d54d22f8d955c9b6827785d2efd673fee9813b27f4ce39d4a3e8f7e
2021-12-15 23:05:31 +00:00

90 lines
2.3 KiB
C

#include <time.h>
#include <libxml/tree.h>
#include "minunit.h"
#include "xades.h"
MU_TEST(test_xml_add_node_recursive) {
xmlDocPtr doc;
xmlNodePtr root;
xmlNodePtr child;
xmlChar* xmlbuff;
int xmlbuffsize;
doc = xmlNewDoc(BAD_CAST "1.0");
root = xmlNewNode(NULL, BAD_CAST "root");
xmlDocSetRootElement(doc, root);
child = xmlXadesAddChildRecursiveNs(root, BAD_CAST "A/B/C", NULL);
mu_check(child != NULL);
xmlDocDumpMemory(doc, &xmlbuff, &xmlbuffsize);
mu_assert_string_eq("<?xml version=\"1.0\"?>\n"
"<root>\n"
"<A>\n"
"<B>\n"
"<C/>\n"
"</B>\n"
"</A>\n"
"</root>\n"
, (char *)xmlbuff);
}
MU_TEST(test_qualifying_properties_layout) {
xmlDocPtr doc;
xmlNodePtr root;
xmlNodePtr node;
xmlChar* xmlbuff;
int buffersize;
struct tm tm;
memset(&tm, 0, sizeof(tm));
tm.tm_year = 2021 - 1900;
tm.tm_mon = 11;
tm.tm_mday = 6;
tm.tm_hour = 12;
tm.tm_min = 0;
tm.tm_sec = 50;
doc = xmlNewDoc(BAD_CAST "1.0");
root = xmlNewNode(NULL, BAD_CAST "root");
xmlDocSetRootElement(doc, root);
node = xmlXadesTmplQualifyingPropertiesCreateNsPref(doc, BAD_CAST "123", NULL);
xmlXadesTmplAddSignedSignatureProperties(node, &tm);
mu_check(node != NULL);
xmlSecAddChildNode(root, node);
xmlDocDumpMemory(doc, &xmlbuff, &buffersize);
// bit4bit: no se como pasar el namespace al root
mu_assert_string_eq("<?xml version=\"1.0\"?>\n"
"<root>\n"
"<QualifyingProperties xmlns=\"http://uri.etsi.org/01903/v1.3.2#\" id=\"123\">\n"
"<SignedProperties>\n"
"<SignedSignatureProperties>\n"
"<SigningTime>2021-12-06T12:00:50</SigningTime>\n"
"</SignedSignatureProperties>\n"
"</SignedProperties>\n"
"</QualifyingProperties>\n"
"</root>\n"
, (char *)xmlbuff);
xmlFree(xmlbuff);
xmlFreeDoc(doc);
}
MU_TEST_SUITE(test_suite) {
MU_RUN_TEST(test_xml_add_node_recursive);
MU_RUN_TEST(test_qualifying_properties_layout);
}
int main() {
MU_RUN_SUITE(test_suite);
MU_REPORT();
return MU_EXIT_CODE;
}