[librest/wip/teuf/gtask: 31/37] tests/oauth-async: Add more tests



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

    tests/oauth-async: Add more tests

 tests/oauth-async.c |  126 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 119 insertions(+), 7 deletions(-)
---
diff --git a/tests/oauth-async.c b/tests/oauth-async.c
index 29d0050..d933f7b 100644
--- a/tests/oauth-async.c
+++ b/tests/oauth-async.c
@@ -63,9 +63,9 @@ make_calls (OAuthProxy *oproxy, GMainLoop *loop)
 }
 
 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;
@@ -83,15 +83,70 @@ access_token_cb (GObject      *source_object,
   token_secret = oauth_proxy_get_token_secret (OAUTH_PROXY (proxy));
   g_assert_cmpstr (token_secret, ==, "accesssecret");
 
-  make_calls (OAUTH_PROXY(proxy), loop);
+  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;
+  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);
+
+  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_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;
@@ -111,7 +166,30 @@ request_token_cb (GObject      *source_object,
 
   /* Second stage authentication, this gets an access token */
   oauth_proxy_access_token_async (proxy, "access-token", NULL,
-                                  NULL, access_token_cb, loop);
+                                  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
@@ -122,6 +200,38 @@ on_timeout (gpointer data)
 }
 
 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);
@@ -132,7 +242,7 @@ test_calls ()
   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_cb, loop);
+                                   NULL, request_token_cb3, loop);
 
   g_main_loop_run (loop);
 }
@@ -142,6 +252,8 @@ 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 ();


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