annotate libpurple/tests/test_xmlnode.c @ 32778:1c0d9e817dcc

New branch for GSoC2012 project: Gadu-Gadu protocol plugin improvements. This commit makes trunk usable again - tunning default theme to match legacy Pidgin look&feel.
author tomkiewicz@cpw.pidgin.im
date Sat, 19 May 2012 16:38:38 +0000
parents 8d3b5853b017
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31680
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
1 #include <string.h>
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
2
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
3 #include "tests.h"
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
4 #include "../xmlnode.h"
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
5
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
6 /*
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
7 * If we really wanted to test the billion laughs attack we would
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
8 * need to have more than just 4 ha's. But as long as this shorter
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
9 * document fails to parse, the longer one should also fail to parse.
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
10 */
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
11 START_TEST(test_xmlnode_billion_laughs_attack)
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
12 {
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
13 const char *malicious_xml_doc = "<!DOCTYPE root [ <!ENTITY ha \"Ha !\"><!ENTITY ha2 \"&ha; &ha;\"><!ENTITY ha3 \"&ha2; &ha2;\"> ]><root>&ha3;</root>";
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
14
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
15 /* Uncomment this line if you want to see the error message given by
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
16 the parser for the above XML document */
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
17 /* purple_debug_set_enabled(TRUE); */
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
18
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
19 fail_if(xmlnode_from_str(malicious_xml_doc, -1),
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
20 "xmlnode_from_str() returned an XML tree, but we didn't want it to");
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
21 }
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
22 END_TEST
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
23
32037
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
24 #define check_doc_structure(x) { \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
25 xmlnode *ping, *child1, *child2; \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
26 fail_if(x == NULL, "Failed to parse document"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
27 ping = xmlnode_get_child(x, "ping"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
28 fail_if(ping == NULL, "Failed to find 'ping' child"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
29 child1 = xmlnode_get_child(ping, "child1"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
30 fail_if(child1 == NULL, "Failed to find 'child1'"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
31 child2 = xmlnode_get_child(child1, "child2"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
32 fail_if(child2 == NULL, "Failed to find 'child2'"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
33 xmlnode_new_child(child2, "a"); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
34 \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
35 assert_string_equal("jabber:client", xmlnode_get_namespace(x)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
36 /* NOTE: xmlnode_get_namespace() returns the namespace of the element, not the
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
37 * current default namespace. See http://www.w3.org/TR/xml-names/#defaulting and
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
38 * http://www.w3.org/TR/xml-names/#dt-defaultNS.
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
39 */ \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
40 assert_string_equal("urn:xmpp:ping", xmlnode_get_namespace(ping)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
41 assert_string_equal("jabber:client", xmlnode_get_namespace(child1)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
42 assert_string_equal("urn:xmpp:ping", xmlnode_get_namespace(child2)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
43 /*
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
44 * This fails (well, actually crashes [the ns is NULL]) unless
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
45 * xmlnode_new_child() actually sets the element namespace.
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
46 assert_string_equal("jabber:client", xmlnode_get_namespace(xmlnode_get_child(child2, "a")));
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
47 */ \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
48 \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
49 assert_string_equal("jabber:client", xmlnode_get_default_namespace(x)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
50 assert_string_equal("jabber:client", xmlnode_get_default_namespace(ping)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
51 assert_string_equal("jabber:client", xmlnode_get_default_namespace(child1)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
52 assert_string_equal("jabber:client", xmlnode_get_default_namespace(child2)); \
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
53 }
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
54
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
55 START_TEST(test_xmlnode_prefixes)
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
56 {
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
57 const char *xml_doc =
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
58 "<iq type='get' xmlns='jabber:client' xmlns:ping='urn:xmpp:ping'>"
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
59 "<ping:ping>"
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
60 "<child1>"
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
61 "<ping:child2></ping:child2>" /* xmlns='jabber:child' */
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
62 "</child1>"
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
63 "</ping:ping>"
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
64 "</iq>";
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
65 char *str;
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
66 xmlnode *xml, *reparsed;
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
67
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
68 xml = xmlnode_from_str(xml_doc, -1);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
69 check_doc_structure(xml);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
70
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
71 /* Check that xmlnode_from_str(xmlnode_to_str(xml, NULL), -1) is idempotent. */
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
72 str = xmlnode_to_str(xml, NULL);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
73 fail_if(str == NULL, "Failed to serialize XMLnode");
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
74 reparsed = xmlnode_from_str(str, -1);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
75 fail_if(reparsed == NULL, "Failed to reparse xml document");
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
76 check_doc_structure(reparsed);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
77
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
78 g_free(str);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
79 xmlnode_free(xml);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
80 xmlnode_free(reparsed);
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
81 }
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
82 END_TEST
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
83
32038
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
84
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
85 START_TEST(test_strip_prefixes)
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
86 {
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
87 const char *xml_doc = "<message xmlns='jabber:client' from='user@gmail.com/resource' to='another_user@darkrain42.org' type='chat' id='purple'>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
88 "<cha:active xmlns:cha='http://jabber.org/protocol/chatstates'/>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
89 "<body>xvlc xvlc</body>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
90 "<im:html xmlns:im='http://jabber.org/protocol/xhtml-im'>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
91 "<xht:body xmlns:xht='http://www.w3.org/1999/xhtml'>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
92 "<xht:p>xvlc <xht:span style='font-weight: bold;'>xvlc</xht:span></xht:p>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
93 "</xht:body>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
94 "</im:html>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
95 "</message>";
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
96 const char *out = "<message xmlns='jabber:client' from='user@gmail.com/resource' to='another_user@darkrain42.org' type='chat' id='purple'>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
97 "<active xmlns:cha='http://jabber.org/protocol/chatstates' xmlns='http://jabber.org/protocol/chatstates'/>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
98 "<body>xvlc xvlc</body>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
99 "<html xmlns:im='http://jabber.org/protocol/xhtml-im' xmlns='http://jabber.org/protocol/xhtml-im'>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
100 "<body xmlns:xht='http://www.w3.org/1999/xhtml' xmlns='http://www.w3.org/1999/xhtml'>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
101 "<p>xvlc <span style='font-weight: bold;'>xvlc</span></p>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
102 "</body>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
103 "</html>"
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
104 "</message>";
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
105 char *str;
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
106 xmlnode *xml;
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
107
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
108 xml = xmlnode_from_str(xml_doc, -1);
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
109 fail_if(xml == NULL, "Failed to parse XML");
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
110
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
111 xmlnode_strip_prefixes(xml);
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
112 str = xmlnode_to_str(xml, NULL);
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
113 assert_string_equal_free(out, str);
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
114
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
115 xmlnode_free(xml);
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
116 }
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
117 END_TEST
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
118
31680
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
119 Suite *
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
120 xmlnode_suite(void)
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
121 {
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
122 Suite *s = suite_create("Utility Functions");
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
123
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
124 TCase *tc = tcase_create("xmlnode");
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
125 tcase_add_test(tc, test_xmlnode_billion_laughs_attack);
32037
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
126 tcase_add_test(tc, test_xmlnode_prefixes);
32038
8d3b5853b017 xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <paul@darkrain42.org>
parents: 32037
diff changeset
127 tcase_add_test(tc, test_strip_prefixes);
32037
114a98da1a5f xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <paul@darkrain42.org>
parents: 31680
diff changeset
128
31680
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
129 suite_add_tcase(s, tc);
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
130
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
131 return s;
c8f91310bfbf Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <mark@kingant.net>
parents:
diff changeset
132 }