diff options
Diffstat (limited to 'tests/streaming-test.c')
-rw-r--r-- | tests/streaming-test.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/streaming-test.c b/tests/streaming-test.c index 7b776d4c..22153325 100644 --- a/tests/streaming-test.c +++ b/tests/streaming-test.c @@ -98,6 +98,14 @@ msg_got_headers_cb (SoupMessage *msg, } static void +msg_got_body_data_cb (SoupMessage *msg, + guint chunk_size, + guint64 *response_body_bytes_received) +{ + *response_body_bytes_received += chunk_size; +} + +static void msg_got_body_cb (SoupMessage *msg, SoupMessageMetrics *metrics) { @@ -113,6 +121,7 @@ do_request (SoupSession *session, GUri *base_uri, char *path) GBytes *body; char *md5; SoupMessageMetrics *metrics; + guint64 response_body_bytes_received = 0; uri = g_uri_parse_relative (base_uri, path, SOUP_HTTP_URI_FLAGS, NULL); msg = soup_message_new_from_uri ("GET", uri); @@ -134,6 +143,9 @@ do_request (SoupSession *session, GUri *base_uri, char *path) g_signal_connect (msg, "got-headers", G_CALLBACK (msg_got_headers_cb), metrics); + g_signal_connect (msg, "got-body-data", + G_CALLBACK (msg_got_body_data_cb), + &response_body_bytes_received); g_signal_connect (msg, "got-body", G_CALLBACK (msg_got_body_cb), metrics); @@ -143,6 +155,7 @@ do_request (SoupSession *session, GUri *base_uri, char *path) soup_test_assert_message_status (msg, SOUP_STATUS_OK); g_assert_cmpint (g_bytes_get_size (body), ==, g_bytes_get_size (full_response)); g_assert_cmpint (soup_message_metrics_get_response_body_size (metrics), ==, g_bytes_get_size (body)); + g_assert_cmpuint (soup_message_metrics_get_response_body_bytes_received (metrics), ==, response_body_bytes_received); g_assert_cmpuint (soup_message_metrics_get_request_header_bytes_sent (metrics), >, 0); g_assert_cmpuint (soup_message_metrics_get_request_body_bytes_sent (metrics), ==, 0); g_assert_cmpuint (soup_message_metrics_get_request_body_size (metrics), ==, 0); @@ -152,6 +165,12 @@ do_request (SoupSession *session, GUri *base_uri, char *path) } else { g_assert_cmpuint (soup_message_metrics_get_response_body_bytes_received (metrics), ==, soup_message_metrics_get_response_body_size (metrics)); } + if (g_str_equal (path, "content-length")) { + goffset content_length; + + content_length = soup_message_headers_get_content_length (soup_message_get_response_headers (msg)); + g_assert_cmpuint (content_length, ==, response_body_bytes_received); + } md5 = g_compute_checksum_for_data (G_CHECKSUM_MD5, (guchar *)g_bytes_get_data (body, NULL), |