summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimm Bäder <mail@baedert.org>2016-04-23 17:15:39 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2016-06-20 12:39:44 +0200
commit623494e57653ee9305edc627c96ad9d291b4b5ae (patch)
tree841a3f3c48c01f7cb5b9295b8967520e3d2a53dd
parente6ded158acd6f1890c34403cbe8208fbda2698c7 (diff)
downloadlibrest-623494e57653ee9305edc627c96ad9d291b4b5ae.tar.gz
tests/oauth-async: Add more tests
-rw-r--r--tests/oauth-async.c110
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 ();