[libsoup] tests: Add convenient soup_test_assert_handled_by()



commit c5fc923e77575f70f4e7a350a867b7b1990b17f3
Author: Philip Chimento <philip endlessm com>
Date:   Mon Nov 18 15:45:51 2019 -0800

    tests: Add convenient soup_test_assert_handled_by()
    
    This code is repeated a few times, so move it into a macro similar to
    soup_test_assert_message_status(). This macro will be used a few more
    times in a subsequent commit.

 tests/server-test.c | 13 +++----------
 tests/test-utils.h  | 18 ++++++++++++++++++
 2 files changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/tests/server-test.c b/tests/server-test.c
index f2ea4584..c2f79ed2 100644
--- a/tests/server-test.c
+++ b/tests/server-test.c
@@ -126,7 +126,6 @@ do_star_test (ServerData *sd, gconstpointer test_data)
 {
        SoupSession *session;
        SoupMessage *msg;
-       const char *handled_by;
 
        g_test_bug ("590751");
 
@@ -141,9 +140,7 @@ do_star_test (ServerData *sd, gconstpointer test_data)
        soup_test_session_send_message (session, msg);
 
        soup_test_assert_message_status (msg, SOUP_STATUS_NOT_FOUND);
-       handled_by = soup_message_headers_get_one (soup_message_get_response_headers (msg),
-                                                  "X-Handled-By");
-       g_assert_cmpstr (handled_by, ==, NULL);
+       soup_test_assert_handled_by (msg, NULL);
        g_object_unref (msg);
 
        server_add_handler (sd, "*", server_star_callback, NULL, NULL);
@@ -157,9 +154,7 @@ do_star_test (ServerData *sd, gconstpointer test_data)
        soup_test_session_send_message (session, msg);
 
        soup_test_assert_message_status (msg, SOUP_STATUS_OK);
-       handled_by = soup_message_headers_get_one (soup_message_get_response_headers (msg),
-                                                  "X-Handled-By");
-       g_assert_cmpstr (handled_by, ==, "star_callback");
+       soup_test_assert_handled_by (msg, "star_callback");
        g_object_unref (msg);
 
        soup_test_session_abort_unref (session);
@@ -1393,7 +1388,6 @@ do_steal_connect_test (ServerData *sd, gconstpointer test_data)
        GUri *proxy_uri;
        char *proxy_uri_str;
        GProxyResolver *resolver;
-       const char *handled_by;
 
        SOUP_TEST_SKIP_IF_NO_TLS;
 
@@ -1409,8 +1403,7 @@ do_steal_connect_test (ServerData *sd, gconstpointer test_data)
        soup_test_session_send_message (session, msg);
 
        soup_test_assert_message_status (msg, SOUP_STATUS_OK);
-       handled_by = soup_message_headers_get_one (soup_message_get_response_headers (msg), "X-Handled-By");
-       g_assert_cmpstr (handled_by, ==, "server_callback");
+       soup_test_assert_handled_by (msg, "server_callback");
 
        g_object_unref (msg);
        soup_test_session_abort_unref (session);
diff --git a/tests/test-utils.h b/tests/test-utils.h
index 38241cb8..22e5e150 100644
--- a/tests/test-utils.h
+++ b/tests/test-utils.h
@@ -126,6 +126,24 @@ G_STMT_START {                                                             \
        }                                                               \
 } G_STMT_END
 
+#define soup_test_assert_handled_by(msg, string)                       \
+G_STMT_START {                                                         \
+       SoupMessage *_msg = (msg);                                      \
+       const char *_handled_by;                                        \
+       const char *_expected = (char *) (string);                      \
+       char *_message;                                                 \
+       _handled_by = soup_message_headers_get_one (soup_message_get_response_headers (_msg), \
+                                                   "X-Handled-By");    \
+       if (G_UNLIKELY (g_strcmp0 (_handled_by, _expected) != 0)) {     \
+               _message = g_strdup_printf ("Request was handled by %s (expected %s)", \
+                                           _handled_by, _expected);    \
+               g_assertion_message (G_LOG_DOMAIN,                      \
+                                    __FILE__, __LINE__, G_STRFUNC,     \
+                                    _message);                         \
+               g_free (_message);                                      \
+       }                                                               \
+} G_STMT_END
+
 #define soup_assert_cmpmem(s1, l1, s2, l2)                             \
 G_STMT_START {                                                         \
        int __l1 = l1, __l2 = l2;                                       \


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]