libpurple/tests/test_xmlnode.c

Sat, 27 Aug 2016 18:16:01 -0500

author
Mike Ruprecht <cmaiku@gmail.com>
date
Sat, 27 Aug 2016 18:16:01 -0500
changeset 37959
e76677ed819c
parent 37607
773815a9a48f
child 38057
41f47eb1aa19
permissions
-rw-r--r--

connection: Add purple_connection_take_error()

This patch adds a purple_connection_take_error() function, which
is functionally equivalent to purple_connection_g_error(), except
that it takes ownership of the passed GError.

This is useful to simplify error handling so that the GError doesn't
have to be freed, or, in the future potentially copied, if it's no
longer needed where it's generated. It can also allow for GErrors
being generated without storing them in a variable. This would be
reasonably common if/when all PurpleConnection errors are passed
in via GError.

37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
1 #include <glib.h>
31891
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
2
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
3 #include "../xmlnode.h"
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
4
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
5 /*
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
6 * If we really wanted to test the billion laughs attack we would
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
7 * need to have more than just 4 ha's. But as long as this shorter
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
8 * document fails to parse, the longer one should also fail to parse.
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
9 */
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
10 static void
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
11 test_xmlnode_billion_laughs_attack(void) {
31891
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
12 const char *malicious_xml_doc = "<!DOCTYPE root [ <!ENTITY ha \"Ha !\"><!ENTITY ha2 \"&ha; &ha;\"><!ENTITY ha3 \"&ha2; &ha2;\"> ]><root>&ha3;</root>";
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
13
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
14 /* Uncomment this line if you want to see the error message given by
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
15 the parser for the above XML document */
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
16 /* purple_debug_set_enabled(TRUE); */
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
17
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
18 g_assert_null(purple_xmlnode_from_str(malicious_xml_doc, -1));
31891
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
19 }
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
20
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
21 #define check_doc_structure(x) { \
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
22 PurpleXmlNode *ping, *child1, *child2; \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
23 g_assert_nonnull(x); \
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
24 ping = purple_xmlnode_get_child(x, "ping"); \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
25 g_assert_nonnull(ping); \
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
26 child1 = purple_xmlnode_get_child(ping, "child1"); \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
27 g_assert_nonnull(child1); \
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
28 child2 = purple_xmlnode_get_child(child1, "child2"); \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
29 g_assert_nonnull(child2); \
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
30 purple_xmlnode_new_child(child2, "a"); \
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
31 \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
32 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_namespace(x)); \
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
33 /* NOTE: purple_xmlnode_get_namespace() returns the namespace of the element, not the
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
34 * current default namespace. See http://www.w3.org/TR/xml-names/#defaulting and
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
35 * http://www.w3.org/TR/xml-names/#dt-defaultNS.
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
36 */ \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
37 g_assert_cmpstr("urn:xmpp:ping", ==, purple_xmlnode_get_namespace(ping)); \
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
38 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_namespace(child1)); \
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
39 g_assert_cmpstr("urn:xmpp:ping", ==, purple_xmlnode_get_namespace(child2)); \
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
40 /*
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
41 * This fails (well, actually crashes [the ns is NULL]) unless
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
42 * purple_xmlnode_new_child() actually sets the element namespace.
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
43 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_namespace(purple_xmlnode_get_child(child2, "a")));
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
44 */ \
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
45 \
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
46 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_default_namespace(x)); \
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
47 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_default_namespace(ping)); \
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
48 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_default_namespace(child1)); \
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
49 g_assert_cmpstr("jabber:client", ==, purple_xmlnode_get_default_namespace(child2)); \
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
50 }
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
51
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
52 static void
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
53 test_xmlnode_prefixes(void) {
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
54 const char *xml_doc =
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
55 "<iq type='get' xmlns='jabber:client' xmlns:ping='urn:xmpp:ping'>"
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
56 "<ping:ping>"
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
57 "<child1>"
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
58 "<ping:child2></ping:child2>" /* xmlns='jabber:child' */
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
59 "</child1>"
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
60 "</ping:ping>"
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
61 "</iq>";
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
62 char *str;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
63 PurpleXmlNode *xml, *reparsed;
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
64
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
65 xml = purple_xmlnode_from_str(xml_doc, -1);
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
66 check_doc_structure(xml);
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
67
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
68 /* Check that purple_xmlnode_from_str(purple_xmlnode_to_str(xml, NULL), -1) is idempotent. */
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
69 str = purple_xmlnode_to_str(xml, NULL);
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
70 g_assert_nonnull(str);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
71 reparsed = purple_xmlnode_from_str(str, -1);
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
72 g_assert_nonnull(reparsed);
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
73 check_doc_structure(reparsed);
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
74
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
75 g_free(str);
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
76 purple_xmlnode_free(xml);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
77 purple_xmlnode_free(reparsed);
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
78 }
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
79
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
80 static void
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
81 test_strip_prefixes(void) {
32322
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
82 const char *xml_doc = "<message xmlns='jabber:client' from='user@gmail.com/resource' to='another_user@darkrain42.org' type='chat' id='purple'>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
83 "<cha:active xmlns:cha='http://jabber.org/protocol/chatstates'/>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
84 "<body>xvlc xvlc</body>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
85 "<im:html xmlns:im='http://jabber.org/protocol/xhtml-im'>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
86 "<xht:body xmlns:xht='http://www.w3.org/1999/xhtml'>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
87 "<xht:p>xvlc <xht:span style='font-weight: bold;'>xvlc</xht:span></xht:p>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
88 "</xht:body>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
89 "</im:html>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
90 "</message>";
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
91 const char *out = "<message xmlns='jabber:client' from='user@gmail.com/resource' to='another_user@darkrain42.org' type='chat' id='purple'>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
92 "<active xmlns:cha='http://jabber.org/protocol/chatstates' xmlns='http://jabber.org/protocol/chatstates'/>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
93 "<body>xvlc xvlc</body>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
94 "<html xmlns:im='http://jabber.org/protocol/xhtml-im' xmlns='http://jabber.org/protocol/xhtml-im'>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
95 "<body xmlns:xht='http://www.w3.org/1999/xhtml' xmlns='http://www.w3.org/1999/xhtml'>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
96 "<p>xvlc <span style='font-weight: bold;'>xvlc</span></p>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
97 "</body>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
98 "</html>"
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
99 "</message>";
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
100 char *str;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
101 PurpleXmlNode *xml;
32322
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
102
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
103 xml = purple_xmlnode_from_str(xml_doc, -1);
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
104 g_assert_nonnull(xml);
32322
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
105
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
106 purple_xmlnode_strip_prefixes(xml);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
107 str = purple_xmlnode_to_str(xml, NULL);
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
108 g_assert_cmpstr(out, ==, str);
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
109 g_free(str);
32322
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
110
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 32322
diff changeset
111 purple_xmlnode_free(xml);
32322
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
112 }
5c1dd6d9d57f xmlnode: Add xmlnode_strip_prefixes
Paul Aurich <darkrain42@pidgin.im>
parents: 32321
diff changeset
113
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
114 gint
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
115 main(gint argc, gchar **argv) {
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
116 g_test_init(&argc, &argv, NULL);
31891
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
117
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
118 g_test_add_func("/xmlnode/billion_laughs_attack",
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
119 test_xmlnode_billion_laughs_attack);
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
120 g_test_add_func("/xmlnode/prefixes",
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
121 test_xmlnode_prefixes);
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
122 g_test_add_func("/xmlnode/strip_prefixes",
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
123 test_strip_prefixes);
32321
ae17a89ef666 xmlnode: Fix some brokeness in xmlnode serialization with prefixed elements.
Paul Aurich <darkrain42@pidgin.im>
parents: 31891
diff changeset
124
37607
773815a9a48f Convert the xmlnode tests to gtester
Gary Kramlich <grim@reaperworld.com>
parents: 34935
diff changeset
125 return g_test_run();
31891
186f61a85ac2 Add a silly little check to make sure our xml parser isn't vulnerable to the
Mark Doliner <markdoliner@pidgin.im>
parents:
diff changeset
126 }

mercurial