15static int compare_name_handler(xmlNode *xml,
void *userdata) {
17 assert_string_equal((
char *) userdata, (
const char *) xml->name);
23 " <!-- This is a level 1 node -->\n"
27 " <!-- This is a level 1 node -->\n"
31 " <!-- This is a level 1 node -->\n"
38bad_input(
void **state) {
47name_given_test(
void **state) {
51 expect_function_call(compare_name_handler);
52 expect_function_call(compare_name_handler);
53 expect_function_call(compare_name_handler);
60no_name_given_test(
void **state) {
64 expect_function_call(compare_name_handler);
65 expect_function_call(compare_name_handler);
66 expect_function_call(compare_name_handler);
73name_doesnt_exist_test(
void **state) {
82 " <!-- Inside a level 1 node -->\n"
84 " <!-- Inside a level 2 node -->\n"
88 " <!-- Inside a level 1 node -->\n"
90 " <!-- Inside a level 2 node -->\n"
92 " <!-- Inside a level 3 node -->\n"
96 " <!-- Inside a level 2 node -->\n"
102multiple_levels_test(
void **state) {
106 expect_function_call(compare_name_handler);
107 expect_function_call(compare_name_handler);
114multiple_levels_no_name_test(
void **state) {
118 expect_function_call(compare_name_handler);
119 expect_function_call(compare_name_handler);
127 " <!-- This is node #1 -->\n"
131 " <!-- This is node #2 -->\n"
135 " <!-- This is node #3 -->\n"
141static int any_of_handler(xmlNode *xml,
void *userdata) {
144 "node1",
"node2",
"node3", NULL));
149any_of_test(
void **state) {
153 expect_function_call(any_of_handler);
154 expect_function_call(any_of_handler);
155 expect_function_call(any_of_handler);
161static int stops_on_first_handler(xmlNode *xml,
void *userdata) {
164 if (pcmk__xe_is(xml,
"node1")) {
171static int stops_on_second_handler(xmlNode *xml,
void *userdata) {
174 if (pcmk__xe_is(xml,
"node2")) {
181static int stops_on_third_handler(xmlNode *xml,
void *userdata) {
184 if (pcmk__xe_is(xml,
"node3")) {
192one_of_test(
void **state) {
196 expect_function_call(stops_on_first_handler);
199 expect_function_call(stops_on_second_handler);
202 expect_function_call(stops_on_third_handler);
209 cmocka_unit_test(bad_input),
210 cmocka_unit_test(name_given_test),
211 cmocka_unit_test(no_name_given_test),
212 cmocka_unit_test(name_doesnt_exist_test),
213 cmocka_unit_test(multiple_levels_test),
214 cmocka_unit_test(multiple_levels_no_name_test),
215 cmocka_unit_test(any_of_test),
216 cmocka_unit_test(one_of_test))
bool pcmk__str_any_of(const char *s,...) G_GNUC_NULL_TERMINATED
#define pcmk__assert_asserts(stmt)
int pcmk__xml_test_teardown_group(void **state)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
int pcmk__xml_test_setup_group(void **state)
int pcmk__xe_foreach_child(xmlNode *xml, const char *child_element_name, int(*handler)(xmlNode *xml, void *userdata), void *userdata)
void pcmk__xml_free(xmlNode *xml)
xmlNode * pcmk__xml_parse(const char *input)