diff options
author | Timm Bäder <mail@baedert.org> | 2016-04-23 17:15:39 +0200 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2016-06-20 12:39:44 +0200 |
commit | 623494e57653ee9305edc627c96ad9d291b4b5ae (patch) | |
tree | 841a3f3c48c01f7cb5b9295b8967520e3d2a53dd | |
parent | e6ded158acd6f1890c34403cbe8208fbda2698c7 (diff) | |
download | librest-623494e57653ee9305edc627c96ad9d291b4b5ae.tar.gz |
tests/oauth-async: Add more tests
-rw-r--r-- | 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 (); |