diff options
Diffstat (limited to 'tests/server-test.c')
-rw-r--r-- | tests/server-test.c | 130 |
1 files changed, 66 insertions, 64 deletions
diff --git a/tests/server-test.c b/tests/server-test.c index c0a73e9c..9cc16612 100644 --- a/tests/server-test.c +++ b/tests/server-test.c @@ -9,7 +9,7 @@ typedef struct { SoupServer *server; - SoupURI *base_uri, *ssl_base_uri; + GUri *base_uri, *ssl_base_uri; GSList *handlers; } ServerData; @@ -90,8 +90,8 @@ server_teardown (ServerData *sd, gconstpointer test_data) g_slist_free_full (sd->handlers, g_free); g_clear_pointer (&sd->server, soup_test_server_quit_unref); - g_clear_pointer (&sd->base_uri, soup_uri_free); - g_clear_pointer (&sd->ssl_base_uri, soup_uri_free); + g_clear_pointer (&sd->base_uri, g_uri_unref); + g_clear_pointer (&sd->ssl_base_uri, g_uri_unref); } static void @@ -126,14 +126,16 @@ do_star_test (ServerData *sd, gconstpointer test_data) { SoupSession *session; SoupMessage *msg; - SoupURI *star_uri; + GUri *star_uri; const char *handled_by; g_test_bug ("590751"); + g_test_skip ("The literal path \"*\" is not a valid GUri"); + return; + session = soup_test_session_new (NULL); - star_uri = soup_uri_copy (sd->base_uri); - soup_uri_set_path (star_uri, "*"); + star_uri = g_uri_parse_relative (sd->base_uri, "*", SOUP_HTTP_URI_FLAGS, NULL); debug_printf (1, " Testing with no handler\n"); msg = soup_message_new_from_uri ("OPTIONS", star_uri); @@ -158,11 +160,11 @@ do_star_test (ServerData *sd, gconstpointer test_data) g_object_unref (msg); soup_test_session_abort_unref (session); - soup_uri_free (star_uri); + g_uri_unref (star_uri); } static void -do_one_server_aliases_test (SoupURI *uri, +do_one_server_aliases_test (GUri *uri, const char *alias, gboolean succeed) { @@ -175,18 +177,18 @@ do_one_server_aliases_test (SoupURI *uri, GString *req; static char buf[1024]; - debug_printf (1, " %s via %s\n", alias, uri->scheme); + debug_printf (1, " %s via %s\n", alias, g_uri_get_scheme (uri)); /* There's no way to make libsoup's client side send an absolute * URI (to a non-proxy server), so we have to fake this. */ client = g_socket_client_new (); - if (uri->scheme == SOUP_URI_SCHEME_HTTPS) { + if (soup_uri_is_https (uri, NULL)) { g_socket_client_set_tls (client, TRUE); g_socket_client_set_tls_validation_flags (client, 0); } - addr = g_network_address_new (uri->host, uri->port); + addr = g_network_address_new (g_uri_get_host (uri), g_uri_get_port (uri)); conn = g_socket_client_connect (client, addr, NULL, &error); g_object_unref (addr); @@ -202,9 +204,9 @@ do_one_server_aliases_test (SoupURI *uri, req = g_string_new (NULL); g_string_append_printf (req, "GET %s://%s:%d HTTP/1.1\r\n", - alias, uri->host, uri->port); + alias, g_uri_get_host (uri), g_uri_get_port (uri)); g_string_append_printf (req, "Host: %s:%d\r\n", - uri->host, uri->port); + g_uri_get_host (uri), g_uri_get_port (uri)); g_string_append (req, "Connection: close\r\n\r\n"); if (!g_output_stream_write_all (out, req->str, req->len, NULL, NULL, &error)) { @@ -268,80 +270,80 @@ do_dot_dot_test (ServerData *sd, gconstpointer test_data) { SoupSession *session; SoupMessage *msg; - SoupURI *uri; + GUri *uri; g_test_bug ("667635"); session = soup_test_session_new (NULL); - uri = soup_uri_new_with_base (sd->base_uri, "/..%2ftest"); + uri = g_uri_parse_relative (sd->base_uri, "/..%2ftest", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "/%2e%2e%2ftest"); + uri = g_uri_parse_relative (sd->base_uri, "/%2e%2e%2ftest", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); #ifdef G_OS_WIN32 - uri = soup_uri_new_with_base (sd->base_uri, "\\..%5Ctest"); + uri = g_uri_parse_relative (sd->base_uri, "\\..%5Ctest", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "\\../test"); + uri = g_uri_parse_relative (sd->base_uri, "\\../test", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "%5C..%2ftest"); + uri = g_uri_parse_relative (sd->base_uri, "%5C..%2ftest", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "/..\\test"); + uri = g_uri_parse_relative (sd->base_uri, "/..\\test", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "%2f..%5Ctest"); + uri = g_uri_parse_relative (sd->base_uri, "%2f..%5Ctest", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "\\%2e%2e%5ctest"); + uri = g_uri_parse_relative (sd->base_uri, "\\%2e%2e%5ctest", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); g_object_unref (msg); - uri = soup_uri_new_with_base (sd->base_uri, "\\..%%35%63..%%35%63test"); + uri = g_uri_parse_relative (sd->base_uri, "\\..%%35%63..%%35%63test", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_session_send_message (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_BAD_REQUEST); @@ -430,20 +432,20 @@ multi_server_callback (SoupServer *server, { GSocketAddress *addr; GInetSocketAddress *iaddr; - SoupURI *uri; + GUri *uri; char *uristr, *addrstr; addr = soup_server_message_get_local_address (msg); iaddr = G_INET_SOCKET_ADDRESS (addr); uri = soup_server_message_get_uri (msg); - uristr = soup_uri_to_string (uri, FALSE); + uristr = g_uri_to_string (uri); addrstr = g_inet_address_to_string (g_inet_socket_address_get_address (iaddr)); - g_assert_cmpstr (addrstr, ==, uri->host); + g_assert_cmpstr (addrstr, ==, g_uri_get_host (uri)); g_free (addrstr); - g_assert_cmpint (g_inet_socket_address_get_port (iaddr), ==, uri->port); + g_assert_cmpint (g_inet_socket_address_get_port (iaddr), ==, g_uri_get_port (uri)); /* FIXME ssl */ @@ -453,7 +455,7 @@ multi_server_callback (SoupServer *server, } static void -do_multi_test (ServerData *sd, SoupURI *uri1, SoupURI *uri2) +do_multi_test (ServerData *sd, GUri *uri1, GUri *uri2) { char *uristr; SoupSession *session; @@ -464,7 +466,7 @@ do_multi_test (ServerData *sd, SoupURI *uri1, SoupURI *uri2) session = soup_test_session_new (NULL); - uristr = soup_uri_to_string (uri1, FALSE); + uristr = g_uri_to_string (uri1); msg = soup_message_new ("GET", uristr); body = soup_test_session_async_send (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_OK); @@ -473,7 +475,7 @@ do_multi_test (ServerData *sd, SoupURI *uri1, SoupURI *uri2) g_object_unref (msg); g_free (uristr); - uristr = soup_uri_to_string (uri2, FALSE); + uristr = g_uri_to_string (uri2); msg = soup_message_new ("GET", uristr); body = soup_test_session_async_send (session, msg); soup_test_assert_message_status (msg, SOUP_STATUS_OK); @@ -484,15 +486,15 @@ do_multi_test (ServerData *sd, SoupURI *uri1, SoupURI *uri2) soup_test_session_abort_unref (session); - soup_uri_free (uri1); - soup_uri_free (uri2); + g_uri_unref (uri1); + g_uri_unref (uri2); } static void do_multi_port_test (ServerData *sd, gconstpointer test_data) { GSList *uris; - SoupURI *uri1, *uri2; + GUri *uri1, *uri2; GError *error = NULL; sd->server = soup_test_server_new (SOUP_TEST_SERVER_NO_DEFAULT_LISTENER); @@ -514,7 +516,7 @@ do_multi_port_test (ServerData *sd, gconstpointer test_data) uri2 = uris->next->data; g_slist_free (uris); - g_assert_cmpint (uri1->port, !=, uri2->port); + g_assert_cmpint (g_uri_get_port (uri1), !=, g_uri_get_port (uri2)); do_multi_test (sd, uri1, uri2); } @@ -523,7 +525,7 @@ static void do_multi_scheme_test (ServerData *sd, gconstpointer test_data) { GSList *uris; - SoupURI *uri1, *uri2; + GUri *uri1, *uri2; GError *error = NULL; SOUP_TEST_SKIP_IF_NO_TLS; @@ -549,7 +551,7 @@ do_multi_scheme_test (ServerData *sd, gconstpointer test_data) uri2 = uris->next->data; g_slist_free (uris); - g_assert_cmpstr (uri1->scheme, !=, uri2->scheme); + g_assert_cmpstr (g_uri_get_scheme (uri1), !=, g_uri_get_scheme (uri2)); do_multi_test (sd, uri1, uri2); } @@ -558,7 +560,7 @@ static void do_multi_family_test (ServerData *sd, gconstpointer test_data) { GSList *uris; - SoupURI *uri1, *uri2; + GUri *uri1, *uri2; GError *error = NULL; sd->server = soup_test_server_new (SOUP_TEST_SERVER_NO_DEFAULT_LISTENER); @@ -589,8 +591,8 @@ do_multi_family_test (ServerData *sd, gconstpointer test_data) uri2 = uris->next->data; g_slist_free (uris); - g_assert_cmpstr (uri1->host, !=, uri2->host); - g_assert_cmpint (uri1->port, ==, uri2->port); + g_assert_cmpstr (g_uri_get_host (uri1), !=, g_uri_get_host (uri2)); + g_assert_cmpint (g_uri_get_port (uri1), ==, g_uri_get_port (uri2)); do_multi_test (sd, uri1, uri2); } @@ -602,7 +604,7 @@ do_gsocket_import_test (void) GSocketAddress *gaddr; SoupServer *server; GSList *listeners; - SoupURI *uri; + GUri *uri; SoupSession *session; SoupMessage *msg; GBytes *body; @@ -653,7 +655,7 @@ do_gsocket_import_test (void) soup_test_session_abort_unref (session); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_server_quit_unref (server); g_assert_false (g_socket_is_connected (gsock)); @@ -667,7 +669,7 @@ do_fd_import_test (void) GSocketAddress *gaddr; SoupServer *server; GSList *listeners; - SoupURI *uri; + GUri *uri; SoupSession *session; SoupMessage *msg; GBytes *body; @@ -719,7 +721,7 @@ do_fd_import_test (void) soup_test_session_abort_unref (session); - soup_uri_free (uri); + g_uri_unref (uri); soup_test_server_quit_unref (server); /* @server should have closed our socket, note the specific error isn't reliable */ @@ -1051,7 +1053,7 @@ do_early_respond_test (ServerData *sd, gconstpointer test_data) { SoupSession *session; SoupMessage *msg; - SoupURI *uri2; + GUri *uri2; GBytes *body; server_add_early_handler (sd, NULL, early_respond_callback, NULL, NULL); @@ -1065,14 +1067,14 @@ do_early_respond_test (ServerData *sd, gconstpointer test_data) g_object_unref (msg); /* The early handler will ignore this one */ - uri2 = soup_uri_new_with_base (sd->base_uri, "/subdir"); + uri2 = g_uri_parse_relative (sd->base_uri, "/subdir", SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri2); body = soup_test_session_send (session, msg, NULL, NULL); soup_test_assert_message_status (msg, SOUP_STATUS_OK); g_assert_cmpmem ("index", sizeof ("index") - 1, g_bytes_get_data (body, NULL), g_bytes_get_size (body)); g_bytes_unref (body); g_object_unref (msg); - soup_uri_free (uri2); + g_uri_unref (uri2); soup_test_session_abort_unref (session); } @@ -1092,7 +1094,7 @@ do_early_multi_test (ServerData *sd, gconstpointer test_data) { SoupSession *session; SoupMessage *msg; - SoupURI *uri; + GUri *uri; GBytes *body; struct { const char *path; @@ -1123,9 +1125,9 @@ do_early_multi_test (ServerData *sd, gconstpointer test_data) session = soup_test_session_new (NULL); for (i = 0; i < G_N_ELEMENTS (multi_tests); i++) { - uri = soup_uri_new_with_base (sd->base_uri, multi_tests[i].path); + uri = g_uri_parse_relative (sd->base_uri, multi_tests[i].path, SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); - soup_uri_free (uri); + g_uri_unref (uri); body = soup_test_session_send (session, msg, NULL, NULL); @@ -1359,7 +1361,7 @@ proxy_server_callback (SoupServer *server, gpointer data) { GSocketClient *sclient; - SoupURI *dest_uri; + GUri *dest_uri; Tunnel *tunnel; if (soup_server_message_get_method (msg) != SOUP_METHOD_CONNECT) { @@ -1375,7 +1377,7 @@ proxy_server_callback (SoupServer *server, dest_uri = soup_server_message_get_uri (msg); sclient = g_socket_client_new (); - g_socket_client_connect_to_host_async (sclient, dest_uri->host, dest_uri->port, + g_socket_client_connect_to_host_async (sclient, g_uri_get_host (dest_uri), g_uri_get_port (dest_uri), NULL, tunnel_connected_cb, tunnel); g_object_unref (sclient); } @@ -1386,7 +1388,7 @@ do_steal_connect_test (ServerData *sd, gconstpointer test_data) SoupServer *proxy; SoupSession *session; SoupMessage *msg; - SoupURI *proxy_uri; + GUri *proxy_uri; char *proxy_uri_str; GProxyResolver *resolver; const char *handled_by; @@ -1394,8 +1396,8 @@ do_steal_connect_test (ServerData *sd, gconstpointer test_data) SOUP_TEST_SKIP_IF_NO_TLS; proxy = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD); - proxy_uri = soup_test_server_get_uri (proxy, SOUP_URI_SCHEME_HTTP, "127.0.0.1"); - proxy_uri_str = soup_uri_to_string (proxy_uri, FALSE); + proxy_uri = soup_test_server_get_uri (proxy, "http", "127.0.0.1"); + proxy_uri_str = g_uri_to_string (proxy_uri); soup_server_add_handler (proxy, NULL, proxy_server_callback, NULL, NULL); resolver = g_simple_proxy_resolver_new (proxy_uri_str, NULL); @@ -1413,7 +1415,7 @@ do_steal_connect_test (ServerData *sd, gconstpointer test_data) soup_test_server_quit_unref (proxy); g_object_unref (resolver); - soup_uri_free (proxy_uri); + g_uri_unref (proxy_uri); g_free (proxy_uri_str); } |