summaryrefslogtreecommitdiff
path: root/tests/server-test.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/server-test.c')
-rw-r--r--tests/server-test.c130
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);
}