/* iksemel (XML parser for Jabber) ** Copyright (C) 2000-2003 Gurer Ozen ** This code is free software; you can redistribute it and/or ** modify it under the terms of GNU Lesser General Public License. */ #include #include #include #include #include "iksemel.h" int main (int argc, char *argv[]) { static char xml[] = "" "TestClientSuxOS 2000" "1.2.0 patchlevel 2"; static char xml2[] = "lala
Hello World
"; 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); x = iks_new ("Ni"); y = iks_insert (x, "br"); z = iks_prepend_cdata (y, "lala", 4); iks_prepend (z, "C"); z = iks_insert_cdata (x, "Hello", 5); y = iks_append (z, "B"); iks_prepend (z, "A"); iks_append_cdata (z, " ", 1); iks_prepend_cdata (y, "World", 5); t = iks_string (iks_stack (x), x); if(!t || strcmp(t, xml2) != 0) { printf("Result: %s\n", t); printf("Expected: %s\n", xml2); return 1; } iks_delete(x); return 0; }