[libsoup] tests: update to handle G_PARAM_DEPRECATED warnings in new glib



commit 6dac94fc54f509afc63239c0e6529c5da1bb40f2
Author: Dan Winship <danw gnome org>
Date:   Tue Jul 22 09:22:23 2014 -0400

    tests: update to handle G_PARAM_DEPRECATED warnings in new glib
    
    SoupSession:ssl-ca-file is deprecated, but we were still using it some
    tests for convenience, and in others because we need to test that it
    still works right. Fix the former by using SoupSession:tls-database
    instead, and fix the later by adjusting the property's GParamSpec's
    flags around tests that need to test :ssl-ca-file.

 tests/no-ssl-test.c |    9 +++++++++
 tests/ssl-test.c    |   22 +++++++++++++++++++---
 tests/test-utils.c  |   15 +++++++++++++--
 3 files changed, 41 insertions(+), 5 deletions(-)
---
diff --git a/tests/no-ssl-test.c b/tests/no-ssl-test.c
index 54887f1..e6114b9 100644
--- a/tests/no-ssl-test.c
+++ b/tests/no-ssl-test.c
@@ -54,11 +54,17 @@ do_session_property_tests (void)
        GTlsDatabase *tlsdb;
        char *ca_file;
        SoupSession *session;
+       GParamSpec *pspec;
 
        g_test_bug ("700518");
 
        session = soup_session_async_new ();
 
+       /* Temporarily undeprecate SOUP_SESSION_SSL_CA_FILE to avoid warnings. */
+       pspec = g_object_class_find_property (g_type_class_peek (SOUP_TYPE_SESSION),
+                                             SOUP_SESSION_SSL_CA_FILE);
+       pspec->flags &= ~G_PARAM_DEPRECATED;
+
        g_object_get (G_OBJECT (session),
                      "ssl-use-system-ca-file", &use_system,
                      "tls-database", &tlsdb,
@@ -102,6 +108,9 @@ do_session_property_tests (void)
        soup_test_assert (ca_file == NULL, "setting tls-database NULL set ssl-ca-file");
 
        soup_test_session_abort_unref (session);
+
+       /* Re-deprecate SOUP_SESSION_SSL_CA_FILE */
+       pspec->flags |= G_PARAM_DEPRECATED;
 }
 
 static void
diff --git a/tests/ssl-test.c b/tests/ssl-test.c
index 8ff50a3..cc8197f 100644
--- a/tests/ssl-test.c
+++ b/tests/ssl-test.c
@@ -3,6 +3,7 @@
 #include "test-utils.h"
 
 SoupURI *uri;
+GTlsDatabase *null_tlsdb;
 
 static void
 do_properties_test_for_session (SoupSession *session)
@@ -36,7 +37,7 @@ do_async_properties_tests (void)
 
        session = soup_test_session_new (SOUP_TYPE_SESSION_ASYNC, NULL);
        g_object_set (G_OBJECT (session),
-                     SOUP_SESSION_SSL_CA_FILE, "/dev/null",
+                     SOUP_SESSION_TLS_DATABASE, null_tlsdb,
                      SOUP_SESSION_SSL_STRICT, FALSE,
                      NULL);
        do_properties_test_for_session (session);
@@ -52,7 +53,7 @@ do_sync_properties_tests (void)
 
        session = soup_test_session_new (SOUP_TYPE_SESSION_SYNC, NULL);
        g_object_set (G_OBJECT (session),
-                     SOUP_SESSION_SSL_CA_FILE, "/dev/null",
+                     SOUP_SESSION_TLS_DATABASE, null_tlsdb,
                      SOUP_SESSION_SSL_STRICT, FALSE,
                      NULL);
        do_properties_test_for_session (session);
@@ -105,7 +106,7 @@ do_strictness_test (gconstpointer data)
        }
        if (!test->with_ca_list) {
                g_object_set (G_OBJECT (session),
-                             SOUP_SESSION_SSL_CA_FILE, "/dev/null",
+                             SOUP_SESSION_TLS_DATABASE, null_tlsdb,
                              NULL);
        }
 
@@ -147,12 +148,19 @@ do_session_property_tests (void)
        GTlsDatabase *tlsdb;
        char *ca_file;
        SoupSession *session;
+       GParamSpec *pspec;
 
        g_test_bug ("673678");
 
        SOUP_TEST_SKIP_IF_NO_TLS;
 
        session = soup_session_async_new ();
+
+       /* Temporarily undeprecate SOUP_SESSION_SSL_CA_FILE to avoid warnings. */
+       pspec = g_object_class_find_property (g_type_class_peek (SOUP_TYPE_SESSION),
+                                             SOUP_SESSION_SSL_CA_FILE);
+       pspec->flags &= ~G_PARAM_DEPRECATED;
+
        g_signal_connect (session, "notify::ssl-use-system-ca-file",
                          G_CALLBACK (property_changed), &use_system_changed);
        g_signal_connect (session, "notify::tls-database",
@@ -233,6 +241,9 @@ do_session_property_tests (void)
        g_assert_true (ca_file_changed);
 
        soup_test_session_abort_unref (session);
+
+       /* Re-deprecate SOUP_SESSION_SSL_CA_FILE */
+       pspec->flags |= G_PARAM_DEPRECATED;
 }
 
 /* GTlsInteraction subclass for do_interaction_test */
@@ -420,6 +431,7 @@ main (int argc, char **argv)
 {
        SoupServer *server;
        int i, ret;
+       GError *error = NULL;
 
        test_init (argc, argv, NULL);
 
@@ -427,6 +439,9 @@ main (int argc, char **argv)
                server = soup_test_server_new (SOUP_TEST_SERVER_IN_THREAD);
                soup_server_add_handler (server, NULL, server_handler, NULL, NULL);
                uri = soup_test_server_get_uri (server, "https", "127.0.0.1");
+
+               null_tlsdb = g_tls_file_database_new ("/dev/null", &error);
+               g_assert_no_error (error);
        } else
                uri = NULL;
 
@@ -446,6 +461,7 @@ main (int argc, char **argv)
        if (tls_available) {
                soup_uri_free (uri);
                soup_test_server_quit_unref (server);
+               g_object_unref (null_tlsdb);
        }
 
        test_cleanup ();
diff --git a/tests/test-utils.c b/tests/test-utils.c
index b3a0ba9..a157e76 100644
--- a/tests/test-utils.c
+++ b/tests/test-utils.c
@@ -228,7 +228,9 @@ soup_test_session_new (GType type, ...)
        va_list args;
        const char *propname;
        SoupSession *session;
+       GTlsDatabase *tlsdb;
        char *cafile;
+       GError *error = NULL;
 
        va_start (args, type);
        propname = va_arg (args, const char *);
@@ -236,10 +238,19 @@ soup_test_session_new (GType type, ...)
        va_end (args);
 
        cafile = g_test_build_filename (G_TEST_DIST, "test-cert.pem", NULL);
+       tlsdb = g_tls_file_database_new (cafile, &error);
+       g_free (cafile);
+       if (error) {
+               if (g_strcmp0 (g_getenv ("GIO_USE_TLS"), "dummy") == 0)
+                       g_clear_error (&error);
+               else
+                       g_assert_no_error (error);
+       }
+
        g_object_set (G_OBJECT (session),
-                     SOUP_SESSION_SSL_CA_FILE, cafile,
+                     SOUP_SESSION_TLS_DATABASE, tlsdb,
                      NULL);
-       g_free (cafile);
+       g_clear_object (&tlsdb);
 
        if (http_debug_level && !logger) {
                SoupLoggerLogLevel level = MIN ((SoupLoggerLogLevel)http_debug_level, SOUP_LOGGER_LOG_BODY);


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