예제 #1
0
        public async Task StartAuthorizationAsyncBeforeConsumerSecretEndpointInitialization()
        {
            var consumer = new OAuth1Consumer();

            consumer.ConsumerKey = TestUtilities.ConsumerKey;
            consumer.TemporaryCredentialsEndpoint = TestUtilities.TemporaryCredentialsEndpoint;
            try {
                await consumer.StartAuthorizationAsync("oob");

                Assert.Fail("Expected exception not thrown.");
            } catch (InvalidOperationException) {
            }
        }
예제 #2
0
        public async Task StartAuthorizationAsyncOob()
        {
            this.MockHandler = async req => {
                Assert.AreEqual(TestUtilities.TemporaryCredentialsEndpoint, req.RequestUri);
                Assert.AreEqual(HttpMethod.Post, req.Method);
                var oauthArgs = TestUtilities.ParseAuthorizationHeader(req.Headers.Authorization.Parameter);
                Assert.AreEqual("oob", oauthArgs["oauth_callback"]);
                Assert.AreEqual(TestUtilities.ConsumerKey, oauthArgs["oauth_consumer_key"]);
                Assert.IsTrue(string.IsNullOrEmpty(oauthArgs["oauth_token"]));
                Assert.IsFalse(string.IsNullOrEmpty(oauthArgs["oauth_signature_method"]));
                Assert.IsFalse(string.IsNullOrEmpty(oauthArgs["oauth_timestamp"]));
                Assert.IsFalse(string.IsNullOrEmpty(oauthArgs["oauth_nonce"]));
                Assert.AreEqual("1.0", oauthArgs["oauth_version"]);

                string requestContent = await req.Content.ReadAsStringAsync();

                Assert.AreEqual(string.Empty, requestContent);

                return(new HttpResponseMessage {
                    Content = new FormUrlEncodedContent(
                        new Dictionary <string, string> {
                        { "oauth_callback_confirmed", "true" },
                        { "oauth_token", TestUtilities.TempCredToken },
                        { "oauth_token_secret", TestUtilities.TempCredTokenSecret },
                    }),
                });
            };

            var consumer = new OAuth1Consumer();

            consumer.HttpMessageHandler           = this.MockMessageHandler;
            consumer.ConsumerKey                  = TestUtilities.ConsumerKey;
            consumer.ConsumerSecret               = TestUtilities.ConsumerSecret;
            consumer.TemporaryCredentialsEndpoint = TestUtilities.TemporaryCredentialsEndpoint;
            consumer.AuthorizationEndpoint        = TestUtilities.AuthorizationEndpoint;
            var authUri = await consumer.StartAuthorizationAsync("oob");

            Assert.AreEqual(TestUtilities.AuthorizationEndpoint.AbsoluteUri + "?oauth_token=" + Uri.EscapeDataString(TestUtilities.TempCredToken), authUri.AbsoluteUri);
        }