annotate libpurple/tests/test_xmlnode.c @ 32366:ae0fa8a95fd9

We haven't used this pref in a while. We stopped adding it in revision 106592f58365ca74fb7446ca751df08904021b9d. We also need to stop trying to rename it, and we should remove it if it exists. For 3.0.0 we should go through the prefs that we're migrating and removing and stop migrating/removing them if we've been doing it since before 2.0.0.
author Mark Doliner <mark@kingant.net>
date Mon, 28 Nov 2011 08:52:34 +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 }