]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Add tests/t1001-rcxml-nodenames-simple.c
authorJohan Malm <jgm323@gmail.com>
Tue, 9 Jun 2020 21:20:24 +0000 (22:20 +0100)
committerJohan Malm <jgm323@gmail.com>
Tue, 9 Jun 2020 21:20:24 +0000 (22:20 +0100)
src/config/rcxml.c
tests/meson.build
tests/t1001-rcxml-nodenames-simple.c [new file with mode: 0644]

index 599b206937e05abd1bdc5a9ddd65f021c503ad10..c917e6ab7716074e139245c5d68606a146382d81 100644 (file)
@@ -52,8 +52,10 @@ static void entry(xmlNode *node, char *nodename, char *content)
                if (is_attribute)
                        buf_add(nodename_buffer, "@");
                buf_add(nodename_buffer, nodename);
-               buf_add(nodename_buffer, ": ");
-               buf_add(nodename_buffer, content);
+               if (content) {
+                       buf_add(nodename_buffer, ": ");
+                       buf_add(nodename_buffer, content);
+               }
                buf_add(nodename_buffer, "\n");
        }
        if (!content)
index 3d4383752fbc148edb75dc232a23a4c40a5d51c0..f0b9c89f2e15eb23ef9f887add8054f3c42afe24 100644 (file)
@@ -13,3 +13,11 @@ t1000 = executable(
   link_with: rcxml_lib,
 )
 test('t1000', t1000)
+
+t1001 = executable(
+  't1001-rcxml-nodenames-simple',
+  sources: ['t1001-rcxml-nodenames-simple.c', 'tap.c'],
+  include_directories: [labwc_inc],
+  link_with: rcxml_lib,
+)
+test('t1001', t1001)
diff --git a/tests/t1001-rcxml-nodenames-simple.c b/tests/t1001-rcxml-nodenames-simple.c
new file mode 100644 (file)
index 0000000..2308965
--- /dev/null
@@ -0,0 +1,47 @@
+#define _POSIX_C_SOURCE 200809L
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdbool.h>
+#include <string.h>
+
+#include "rcxml.h"
+#include "tap.h"
+
+struct rcxml rc = { 0 };
+
+static char src[] =
+"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+"<openbox_config>\n"
+"<lab>\n"
+"  <csd>yes</csd>\n"
+"</lab>\n"
+"</openbox_config>\n";
+
+static char expect[] =
+"openbox_config\n"
+"lab\n"
+"csd.lab\n"
+"csd.lab: yes\n";
+
+int main(int argc, char **argv)
+{
+       struct buf actual, source;
+
+       buf_init(&actual);
+       buf_init(&source);
+       buf_add(&source, src);
+
+       plan(1);
+       diag("Parse simple rc.xml and read nodenames");
+
+       rcxml_init(&rc);
+       rcxml_get_nodenames(&actual);
+       rcxml_parse_xml(&source);
+       printf("%s\n", actual.buf);
+       printf("%s\n", expect);
+
+       ok1(!strcmp(expect, actual.buf));
+       free(actual.buf);
+       return exit_status();
+}