605
604
qdict_put(src, "vnc.acl..name", qstring_from_str("acl0"));
606
605
qdict_put(src, "vnc.acl.rule..name", qstring_from_str("acl0"));
608
res = qdict_crumple(src, &error_abort);
610
g_assert_cmpint(qobject_type(res), ==, QTYPE_QDICT);
612
dst = qobject_to_qdict(res);
607
dst = qobject_to_qdict(qdict_crumple(src, &error_abort));
614
609
g_assert_cmpint(qdict_size(dst), ==, 1);
616
child = qdict_get(dst, "vnc");
617
g_assert_cmpint(qobject_type(child), ==, QTYPE_QDICT);
618
vnc = qobject_to_qdict(child);
611
vnc = qdict_get_qdict(dst, "vnc");
613
g_assert_cmpint(qdict_size(vnc), ==, 3);
620
child = qdict_get(vnc, "listen");
621
g_assert_cmpint(qobject_type(child), ==, QTYPE_QDICT);
622
listen = qobject_to_qdict(child);
615
listen = qdict_get_qdict(vnc, "listen");
617
g_assert_cmpint(qdict_size(listen), ==, 2);
623
618
g_assert_cmpstr("127.0.0.1", ==, qdict_get_str(listen, "addr"));
624
619
g_assert_cmpstr("5901", ==, qdict_get_str(listen, "port"));
626
child = qdict_get(vnc, "acl");
627
g_assert_cmpint(qobject_type(child), ==, QTYPE_QDICT);
628
acl = qobject_to_qdict(child);
621
acl = qdict_get_qdict(vnc, "acl");
623
g_assert_cmpint(qdict_size(acl), ==, 3);
630
child = qdict_get(acl, "rules");
631
g_assert_cmpint(qobject_type(child), ==, QTYPE_QLIST);
632
rules = qobject_to_qlist(child);
625
rules = qdict_get_qlist(acl, "rules");
633
627
g_assert_cmpint(qlist_size(rules), ==, 2);
635
629
rule = qobject_to_qdict(qlist_pop(rules));
636
631
g_assert_cmpint(qdict_size(rule), ==, 2);
637
632
g_assert_cmpstr("fred", ==, qdict_get_str(rule, "match"));
638
633
g_assert_cmpstr("allow", ==, qdict_get_str(rule, "policy"));
641
636
rule = qobject_to_qdict(qlist_pop(rules));
642
638
g_assert_cmpint(qdict_size(rule), ==, 2);
643
639
g_assert_cmpstr("bob", ==, qdict_get_str(rule, "match"));
644
640
g_assert_cmpstr("deny", ==, qdict_get_str(rule, "policy"));
647
643
/* With recursive crumpling, we should see all names unescaped */
648
644
g_assert_cmpstr("acl0", ==, qdict_get_str(vnc, "acl.name"));
649
child = qdict_get(vnc, "acl");
650
g_assert_cmpint(qobject_type(child), ==, QTYPE_QDICT);
651
acl = qdict_get_qdict(vnc, "acl");
652
645
g_assert_cmpstr("acl0", ==, qdict_get_str(acl, "rule.name"));