diff options
author | Jan-Michael Brummer <jan.brummer@tabos.org> | 2023-01-25 14:57:07 +0100 |
---|---|---|
committer | Jan-Michael Brummer <jan.brummer@tabos.org> | 2023-03-27 16:31:58 +0200 |
commit | f5a84456c07fe1e3d8647c8a17aacb05cdaa2996 (patch) | |
tree | 2e60497a66751577f56dc8d1b75fdef052fc48a8 | |
parent | 77c6515d6b9d7078a1cac0a0e1abdf714f7d3e3f (diff) | |
download | libproxy-git-f5a84456c07fe1e3d8647c8a17aacb05cdaa2996.tar.gz |
Add initial wpad test (#15)
-rw-r--r-- | src/backend/px-manager.c | 10 | ||||
-rw-r--r-- | src/tests/data/px-manager-wpad | 5 | ||||
-rw-r--r-- | src/tests/px-manager-test.c | 26 |
3 files changed, 37 insertions, 4 deletions
diff --git a/src/backend/px-manager.c b/src/backend/px-manager.c index af4a119..097f020 100644 --- a/src/backend/px-manager.c +++ b/src/backend/px-manager.c @@ -344,13 +344,15 @@ px_manager_expand_wpad (PxManager *self, } if (!self->pac_data) { - GUri *wpad_url = g_uri_parse ("download://wpad/wpad.data", G_URI_FLAGS_PARSE_RELAXED, NULL); + GUri *wpad_url = g_uri_parse ("http://wpad/wpad.dat", G_URI_FLAGS_PARSE_RELAXED, NULL); g_print ("Trying to find the PAC using WPAD...\n"); self->pac_url = g_uri_to_string (wpad_url); self->pac_data = px_manager_pac_download (self, self->pac_url); - if (!self->pac_data) - g_clear_object (&self->pac_url); + if (!self->pac_data) { + g_clear_pointer (&self->pac_url, g_free); + ret = FALSE; + } } } @@ -433,7 +435,7 @@ px_manager_get_proxies_sync (PxManager *self, .builder = builder, }; peas_extension_set_foreach (self->pacrunner_set, px_manager_run_pac, &pac_data); - } else { + } else if (!g_str_has_prefix (g_uri_get_scheme (conf_url), "wpad")) { g_strv_builder_add (builder, g_uri_to_string (conf_url)); } } diff --git a/src/tests/data/px-manager-wpad b/src/tests/data/px-manager-wpad new file mode 100644 index 0000000..4ab0f81 --- /dev/null +++ b/src/tests/data/px-manager-wpad @@ -0,0 +1,5 @@ +PROXY_ENABLED="yes" +HTTP_PROXY="wpad://" +HTTPS_PROXY="wpad://" +FTP_PROXY="wpad://" +NO_PROXY="localhost, 127.0.0.1" diff --git a/src/tests/px-manager-test.c b/src/tests/px-manager-test.c index 5cb16c3..ba1c6b7 100644 --- a/src/tests/px-manager-test.c +++ b/src/tests/px-manager-test.c @@ -158,6 +158,31 @@ test_get_proxies_pac (Fixture *self, g_main_loop_run (self->loop); } +static gpointer +get_wpad (gpointer data) +{ + Fixture *self = data; + g_auto (GStrv) config = NULL; + + config = px_manager_get_proxies_sync (self->manager, "https://www.example.com", NULL); + g_assert_nonnull (config); + g_assert_cmpstr (config[0], ==, "direct://"); + + g_main_loop_quit (self->loop); + + return NULL; +} + +static void +test_get_wpad (Fixture *self, + const void *user_data) +{ + g_autoptr (GThread) thread = NULL; + + thread = g_thread_new ("test", (GThreadFunc)get_wpad, self); + g_main_loop_run (self->loop); +} + int main (int argc, char **argv) @@ -179,6 +204,7 @@ main (int argc, g_test_add ("/pac/get_proxies_direct", Fixture, "px-manager-direct", fixture_setup, test_get_proxies_direct, fixture_teardown); g_test_add ("/pac/get_proxies_nonpac", Fixture, "px-manager-nonpac", fixture_setup, test_get_proxies_nonpac, fixture_teardown); g_test_add ("/pac/get_proxies_pac", Fixture, "px-manager-pac", fixture_setup, test_get_proxies_pac, fixture_teardown); + g_test_add ("/pac/wpad", Fixture, "px-manager-wpad", fixture_setup, test_get_wpad, fixture_teardown); return g_test_run (); } |