[librest/wip/teuf/gtask: 21/28] tests/oauth-async: Add more tests



commit 623494e57653ee9305edc627c96ad9d291b4b5ae
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 |  110 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 104 insertions(+), 6 deletions(-)
---
diff --git a/tests/oauth-async.c b/tests/oauth-async.c
index d2729d5..6f696d0 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)
 {
   OAuthProxy *proxy = OAUTH_PROXY (source_object);
   const gchar *token, *token_secret;
@@ -83,12 +83,58 @@ access_token_cb (GObject      *source_object,
   make_calls (proxy, loop);
 }
 
+
+
 static void
-request_token_cb (GObject      *source_object,
+access_token_cb1 (GObject      *source_object,
                   GAsyncResult *result,
                   gpointer      user_data)
 {
   OAuthProxy *proxy = OAUTH_PROXY (source_object);
+  const gchar *token, *token_secret;
+  GError *error = NULL;
+  GMainLoop *loop = user_data;
+
+  oauth_proxy_access_token_finish (proxy, result, &error);
+  g_assert_no_error (error);
+
+  token = oauth_proxy_get_token (proxy);
+  g_assert_cmpstr (token, ==, "accesskey");
+  token_secret = oauth_proxy_get_token_secret (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)
+{
+  OAuthProxy *proxy = OAUTH_PROXY (source_object);
+  GMainLoop *loop = user_data;
+  const char *token, *token_secret;
+  GError *error = NULL;
+
+  oauth_proxy_request_token_finish (proxy, result, &error);
+  g_assert_no_error (error);
+
+  token = oauth_proxy_get_token (proxy);
+  g_assert_cmpstr (token, ==, "requestkey");
+  token_secret = oauth_proxy_get_token_secret (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)
+{
+  OAuthProxy *proxy = OAUTH_PROXY (source_object);
   GMainLoop *loop = user_data;
   const char *token, *token_secret;
   GError *error = NULL;
@@ -103,7 +149,25 @@ 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)
+{
+  OAuthProxy *proxy = OAUTH_PROXY (source_object);
+  GMainLoop *loop = user_data;
+  GError *error = NULL;
+
+  oauth_proxy_request_token_finish (proxy, result, &error);
+  g_assert_no_error (error);
+
+  g_assert_cmpstr (oauth_proxy_get_token (proxy), ==, "requestkey");
+  g_assert_cmpstr (oauth_proxy_get_token_secret (proxy), ==, "requestsecret");
+
+  g_main_loop_quit (loop);
 }
 
 static gboolean
@@ -114,6 +178,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);
@@ -124,7 +220,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);
 }
@@ -134,6 +230,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]