use of org.edx.mobile.http.authenticator.OauthRefreshTokenAuthenticator in project edx-app-android by edx.
the class AuthenticationTests method testAuthenticate_withoutRefreshToken.
@Test
public void testAuthenticate_withoutRefreshToken() throws Exception {
loginPrefs.storeAuthTokenResponse(MockDataUtil.getMockResponse("post_oauth2_access_token_no_refresh_token", AuthResponse.class), LoginPrefs.AuthBackend.PASSWORD);
client = client.newBuilder().authenticator(new OauthRefreshTokenAuthenticator(context)).build();
Request request = new Request.Builder().url(mockServer.url("/dummy/endpoint/")).header("Authorization", "expired_token").build();
Response response = client.newCall(request).execute();
assertEquals(HttpStatus.UNAUTHORIZED, response.code());
assertEquals("expired_token", response.request().header("Authorization"));
}
use of org.edx.mobile.http.authenticator.OauthRefreshTokenAuthenticator in project edx-app-android by edx.
the class AuthenticationTests method testAuthenticate_notForExpiredAccessToken.
@Test
public void testAuthenticate_notForExpiredAccessToken() throws Exception {
client = client.newBuilder().authenticator(new OauthRefreshTokenAuthenticator(context)).build();
Request request = new Request.Builder().url(mockServer.url("/dummy/endpoint/")).header("Authorization", "401_not_caused_by_expired_token").build();
Response response = client.newCall(request).execute();
assertEquals(HttpStatus.UNAUTHORIZED, response.code());
assertEquals("401_not_caused_by_expired_token", response.request().header("Authorization"));
}
use of org.edx.mobile.http.authenticator.OauthRefreshTokenAuthenticator in project edx-app-android by edx.
the class AuthenticationTests method testAuthenticate_forExpiredAccessToken.
@Test
public void testAuthenticate_forExpiredAccessToken() throws Exception {
// create a client with the authenticator
client = client.newBuilder().authenticator(new OauthRefreshTokenAuthenticator(context)).build();
// Build a new dummy request to trigger authenticator
Request request = new Request.Builder().url(mockServer.url("/dummy/endpoint/")).header("Authorization", "expired_token").build();
// Make request
Response response = client.newCall(request).execute();
assertEquals(HttpStatus.OK, response.code());
assertEquals("Bearer dummy", response.request().header("Authorization"));
// Assert the expired token request was sent
RecordedRequest expiredRequest = mockServer.takeRequest();
assertEquals("/dummy/endpoint/", expiredRequest.getPath());
assertEquals("expired_token", expiredRequest.getHeader("Authorization"));
// Assert the authenticator requests for a new access token using the refresh token
RecordedRequest refreshTokenRequest = mockServer.takeRequest();
assertEquals("/oauth2/access_token/", refreshTokenRequest.getPath());
String actual_body = refreshTokenRequest.getBody().readUtf8();
assertTrue(actual_body.contains("grant_type=refresh_token"));
assertTrue(actual_body.contains("refresh_token=dummy_refresh_token"));
// Assert that the original request was made again with the new token.
RecordedRequest refreshedRequest = mockServer.takeRequest();
assertEquals("/dummy/endpoint/", refreshedRequest.getPath());
assertEquals("Bearer dummy", refreshedRequest.getHeader("Authorization"));
}
Aggregations