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