summaryrefslogtreecommitdiff
path: root/callouts/tests/test-dispatcher-envp.c
diff options
context:
space:
mode:
Diffstat (limited to 'callouts/tests/test-dispatcher-envp.c')
-rw-r--r--callouts/tests/test-dispatcher-envp.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/callouts/tests/test-dispatcher-envp.c b/callouts/tests/test-dispatcher-envp.c
index 354ab2c5b2..8d84657abf 100644
--- a/callouts/tests/test-dispatcher-envp.c
+++ b/callouts/tests/test-dispatcher-envp.c
@@ -194,6 +194,47 @@ add_uint_array (GKeyFile *kf,
}
static gboolean
+parse_proxy (GKeyFile *kf, GVariant **out_props, const char *section, GError **error)
+{
+ GVariantBuilder props;
+ char *tmp;
+ char **split, **iter;
+
+ g_variant_builder_init (&props, G_VARIANT_TYPE ("a{sv}"));
+
+ tmp = g_key_file_get_string (kf, section, "proxies", error);
+ if (tmp == NULL)
+ return FALSE;
+ split = g_strsplit_set (tmp, " ", -1);
+ g_free (tmp);
+
+ if (split && g_strv_length (split) > 0) {
+ for (iter = split; iter && *iter; iter++)
+ g_strstrip (*iter);
+ g_variant_builder_add (&props, "{sv}", "proxies", g_variant_new_strv ((gpointer) split, -1));
+ }
+ g_strfreev (split);
+
+ tmp = g_key_file_get_string (kf, section, "pac-url", error);
+ if (tmp == NULL)
+ return FALSE;
+ g_variant_builder_add (&props, "{sv}",
+ "pac-url",
+ g_variant_new_string (tmp));
+ g_free (tmp);
+
+ tmp = g_key_file_get_string (kf, section, "pac-script", error);
+ if (tmp == NULL)
+ return FALSE;
+ g_variant_builder_add (&props, "{sv}",
+ "pac-script",
+ g_variant_new_string (tmp));
+ g_free (tmp);
+ *out_props = g_variant_builder_end (&props);
+ return TRUE;
+}
+
+static gboolean
parse_ip4 (GKeyFile *kf, GVariant **out_props, const char *section, GError **error)
{
GVariantBuilder props;
@@ -357,12 +398,14 @@ get_dispatcher_file (const char *file,
GVariant **out_con_dict,
GVariant **out_con_props,
GVariant **out_device_props,
+ GVariant **out_device_proxy_props,
GVariant **out_device_ip4_props,
GVariant **out_device_ip6_props,
GVariant **out_device_dhcp4_props,
GVariant **out_device_dhcp6_props,
char **out_connectivity_state,
char **out_vpn_ip_iface,
+ GVariant **out_vpn_proxy_props,
GVariant **out_vpn_ip4_props,
GVariant **out_vpn_ip6_props,
char **out_expected_iface,
@@ -378,12 +421,14 @@ get_dispatcher_file (const char *file,
g_assert (out_con_dict && !*out_con_dict);
g_assert (out_con_props && !*out_con_props);
g_assert (out_device_props && !*out_device_props);
+ g_assert (out_device_proxy_props && !*out_device_proxy_props);
g_assert (out_device_ip4_props && !*out_device_ip4_props);
g_assert (out_device_ip6_props && !*out_device_ip6_props);
g_assert (out_device_dhcp4_props && !*out_device_dhcp4_props);
g_assert (out_device_dhcp6_props && !*out_device_dhcp6_props);
g_assert (out_connectivity_state && !*out_connectivity_state);
g_assert (out_vpn_ip_iface && !*out_vpn_ip_iface);
+ g_assert (out_vpn_proxy_props && !*out_vpn_proxy_props);
g_assert (out_vpn_ip4_props && !*out_vpn_ip4_props);
g_assert (out_vpn_ip6_props && !*out_vpn_ip6_props);
g_assert (out_expected_iface && !*out_expected_iface);
@@ -408,6 +453,11 @@ get_dispatcher_file (const char *file,
if (!parse_device (kf, out_device_props, error))
goto out;
+ if (g_key_file_has_group (kf, "proxy")) {
+ if (!parse_proxy (kf, out_device_proxy_props, "proxy", error))
+ goto out;
+ }
+
if (g_key_file_has_group (kf, "ip4")) {
if (!parse_ip4 (kf, out_device_ip4_props, "ip4", error))
goto out;
@@ -452,12 +502,14 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
gs_unref_variant GVariant *con_dict = NULL;
gs_unref_variant GVariant *con_props = NULL;
gs_unref_variant GVariant *device_props = NULL;
+ gs_unref_variant GVariant *device_proxy_props = NULL;
gs_unref_variant GVariant *device_ip4_props = NULL;
gs_unref_variant GVariant *device_ip6_props = NULL;
gs_unref_variant GVariant *device_dhcp4_props = NULL;
gs_unref_variant GVariant *device_dhcp6_props = NULL;
gs_free char *connectivity_change = NULL;
gs_free char *vpn_ip_iface = NULL;
+ gs_unref_variant GVariant *vpn_proxy_props = NULL;
gs_unref_variant GVariant *vpn_ip4_props = NULL;
gs_unref_variant GVariant *vpn_ip6_props = NULL;
gs_free char *expected_iface = NULL;
@@ -477,12 +529,14 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
&con_dict,
&con_props,
&device_props,
+ &device_proxy_props,
&device_ip4_props,
&device_ip6_props,
&device_dhcp4_props,
&device_dhcp6_props,
&connectivity_change,
&vpn_ip_iface,
+ &vpn_proxy_props,
&vpn_ip4_props,
&vpn_ip6_props,
&expected_iface,
@@ -498,12 +552,14 @@ test_generic (const char *file, const char *override_vpn_ip_iface)
con_dict,
con_props,
device_props,
+ device_proxy_props,
device_ip4_props,
device_ip6_props,
device_dhcp4_props,
device_dhcp6_props,
connectivity_change,
override_vpn_ip_iface ? override_vpn_ip_iface : vpn_ip_iface,
+ vpn_proxy_props,
vpn_ip4_props,
vpn_ip6_props,
&out_iface,