[librest/wip/baedert/gtask: 25/25] tests/oauth-async: Port to GTest api



commit fb650a1cbb10daa6229c5cb3f8b5d2ef5a24cf9d
Author: Timm Bäder <mail baedert org>
Date:   Sat Apr 23 17:15:39 2016 +0200

    tests/oauth-async: Port to GTest api

 tests/oauth-async.c |  185 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 162 insertions(+), 23 deletions(-)
---
diff --git a/tests/oauth-async.c b/tests/oauth-async.c
index 3151493..bd16724 100644
--- a/tests/oauth-async.c
+++ b/tests/oauth-async.c
@@ -26,10 +26,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-static GMainLoop *loop;
-
 static void
-make_calls (OAuthProxy *oproxy)
+make_calls (OAuthProxy *oproxy, GMainLoop *loop)
 {
   RestProxy *proxy = REST_PROXY (oproxy);
   RestProxyCall *call;
@@ -40,24 +38,24 @@ make_calls (OAuthProxy *oproxy)
   call = rest_proxy_new_call (proxy);
   rest_proxy_call_set_function (call, "echo");
   rest_proxy_call_add_param (call, "foo", "bar");
-  if (!rest_proxy_call_sync (call, &error))
-    g_error ("Cannot make call: %s", error->message);
+  rest_proxy_call_sync (call, &error);
+  g_assert_no_error (error);
   g_assert_cmpstr (rest_proxy_call_get_payload (call), ==, "foo=bar");
   g_object_unref (call);
 
   call = rest_proxy_new_call (proxy);
   rest_proxy_call_set_function (call, "echo");
   rest_proxy_call_add_param (call, "numbers", "1234567890");
-  if (!rest_proxy_call_sync (call, &error))
-    g_error ("Cannot make call: %s", error->message);
+  rest_proxy_call_sync (call, &error);
+  g_assert_no_error (error);
   g_assert_cmpstr (rest_proxy_call_get_payload (call), ==, "numbers=1234567890");
   g_object_unref (call);
 
   call = rest_proxy_new_call (proxy);
   rest_proxy_call_set_function (call, "echo");
   rest_proxy_call_add_param (call, "escape", "!£$%^&*()");
-  if (!rest_proxy_call_sync (call, &error))
-    g_error ("Cannot make call: %s", error->message);
+  rest_proxy_call_sync (call, &error);
+  g_assert_no_error (error);
   g_assert_cmpstr (rest_proxy_call_get_payload (call), ==, "escape=%21%C2%A3%24%25%5E%26%2A%28%29");
   g_object_unref (call);
 
@@ -65,49 +63,133 @@ make_calls (OAuthProxy *oproxy)
 }
 
 static void
-access_token_cb (GObject      *source_object,
-                 GAsyncResult *result,
-                 gpointer      user_data)
+access_token_cb2 (GObject      *source_object,
+                  GAsyncResult *result,
+                  gpointer      user_data)
 {
   OAuthProxyCall *call = OAUTH_PROXY_CALL (source_object);
   OAuthProxy *proxy;
-  OAuthProxyPrivate *priv;
+  const gchar *token, *token_secret;
   GError *error = NULL;
+  GMainLoop *loop = user_data;
 
   rest_proxy_call_invoke_finish (REST_PROXY_CALL (call), result, &error);
   g_assert_no_error (error);
 
   g_object_get (G_OBJECT (call), "proxy", &proxy, NULL);
-  priv = PROXY_GET_PRIVATE (proxy);
 
-  g_assert_cmpstr (priv->token, ==, "accesskey");
-  g_assert_cmpstr (priv->token_secret, ==, "accesssecret");
+  token = oauth_proxy_get_token (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token, ==, "accesskey");
+  token_secret = oauth_proxy_get_token_secret (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token_secret, ==, "accesssecret");
 
-  make_calls (proxy);
+  make_calls (OAUTH_PROXY (proxy), loop);
 }
 
+
+
 static void
-request_token_cb (GObject      *source_object,
+access_token_cb1 (GObject      *source_object,
                   GAsyncResult *result,
                   gpointer      user_data)
 {
   OAuthProxyCall *call = OAUTH_PROXY_CALL (source_object);
   OAuthProxy *proxy;
-  OAuthProxyPrivate *priv;
+  const gchar *token, *token_secret;
+  GError *error = NULL;
+  GMainLoop *loop = user_data;
+
+  rest_proxy_call_invoke_finish (REST_PROXY_CALL (call), result, &error);
+  g_assert_no_error (error);
+
+  g_object_get (G_OBJECT (call), "proxy", &proxy, NULL);
+  g_assert (OAUTH_IS_PROXY (proxy));
+
+  token = oauth_proxy_get_token (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token, ==, "accesskey");
+  token_secret = oauth_proxy_get_token_secret (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token_secret, ==, "accesssecret");
+
+  g_main_loop_quit (loop);
+}
+
+static void
+request_token_cb3 (GObject      *source_object,
+                   GAsyncResult *result,
+                   gpointer      user_data)
+{
+  OAuthProxyCall *call = OAUTH_PROXY_CALL (source_object);
+  GMainLoop *loop = user_data;
+  const char *token, *token_secret;
+  OAuthProxy *proxy;
   GError *error = NULL;
 
   rest_proxy_call_invoke_finish (REST_PROXY_CALL (call), result, &error);
   g_assert_no_error (error);
 
   g_object_get (G_OBJECT (call), "proxy", &proxy, NULL);
-  priv = PROXY_GET_PRIVATE (proxy);
 
-  g_assert_cmpstr (priv->token, ==, "requestkey");
-  g_assert_cmpstr (priv->token_secret, ==, "requestsecret");
+  g_assert (OAUTH_IS_PROXY (proxy));
+
+  token = oauth_proxy_get_token (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token, ==, "requestkey");
+  token_secret = oauth_proxy_get_token_secret (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token_secret, ==, "requestsecret");
 
   /* Second stage authentication, this gets an access token */
   oauth_proxy_access_token_async (proxy, "access-token", NULL,
-                                  NULL, access_token_cb, NULL);
+                                  NULL, access_token_cb2, loop);
+}
+
+static void
+request_token_cb2 (GObject      *source_object,
+                   GAsyncResult *result,
+                   gpointer      user_data)
+{
+  OAuthProxyCall *call = OAUTH_PROXY_CALL (source_object);
+  GMainLoop *loop = user_data;
+  const char *token, *token_secret;
+  OAuthProxy *proxy;
+  GError *error = NULL;
+
+  rest_proxy_call_invoke_finish (REST_PROXY_CALL (call), result, &error);
+  g_assert_no_error (error);
+
+  g_object_get (G_OBJECT (call), "proxy", &proxy, NULL);
+
+  g_assert (OAUTH_IS_PROXY (proxy));
+
+  token = oauth_proxy_get_token (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token, ==, "requestkey");
+  token_secret = oauth_proxy_get_token_secret (OAUTH_PROXY (proxy));
+  g_assert_cmpstr (token_secret, ==, "requestsecret");
+
+  /* Second stage authentication, this gets an access token */
+  oauth_proxy_access_token_async (proxy, "access-token", NULL,
+                                  NULL, access_token_cb1, loop);
+}
+
+static void
+request_token_cb1 (GObject      *source_object,
+                   GAsyncResult *result,
+                   gpointer      user_data)
+{
+  OAuthProxyCall *call = OAUTH_PROXY_CALL (source_object);
+  GMainLoop *loop = user_data;
+  OAuthProxy *proxy;
+  GError *error = NULL;
+
+  rest_proxy_call_invoke_finish (REST_PROXY_CALL (call), result, &error);
+  g_assert_no_error (error);
+
+  g_object_get (G_OBJECT (call), "proxy", &proxy, NULL);
+
+  g_assert (OAUTH_IS_PROXY (proxy));
+
+  g_assert_cmpstr (oauth_proxy_get_token (OAUTH_PROXY (proxy)), ==, "requestkey");
+  g_assert_cmpstr (oauth_proxy_get_token_secret (OAUTH_PROXY (proxy)), ==, "requestsecret");
+
+  g_main_loop_quit (loop);
 }
 
 static gboolean
@@ -117,9 +199,65 @@ on_timeout (gpointer data)
   return FALSE;
 }
 
+static void
+test_request_token ()
+{
+  GMainLoop *loop = g_main_loop_new (NULL, TRUE);
+  RestProxy *proxy;
+
+  /* Install a timeout so that we don't hang or infinite loop */
+  g_timeout_add_seconds (10, on_timeout, NULL);
+  proxy = oauth_proxy_new ("key", "secret", "http://oauthbin.com/v1/";, FALSE);
+
+  oauth_proxy_request_token_async (OAUTH_PROXY (proxy), "request-token", NULL,
+                                   NULL, request_token_cb1, loop);
+
+  g_main_loop_run (loop);
+}
+
+static void
+test_access_token ()
+{
+  GMainLoop *loop = g_main_loop_new (NULL, TRUE);
+  RestProxy *proxy;
+
+  /* Install a timeout so that we don't hang or infinite loop */
+  g_timeout_add_seconds (10, on_timeout, NULL);
+  proxy = oauth_proxy_new ("key", "secret", "http://oauthbin.com/v1/";, FALSE);
+
+  oauth_proxy_request_token_async (OAUTH_PROXY (proxy), "request-token", NULL,
+                                   NULL, request_token_cb2, loop);
+
+  g_main_loop_run (loop);
+}
+
+static void
+test_calls ()
+{
+  GMainLoop *loop = g_main_loop_new (NULL, TRUE);
+  RestProxy *proxy;
+
+  /* Install a timeout so that we don't hang or infinite loop */
+  g_timeout_add_seconds (10, on_timeout, NULL);
+  proxy = oauth_proxy_new ("key", "secret", "http://oauthbin.com/v1/";, FALSE);
+
+  oauth_proxy_request_token_async (OAUTH_PROXY (proxy), "request-token", NULL,
+                                   NULL, request_token_cb3, loop);
+
+  g_main_loop_run (loop);
+}
+
 int
 main (int argc, char **argv)
 {
+  g_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/oauth-async/request-token", test_request_token);
+  g_test_add_func ("/oauth-async/access-token", test_access_token);
+  g_test_add_func ("/oauth-async/calls", test_calls);
+
+  return g_test_run ();
+#if 0
   RestProxy *proxy;
   OAuthProxy *oproxy;
 
@@ -141,4 +279,5 @@ main (int argc, char **argv)
   g_main_loop_run (loop);
 
   return 0;
+#endif
 }


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