Example #1
0
        public void EnsureErrorCaseQuerystringGivesTrueResult()
        {
            string         authorizationCode = null;
            AuthResultCode resultCode        = AuthResultCode.Unknown;

            OAuthResultParser.ParseQuerystringForCompletedFlags("?error=access_denied&error_description=denied", out resultCode, out authorizationCode);
            Assert.AreEqual(AuthResultCode.AccessDenied, resultCode, "Expected the result code to be set");
            Assert.IsNullOrEmpty(authorizationCode, "Expected a null authorization code");
        }
Example #2
0
        public void EnsureIrrelevantQuerystringGivesFalseResult()
        {
            string         authorizationCode = null;
            AuthResultCode resultCode        = AuthResultCode.Success;

            OAuthResultParser.ParseQuerystringForCompletedFlags("?expectingnullresult=true", out resultCode, out authorizationCode);
            Assert.AreEqual(AuthResultCode.Unknown, resultCode, "Expected the result code reset");
            Assert.IsNullOrEmpty(authorizationCode, "Expected a null authorization code");
        }
        public void EnsureEmptyQuerystringGivesFalseResult()
        {
            string         authorizationCode = null;
            AuthResultCode resultCode        = AuthResultCode.Success;

            Assert.AreEqual(false, OAuthResultParser.ParseQuerystringForCompletedFlags(null, out resultCode, out authorizationCode), "Expected a false result");
            Assert.AreEqual(AuthResultCode.Unknown, resultCode, "Expected the result code reset");
            Assert.IsNullOrEmpty(authorizationCode, "Expected a null authorization code");
        }
Example #4
0
        public void EnsureSuccessQuerystringGivesTrueResult()
        {
            string         authCode          = Guid.NewGuid().ToString();
            string         authorizationCode = null;
            AuthResultCode resultCode        = AuthResultCode.Unknown;

            OAuthResultParser.ParseQuerystringForCompletedFlags("?code=" + authCode, out resultCode, out authorizationCode);
            Assert.AreEqual(AuthResultCode.Success, resultCode, "Expected the result code to be set");
            Assert.AreEqual(authCode, authorizationCode, "Expected the authorization code back");
        }
Example #5
0
        private async void App_ContractActivated(object sender, IActivatedEventArgs args)
        {
            if (args != null && args.Kind == ActivationKind.WebAuthenticationBrokerContinuation)
            {
                var authArgs = args as WebAuthenticationBrokerContinuationEventArgs;
                if (authArgs != null)
                {
                    var app    = MixRadioActivity.App.Current as MixRadioActivity.App;
                    var result = authArgs.WebAuthenticationResult;
                    if (result != null)
                    {
                        if (result.ResponseStatus == WebAuthenticationStatus.Success)
                        {
                            Debug.WriteLine("WebAuthenticationBrokerContinuation: " + result.ResponseData);
                            var    authResult = AuthResultCode.Unknown;
                            string code       = null;

                            OAuthResultParser.ParseQuerystringForCompletedFlags(result.ResponseData, out authResult, out code);
                            if (authResult == AuthResultCode.Success)
                            {
                                Debug.WriteLine("WebAuthenticationBrokerContinuation: got auth code " + code);
                                await app.ActivityViewModel.ObtainAuthTokenAsync(code);

                                // hide the login page now
                                await app.MainPage.Navigation.PopModalAsync();

                                return;
                            }
                            else
                            {
                                Debug.WriteLine("WebAuthenticationBrokerContinuation: error " + authResult.ToString());
                            }
                        }
                    }

                    // if the user cancelled, hide the login page
                    await app.MainPage.Navigation.PopModalAsync();
                }
            }
        }