pacemaker 2.1.5-a3f44794f94
Scalable High-Availability cluster resource manager
xml_acl_denied_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2020-2021 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10#include <crm_internal.h>
11
13#include <crm/common/acl.h>
14
15#include "../../crmcommon_private.h"
16
17static void
18is_xml_acl_denied_without_node(void **state)
19{
20 xmlNode *test_xml = create_xml_node(NULL, "test_xml");
21 assert_false(xml_acl_denied(test_xml));
22
23 test_xml->doc->_private = NULL;
24 assert_false(xml_acl_denied(test_xml));
25
26 test_xml->doc = NULL;
27 assert_false(xml_acl_denied(test_xml));
28
29 test_xml = NULL;
30 assert_false(xml_acl_denied(test_xml));
31}
32
33static void
34is_xml_acl_denied_with_node(void **state)
35{
36 xml_doc_private_t *docpriv;
37
38 xmlNode *test_xml = create_xml_node(NULL, "test_xml");
39
40 // allocate memory for _private, which is NULL by default
41 test_xml->doc->_private = calloc(1, sizeof(xml_doc_private_t));
42
43 assert_false(xml_acl_denied(test_xml));
44
45 // cast _private from void* to xml_doc_private_t*
46 docpriv = test_xml->doc->_private;
47
48 // enable an irrelevant flag
49 docpriv->flags |= pcmk__xf_acl_enabled;
50
51 assert_false(xml_acl_denied(test_xml));
52
53 // enable pcmk__xf_acl_denied
54 docpriv->flags |= pcmk__xf_acl_denied;
55
56 assert_true(xml_acl_denied(test_xml));
57}
58
59PCMK__UNIT_TEST(NULL, NULL,
60 cmocka_unit_test(is_xml_acl_denied_without_node),
61 cmocka_unit_test(is_xml_acl_denied_with_node))
Low-level API for XML Access Control Lists (ACLs)
bool xml_acl_denied(const xmlNode *xml)
Check whether or not an XML node is ACL-denied.
Definition: acl.c:613
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
xmlNode * create_xml_node(xmlNode *parent, const char *name)
Definition: xml.c:749
@ pcmk__xf_acl_enabled
Definition: xml_internal.h:332
@ pcmk__xf_acl_denied
Definition: xml_internal.h:338