use of com.okta.oidc.AuthenticationResultHandler.StateResult in project okta-oidc-android by okta.
the class SyncWebAuthClientTest method handleActivityResult.
@Test
public void handleActivityResult() throws InterruptedException {
Intent intent = new Intent();
intent.setData(Uri.parse("com.okta.test:/callback?code=" + CUSTOM_CODE + "&state=" + CUSTOM_STATE));
CountDownLatch latch = new CountDownLatch(1);
final StateResult[] stateResult = new StateResult[1];
handler().setAuthenticationListener((result, type) -> {
stateResult[0] = result;
latch.countDown();
});
handler().onActivityResult(OktaResultFragment.REQUEST_CODE_SIGN_IN, RESULT_OK, intent);
latch.await();
assertNotNull(stateResult[0]);
AuthorizeResponse response = (AuthorizeResponse) stateResult[0].getAuthorizationResponse();
assertNotNull(response);
assertEquals(stateResult[0].getStatus(), AuthenticationResultHandler.Status.AUTHORIZED);
assertEquals(response.getState(), CUSTOM_STATE);
assertEquals(response.getCode(), CUSTOM_CODE);
}
use of com.okta.oidc.AuthenticationResultHandler.StateResult in project okta-oidc-android by okta.
the class SyncWebAuthClientImpl method startSignOut.
private StateResult startSignOut(Activity activity, WebRequest request) throws InterruptedException {
CountDownLatch latch = new CountDownLatch(1);
AtomicReference<StateResult> resultWrapper = new AtomicReference<>();
if (activity instanceof FragmentActivity) {
if (!((FragmentActivity) activity).getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) {
resetCurrentState();
return StateResult.canceled();
}
activity.runOnUiThread(() -> addLogoutFragment(request, mCustomTabOptions, (FragmentActivity) activity, mSupportedBrowsers));
} else {
Intent intent = createAuthIntent(activity, request.toUri(), mCustomTabOptions, mSupportedBrowsers);
activity.startActivityForResult(intent, REQUEST_CODE_SIGN_OUT);
}
mHandler.setAuthenticationListener((result, type) -> {
resultWrapper.set(result);
latch.countDown();
});
latch.await();
return resultWrapper.get();
}
use of com.okta.oidc.AuthenticationResultHandler.StateResult in project okta-oidc-android by okta.
the class AuthenticationResultHandlerTest method onActivityResultSignInCanceled.
@Test
public void onActivityResultSignInCanceled() throws InterruptedException {
Intent intent = new Intent();
CountDownLatch latch = new CountDownLatch(1);
final StateResult[] stateResult = new StateResult[1];
final ResultType[] stateType = new ResultType[1];
AuthenticationResultHandler.handler().setAuthenticationListener((result, type) -> {
stateResult[0] = result;
stateType[0] = type;
latch.countDown();
});
AuthenticationResultHandler.handler().onActivityResult(REQUEST_CODE_SIGN_IN, RESULT_CANCELED, intent);
latch.await();
assertNotNull(stateResult[0]);
assertEquals(stateResult[0].getStatus(), CANCELED);
assertEquals(stateType[0], ResultType.SIGN_IN);
assertNull(AuthenticationResultHandler.handler().mCachedResult);
assertNull(AuthenticationResultHandler.handler().mCachedResultType);
}
use of com.okta.oidc.AuthenticationResultHandler.StateResult in project okta-oidc-android by okta.
the class AuthenticationResultHandlerTest method onActivityResultSignOutSuccess.
@Test
public void onActivityResultSignOutSuccess() throws InterruptedException {
Intent intent = new Intent();
intent.setData(Uri.parse("com.okta.test:/logout?state=" + CUSTOM_STATE));
CountDownLatch latch = new CountDownLatch(1);
final StateResult[] stateResult = new StateResult[1];
final ResultType[] stateType = new ResultType[1];
AuthenticationResultHandler.handler().setAuthenticationListener((result, type) -> {
stateResult[0] = result;
stateType[0] = type;
latch.countDown();
});
AuthenticationResultHandler.handler().onActivityResult(REQUEST_CODE_SIGN_OUT, RESULT_OK, intent);
latch.await();
assertNotNull(stateResult[0]);
LogoutResponse response = (LogoutResponse) stateResult[0].getAuthorizationResponse();
assertNotNull(response);
assertEquals(stateResult[0].getStatus(), LOGGED_OUT);
assertEquals(response.getState(), CUSTOM_STATE);
assertEquals(stateType[0], ResultType.SIGN_OUT);
assertNull(AuthenticationResultHandler.handler().mCachedResult);
assertNull(AuthenticationResultHandler.handler().mCachedResultType);
}
use of com.okta.oidc.AuthenticationResultHandler.StateResult in project okta-oidc-android by okta.
the class AuthenticationResultHandlerTest method onActivityResultSignOutCanceled.
@Test
public void onActivityResultSignOutCanceled() throws InterruptedException {
Intent intent = new Intent();
CountDownLatch latch = new CountDownLatch(1);
final StateResult[] stateResult = new StateResult[1];
final ResultType[] stateType = new ResultType[1];
AuthenticationResultHandler.handler().setAuthenticationListener((result, type) -> {
stateResult[0] = result;
stateType[0] = type;
latch.countDown();
});
AuthenticationResultHandler.handler().onActivityResult(REQUEST_CODE_SIGN_OUT, RESULT_CANCELED, intent);
latch.await();
assertNotNull(stateResult[0]);
assertEquals(stateResult[0].getStatus(), CANCELED);
assertEquals(stateType[0], ResultType.SIGN_OUT);
assertNull(AuthenticationResultHandler.handler().mCachedResult);
assertNull(AuthenticationResultHandler.handler().mCachedResultType);
}
Aggregations