# -*- Autotest -*-
AT_BANNER([XML definitions])
## ------------------------ ##
## region_specific_language ##
## ------------------------ ##
AT_TESTFUN([region_specific_language],
[[
#include "internal_libreport.h"
#include <locale.h>
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
int main(void)
{
g_verbose = 3;
assert(setlocale(LC_ALL, "zh_CN") != NULL || !"setlocale() failed");
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_test_definition.xml");
assert(strcmp("screen name", ec_get_screen_name(event_config)) == 0);
assert(strcmp("description", ec_get_description(event_config)) == 0);
assert(strcmp("long description", ec_get_long_desc(event_config)) == 0);
assert(event_config->options != NULL || !"At least one event option was loaded");
/* typeof(event_config->options) == (GList *) */
event_option_t *event_option = (event_option_t *)event_config->options->data;
assert(strcmp("label", event_option->eo_label) == 0);
assert(strcmp("note_html", event_option->eo_note_html) == 0);
/* Option description is not supported yet
assert(strcmp("description", event_option->eo_description) == 0);
*/
free_event_config(event_config);
}
{
workflow_t *workflow = new_workflow("workflow_test_definition");
load_workflow_description_from_file(workflow, "../../conf/workflow_test_definition.xml");
assert(strcmp("screen name", wf_get_screen_name(workflow)) == 0);
assert(strcmp("description", wf_get_description(workflow)) == 0);
/* Long description is not supported yet
assert(strcmp("long description", wf_get_long_desc(workflow)) == 0);
*/
free_workflow(workflow);
}
assert(setlocale(LC_ALL, "zh_CN.utf8") != NULL || !"setlocale() failed");
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_test_definition.xml");
assert(strcmp("screen name", ec_get_screen_name(event_config)) == 0);
assert(strcmp("description", ec_get_description(event_config)) == 0);
assert(strcmp("long description", ec_get_long_desc(event_config)) == 0);
assert(event_config->options != NULL || !"At least one event option was loaded");
/* typeof(event_config->options) == (GList *) */
event_option_t *event_option = (event_option_t *)event_config->options->data;
assert(strcmp("label", event_option->eo_label) == 0);
assert(strcmp("note_html", event_option->eo_note_html) == 0);
/* Option description is not supported yet
assert(strcmp("description", event_option->eo_description) == 0);
*/
free_event_config(event_config);
}
{
workflow_t *workflow = new_workflow("workflow_test_definition");
load_workflow_description_from_file(workflow, "../../conf/workflow_test_definition.xml");
assert(strcmp("screen name", wf_get_screen_name(workflow)) == 0);
assert(strcmp("description", wf_get_description(workflow)) == 0);
/* Long description is not supported yet
assert(strcmp("long description", wf_get_long_desc(workflow)) == 0);
*/
free_workflow(workflow);
}
/*
XML definitions does not contain strings for zh_HK but there are strings
for zh_CN and followed by zh_TW. libreport should you string for zh_TW
and these strings are prefixed with "bad " string.
*/
assert(setlocale(LC_ALL, "zh_HK") != NULL || !"setlocale() failed");
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_test_definition.xml");
assert(strcmp("bad screen name", ec_get_screen_name(event_config)) == 0);
assert(strcmp("bad description", ec_get_description(event_config)) == 0);
assert(strcmp("bad long description", ec_get_long_desc(event_config)) == 0);
assert(event_config->options != NULL || !"At least one event option was loaded");
/* typeof(event_config->options) == (GList *) */
event_option_t *event_option = (event_option_t *)event_config->options->data;
assert(strcmp("bad label", event_option->eo_label) == 0);
assert(strcmp("bad note_html", event_option->eo_note_html) == 0);
/* Option description is not supported yet
assert(strcmp("description", event_option->eo_description) == 0);
*/
free_event_config(event_config);
}
{
workflow_t *workflow = new_workflow("workflow_test_definition");
load_workflow_description_from_file(workflow, "../../conf/workflow_test_definition.xml");
assert(strcmp("bad screen name", wf_get_screen_name(workflow)) == 0);
assert(strcmp("bad description", wf_get_description(workflow)) == 0);
/* Long description is not supported yet
assert(strcmp("bad long description", wf_get_long_desc(workflow)) == 0);
*/
free_workflow(workflow);
}
return EXIT_SUCCESS;
}
]])
## ----------------- ##
## restricted_access ##
## ----------------- ##
AT_TESTFUN([restricted_access],
[[
#include "testsuite.h"
TS_MAIN
{
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_no_support_restricted.xml");
TS_ASSERT_FALSE(event_config->ec_supports_restricted_access);
TS_ASSERT_PTR_IS_NULL(event_config->ec_restricted_access_option);
free_event_config(event_config);
}
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_implicit_no_support_restricted.xml");
TS_ASSERT_FALSE(event_config->ec_supports_restricted_access);
TS_ASSERT_PTR_IS_NULL(event_config->ec_restricted_access_option);
free_event_config(event_config);
}
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_support_restricted_no_option.xml");
TS_ASSERT_TRUE(event_config->ec_supports_restricted_access);
TS_ASSERT_PTR_IS_NULL(event_config->ec_restricted_access_option);
free_event_config(event_config);
}
{
event_config_t *event_config = new_event_config("event_test_definition");
load_event_description_from_file(event_config, "../../conf/event_support_restricted_with_option.xml");
TS_ASSERT_TRUE(event_config->ec_supports_restricted_access);
TS_ASSERT_STRING_EQ(event_config->ec_restricted_access_option, "Bugzilla_RestrictedAccess", "Loaded from configuration");
free_event_config(event_config);
}
}
TS_RETURN_MAIN
]])