summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2020-10-23 14:13:32 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2020-10-23 14:13:32 +0200
commitc5c6bd21a8a6ac8c33c0c62791a951534d3e9e22 (patch)
tree79ed89f02764b891a873167f10c88c9844f65a85
parent4182ec14d537a0c4468bb09375da97509f1e67eb (diff)
downloadlibsoup-c5c6bd21a8a6ac8c33c0c62791a951534d3e9e22.tar.gz
tests: stop using SoupSession::connection-created in tests
-rw-r--r--tests/connection-test.c50
-rw-r--r--tests/misc-test.c38
2 files changed, 47 insertions, 41 deletions
diff --git a/tests/connection-test.c b/tests/connection-test.c
index f694bf94..527fbb4e 100644
--- a/tests/connection-test.c
+++ b/tests/connection-test.c
@@ -757,13 +757,13 @@ static const char *state_names[] = {
};
static void
-connection_state_changed (GObject *object, GParamSpec *param,
- gpointer user_data)
+connection_state_changed (SoupConnection *conn,
+ GParamSpec *param,
+ SoupConnectionState *state)
{
- SoupConnectionState *state = user_data;
SoupConnectionState new_state;
- g_object_get (object, "state", &new_state, NULL);
+ g_object_get (conn, "state", &new_state, NULL);
debug_printf (2, " %s -> %s\n",
state_names[*state], state_names[new_state]);
soup_test_assert (state_transitions[*state] == new_state,
@@ -773,26 +773,40 @@ connection_state_changed (GObject *object, GParamSpec *param,
}
static void
-connection_created (SoupSession *session, GObject *conn,
- gpointer user_data)
+message_network_event (SoupMessage *msg,
+ GSocketClientEvent event,
+ GIOStream *connection,
+ SoupConnectionState *state)
{
- SoupConnectionState *state = user_data;
+ SoupConnection *conn;
- g_object_get (conn, "state", state, NULL);
- g_assert_cmpint (*state, ==, SOUP_CONNECTION_NEW);
+ if (event != G_SOCKET_CLIENT_RESOLVING)
+ return;
+
+ /* This is connecting, so we know it comes from a NEW state. */
+ *state = SOUP_CONNECTION_NEW;
+
+ conn = soup_message_get_connection (msg);
+ g_assert_nonnull (conn);
+ connection_state_changed (conn, NULL, state);
g_signal_connect (conn, "notify::state",
- G_CALLBACK (connection_state_changed),
- state);
+ G_CALLBACK (connection_state_changed),
+ state);
}
static void
-do_one_connection_state_test (SoupSession *session, const char *uri)
+do_one_connection_state_test (SoupSession *session,
+ const char *uri,
+ SoupConnectionState *state)
{
SoupMessage *msg;
GBytes *body;
msg = soup_message_new ("GET", uri);
+ g_signal_connect (msg, "network-event",
+ G_CALLBACK (message_network_event),
+ state);
body = soup_test_session_async_send (session, msg);
soup_test_assert_message_status (msg, SOUP_STATUS_OK);
g_bytes_unref (body);
@@ -806,16 +820,12 @@ do_connection_state_test_for_session (SoupSession *session)
SoupConnectionState state;
GProxyResolver *resolver;
- g_signal_connect (session, "connection-created",
- G_CALLBACK (connection_created),
- &state);
-
debug_printf (1, " http\n");
- do_one_connection_state_test (session, HTTP_SERVER);
+ do_one_connection_state_test (session, HTTP_SERVER, &state);
if (tls_available) {
debug_printf (1, " https\n");
- do_one_connection_state_test (session, HTTPS_SERVER);
+ do_one_connection_state_test (session, HTTPS_SERVER, &state);
} else
debug_printf (1, " https -- SKIPPING\n");
@@ -826,11 +836,11 @@ do_connection_state_test_for_session (SoupSession *session)
g_object_unref (resolver);
debug_printf (1, " http with proxy\n");
- do_one_connection_state_test (session, HTTP_SERVER);
+ do_one_connection_state_test (session, HTTP_SERVER, &state);
if (tls_available) {
debug_printf (1, " https with proxy\n");
- do_one_connection_state_test (session, HTTPS_SERVER);
+ do_one_connection_state_test (session, HTTPS_SERVER, &state);
} else
debug_printf (1, " https with proxy -- SKIPPING\n");
}
diff --git a/tests/misc-test.c b/tests/misc-test.c
index beb586ba..844d9cdd 100644
--- a/tests/misc-test.c
+++ b/tests/misc-test.c
@@ -437,25 +437,18 @@ ea_abort_session (gpointer session)
}
static void
-ea_connection_state_changed (GObject *conn, GParamSpec *pspec, gpointer session)
+ea_message_network_event (SoupMessage *msg,
+ GSocketClientEvent event,
+ GIOStream *connection,
+ SoupSession *session)
{
- SoupConnectionState state;
-
- g_object_get (conn, "state", &state, NULL);
- if (state == SOUP_CONNECTION_CONNECTING) {
- g_idle_add_full (G_PRIORITY_HIGH,
- ea_abort_session,
- session, NULL);
- g_signal_handlers_disconnect_by_func (conn, ea_connection_state_changed, session);
- }
-}
+ if (event != G_SOCKET_CLIENT_RESOLVING)
+ return;
-static void
-ea_connection_created (SoupSession *session, GObject *conn, gpointer user_data)
-{
- g_signal_connect (conn, "notify::state",
- G_CALLBACK (ea_connection_state_changed), session);
- g_signal_handlers_disconnect_by_func (session, ea_connection_created, user_data);
+ g_idle_add_full (G_PRIORITY_HIGH,
+ ea_abort_session,
+ session, NULL);
+ g_signal_handlers_disconnect_by_func (msg, ea_message_network_event, session);
}
static void
@@ -496,8 +489,9 @@ do_early_abort_test (void)
session = soup_test_session_new (SOUP_TYPE_SESSION, NULL);
msg = soup_message_new_from_uri ("GET", base_uri);
- g_signal_connect (session, "connection-created",
- G_CALLBACK (ea_connection_created), NULL);
+ g_signal_connect (msg, "network-event",
+ G_CALLBACK (ea_message_network_event),
+ session);
body = soup_test_session_async_send (session, msg);
debug_printf (2, " Message 2 completed\n");
@@ -610,8 +604,10 @@ do_early_abort_req_test (void)
NULL);
req = soup_session_request_uri (session, base_uri, NULL);
- g_signal_connect (session, "connection-created",
- G_CALLBACK (ea_connection_created), NULL);
+ g_signal_connect (soup_request_http_get_message (SOUP_REQUEST_HTTP (req)),
+ "network-event",
+ G_CALLBACK (ea_message_network_event),
+ session);
soup_request_send_async (req, NULL, ear_two_completed, loop);
g_main_loop_run (loop);
g_object_unref (req);