From cad8cc385338bf5681e62b82979c4442bc64319b Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Sat, 8 Apr 2023 09:15:59 +0200 Subject: session: handle request cancellation earlier Check if the message was cancelled before the request is sent. --- tests/misc-test.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'tests/misc-test.c') diff --git a/tests/misc-test.c b/tests/misc-test.c index 045161d8..4c14bb87 100644 --- a/tests/misc-test.c +++ b/tests/misc-test.c @@ -429,6 +429,14 @@ ea_message_starting (SoupMessage *msg, g_cancellable_cancel (cancellable); } +static void +ea_message_queued (SoupSession *session, + SoupMessage *msg, + GCancellable *cancellable) +{ + g_cancellable_cancel (cancellable); +} + static void do_early_abort_test (void) { @@ -488,6 +496,22 @@ do_early_abort_test (void) g_object_unref (cancellable); g_object_unref (msg); soup_test_session_abort_unref (session); + + session = soup_test_session_new (NULL); + msg = soup_message_new_from_uri ("GET", base_uri); + cancellable = g_cancellable_new (); + + g_signal_connect (session, "request-queued", + G_CALLBACK (ea_message_queued), cancellable); + g_assert_null (soup_test_session_async_send (session, msg, cancellable, &error)); + debug_printf (2, " Message 4 completed\n"); + + g_assert_cmpuint (soup_message_get_connection_id (msg), ==, 0); + g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED); + g_clear_error (&error); + g_object_unref (cancellable); + g_object_unref (msg); + soup_test_session_abort_unref (session); } static void -- cgit v1.2.1