freeswitch/libs/iksemel/test/tst-iks.c
Michael Jerris 83f4a9dc2f add iksemel to in tree libs
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@3756 d0543943-73ff-0310-b7d9-9358b9ac24b2
2006-12-20 15:45:14 +00:00

57 lines
1.6 KiB
C

/* iksemel (XML parser for Jabber)
** Copyright (C) 2000-2003 Gurer Ozen <madcat@e-kolay.net>
** This code is free software; you can redistribute it and/or
** modify it under the terms of GNU Lesser General Public License.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include "iksemel.h"
int main (int argc, char *argv[])
{
static char xml[] =
"<iq type='result' to='ydobon@jabber.org'><query xmlns='jabber:iq:version'>"
"<name>TestClient</name><os>SuxOS 2000</os><version><stable solidity='rock'/>"
"1.2.0 patchlevel 2</version></query></iq>";
iks *x, *y, *z;
char *t;
setlocale (LC_ALL, "");
x = iks_new ("iq");
iks_insert_attrib (x, "type", "resultypo");
iks_insert_attrib (x, "type", "result");
iks_insert_attrib (x, "to", "ydobon@jabber.org");
y = iks_new_within ("query", iks_stack (x));
iks_insert_cdata (iks_insert (y, "name"), "TestClient", 10);
iks_insert_cdata (iks_insert (y, "os"), "SuxOS", 0);
z = iks_insert (y, "version");
iks_insert (z, "stable");
iks_insert_cdata (z, "1.2", 3);
iks_insert_cdata (z, ".0 patchlevel 2", 0);
iks_insert_node (x, y);
z = iks_find (y, "os");
iks_insert_attrib (z, "error", "yes");
iks_insert_attrib (z, "error", NULL);
iks_insert_cdata (z, " 2000", 5);
z = iks_next (z);
z = iks_find (z, "stable");
iks_insert_attrib (z, "solidity", "rock");
z = iks_parent (iks_parent (z));
iks_insert_attrib (z, "xmlns", "jabber:iq:version");
t = iks_string (iks_stack (x), x);
if(!t || strcmp(t, xml) != 0) {
printf("Result: %s\n", t);
printf("Expected: %s\n", xml);
return 1;
}
iks_delete(x);
return 0;
}