Skip to content

Commit 283d8b5

Browse files
committed
Added tests for all excepting ExternalAccountCredentials.
1 parent d58147c commit 283d8b5

File tree

6 files changed

+164
-326
lines changed

6 files changed

+164
-326
lines changed

oauth2_http/javatests/com/google/auth/oauth2/AwsCredentialsTest.java

Lines changed: 31 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,11 @@
4040
import static org.junit.Assert.fail;
4141

4242
import com.google.api.client.json.GenericJson;
43+
import com.google.api.client.json.Json;
4344
import com.google.api.client.json.JsonParser;
45+
import com.google.api.client.testing.http.MockHttpTransport;
4446
import com.google.api.client.testing.http.MockLowLevelHttpRequest;
47+
import com.google.api.client.testing.http.MockLowLevelHttpResponse;
4548
import com.google.api.client.util.Clock;
4649
import com.google.auth.TestUtils;
4750
import com.google.auth.oauth2.ExternalAccountCredentialsTest.MockExternalAccountCredentialsTransportFactory;
@@ -1400,105 +1403,32 @@ public AwsSecurityCredentials getCredentials(ExternalAccountSupplierContext cont
14001403
}
14011404
}
14021405

1403-
// @Test
1404-
// public void testRefresh_trustBoundarySuccess() throws IOException {
1405-
// TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1406-
// TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1407-
// environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1408-
//
1409-
// MockHttpTransport mockHttpTransport =
1410-
// new MockHttpTransport.Builder()
1411-
// // AWS region call
1412-
// .setLowLevelHttpResponse(new MockLowLevelHttpResponse().setContent("us-east-1a"))
1413-
// // AWS IAM role name call
1414-
// .setLowLevelHttpResponse(new MockLowLevelHttpResponse().setContent("roleName"))
1415-
// // AWS credentials call
1416-
// .setLowLevelHttpResponse(
1417-
// new MockLowLevelHttpResponse()
1418-
// .setContent(
1419-
//
1420-
// "{\"Code\":\"Success\",\"AccessKeyId\":\"accessKeyId\",\"SecretAccessKey\":\"secretAccessKey\",\"Token\":\"token\"}"))
1421-
// // STS token call
1422-
// .setLowLevelHttpResponse(
1423-
// new MockLowLevelHttpResponse()
1424-
// .setContentType(Json.MEDIA_TYPE)
1425-
// .setContent(
1426-
// String.format(
1427-
// "{\"access_token\": \"%s\", \"expires_in\": %s, \"token_type\":
1428-
// \"Bearer\"}",
1429-
// "sts_access_token", 3600)))
1430-
// // Trust boundary call
1431-
// .setLowLevelHttpResponse(
1432-
// new MockLowLevelHttpResponse()
1433-
// .setContentType(Json.MEDIA_TYPE)
1434-
// .setContent(
1435-
// "{\"locations\": [\"us-central1\"], \"encodedLocations\": \"0x1\"}"))
1436-
// .build();
1437-
//
1438-
// AwsCredentials credentials =
1439-
// AwsCredentials.newBuilder()
1440-
// .setHttpTransportFactory(() -> mockHttpTransport)
1441-
// .setAudience(
1442-
//
1443-
// "//iam.googleapis.com/projects/12345/locations/global/workloadIdentityPools/pool/providers/provider")
1444-
// .setSubjectTokenType("subjectTokenType")
1445-
// .setTokenUrl(STS_URL)
1446-
// .setCredentialSource(AWS_CREDENTIAL_SOURCE)
1447-
// .build();
1448-
//
1449-
// credentials.refresh();
1450-
//
1451-
// TrustBoundary trustBoundary = credentials.getTrustBoundary();
1452-
// assertNotNull(trustBoundary);
1453-
// assertEquals("0x1", trustBoundary.getEncodedLocations());
1454-
// }
1455-
//
1456-
// @Test
1457-
// public void testRefresh_trustBoundaryFails() throws IOException {
1458-
// TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1459-
// TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1460-
// environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1461-
//
1462-
// MockHttpTransport mockHttpTransport =
1463-
// new MockHttpTransport.Builder()
1464-
// .setLowLevelHttpResponse(new MockLowLevelHttpResponse().setContent("us-east-1a"))
1465-
// .setLowLevelHttpResponse(new MockLowLevelHttpResponse().setContent("roleName"))
1466-
// .setLowLevelHttpResponse(
1467-
// new MockLowLevelHttpResponse()
1468-
// .setContent(
1469-
//
1470-
// "{\"Code\":\"Success\",\"AccessKeyId\":\"accessKeyId\",\"SecretAccessKey\":\"secretAccessKey\",\"Token\":\"token\"}"))
1471-
// .setLowLevelHttpResponse(
1472-
// new MockLowLevelHttpResponse()
1473-
// .setContentType(Json.MEDIA_TYPE)
1474-
// .setContent(
1475-
// String.format(
1476-
// "{\"access_token\": \"%s\", \"expires_in\": %s, \"token_type\":
1477-
// \"Bearer\"}",
1478-
// "sts_access_token", 3600)))
1479-
// .setLowLevelHttpResponse(
1480-
// new MockLowLevelHttpResponse()
1481-
// .setStatusCode(404)
1482-
// .setContent("{\"error\": \"not found\"}"))
1483-
// .build();
1484-
//
1485-
// AwsCredentials credentials =
1486-
// AwsCredentials.newBuilder()
1487-
// .setHttpTransportFactory(() -> mockHttpTransport)
1488-
// .setAudience(
1489-
//
1490-
// "//iam.googleapis.com/projects/12345/locations/global/workloadIdentityPools/pool/providers/provider")
1491-
// .setSubjectTokenType("subjectTokenType")
1492-
// .setTokenUrl(STS_URL)
1493-
// .setCredentialSource(AWS_CREDENTIAL_SOURCE)
1494-
// .build();
1495-
//
1496-
// try {
1497-
// credentials.refresh();
1498-
// fail("Expected IOException to be thrown.");
1499-
// } catch (IOException e) {
1500-
// assertEquals(
1501-
// "Failed to refresh trust boundary and no cached value is available.", e.getMessage());
1502-
// }
1503-
// }
1406+
@Test
1407+
public void testRefresh_trustBoundarySuccess() throws IOException {
1408+
TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1409+
TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1410+
environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1411+
1412+
MockExternalAccountCredentialsTransportFactory transportFactory =
1413+
new MockExternalAccountCredentialsTransportFactory();
1414+
1415+
AwsSecurityCredentialsSupplier supplier =
1416+
new TestAwsSecurityCredentialsSupplier("test", programmaticAwsCreds, null, null);
1417+
1418+
AwsCredentials awsCredential =
1419+
AwsCredentials.newBuilder()
1420+
.setAwsSecurityCredentialsSupplier(supplier)
1421+
.setHttpTransportFactory(transportFactory)
1422+
.setAudience(
1423+
"//iam.googleapis.com/projects/12345/locations/global/workloadIdentityPools/pool/providers/provider")
1424+
.setTokenUrl(STS_URL)
1425+
.setSubjectTokenType("subjectTokenType")
1426+
.build();
1427+
1428+
awsCredential.refreshAccessToken();
1429+
1430+
TrustBoundary trustBoundary = awsCredential.getTrustBoundary();
1431+
assertNotNull(trustBoundary);
1432+
assertEquals("0x800000", trustBoundary.getEncodedLocations());
1433+
}
15041434
}

oauth2_http/javatests/com/google/auth/oauth2/ExternalAccountAuthorizedUserCredentialsTest.java

Lines changed: 15 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,25 +1225,9 @@ public void testRefresh_trustBoundarySuccess() throws IOException {
12251225
TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
12261226
environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
12271227

1228-
MockHttpTransport mockHttpTransport =
1229-
new MockHttpTransport.Builder()
1230-
.setLowLevelHttpResponse(
1231-
new MockLowLevelHttpResponse()
1232-
.setContentType(Json.MEDIA_TYPE)
1233-
.setContent(
1234-
String.format(
1235-
"{\"access_token\": \"%s\", \"expires_in\": %s, \"token_type\": \"Bearer\"}",
1236-
"sts_access_token", 3600)))
1237-
.setLowLevelHttpResponse(
1238-
new MockLowLevelHttpResponse()
1239-
.setContentType(Json.MEDIA_TYPE)
1240-
.setContent(
1241-
"{\"locations\": [\"us-central1\"], \"encodedLocations\": \"0x1\"}"))
1242-
.build();
1243-
12441228
ExternalAccountAuthorizedUserCredentials credentials =
12451229
ExternalAccountAuthorizedUserCredentials.newBuilder()
1246-
.setHttpTransportFactory(() -> mockHttpTransport)
1230+
.setHttpTransportFactory(transportFactory)
12471231
.setAudience(AUDIENCE)
12481232
.setClientId(CLIENT_ID)
12491233
.setClientSecret(CLIENT_SECRET)
@@ -1259,35 +1243,20 @@ public void testRefresh_trustBoundarySuccess() throws IOException {
12591243
}
12601244

12611245
@Test
1262-
public void testRefresh_trustBoundaryFails() throws IOException {
1263-
TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1264-
TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1265-
environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1266-
1267-
MockHttpTransport mockHttpTransport =
1268-
new MockHttpTransport.Builder()
1269-
.setLowLevelHttpResponse(
1270-
new MockLowLevelHttpResponse()
1271-
.setContentType(Json.MEDIA_TYPE)
1272-
.setContent(
1273-
String.format(
1274-
"{\"access_token\": \"%s\", \"expires_in\": %s, \"token_type\": \"Bearer\"}",
1275-
"sts_access_token", 3600)))
1276-
.setLowLevelHttpResponse(
1277-
new MockLowLevelHttpResponse()
1278-
.setStatusCode(404)
1279-
.setContent("{\"error\": \"not found\"}"))
1280-
.build();
1281-
1282-
ExternalAccountAuthorizedUserCredentials credentials =
1283-
ExternalAccountAuthorizedUserCredentials.newBuilder()
1284-
.setHttpTransportFactory(() -> mockHttpTransport)
1285-
.setAudience(AUDIENCE)
1286-
.setClientId(CLIENT_ID)
1287-
.setClientSecret(CLIENT_SECRET)
1288-
.setRefreshToken(REFRESH_TOKEN)
1289-
.setTokenUrl(TOKEN_URL)
1290-
.build();
1246+
public void testRefresh_trustBoundaryFails_incorrectAudience() throws IOException {
1247+
TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1248+
TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1249+
environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1250+
1251+
ExternalAccountAuthorizedUserCredentials credentials =
1252+
ExternalAccountAuthorizedUserCredentials.newBuilder()
1253+
.setHttpTransportFactory(transportFactory)
1254+
.setAudience("audience")
1255+
.setClientId(CLIENT_ID)
1256+
.setClientSecret(CLIENT_SECRET)
1257+
.setRefreshToken(REFRESH_TOKEN)
1258+
.setTokenUrl(TOKEN_URL)
1259+
.build();
12911260

12921261
try {
12931262
credentials.refresh();

oauth2_http/javatests/com/google/auth/oauth2/IdentityPoolCredentialsTest.java

Lines changed: 28 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -1305,90 +1305,32 @@ void setShouldThrowOnGetCertificatePath(boolean shouldThrow) {
13051305
}
13061306
}
13071307

1308-
// @Test
1309-
// public void testRefresh_trustBoundarySuccess() throws IOException {
1310-
// TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1311-
// TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1312-
// environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1313-
//
1314-
// MockHttpTransport mockHttpTransport =
1315-
// new MockHttpTransport.Builder()
1316-
// .setLowLevelHttpResponse(
1317-
// new MockLowLevelHttpResponse()
1318-
// .setContentType(Json.MEDIA_TYPE)
1319-
// .setContent(
1320-
// String.format(
1321-
// "{\"access_token\": \"%s\", \"expires_in\": %s, \"token_type\":
1322-
// \"Bearer\"}",
1323-
// "sts_access_token", 3600)))
1324-
// .setLowLevelHttpResponse(
1325-
// new MockLowLevelHttpResponse()
1326-
// .setContentType(Json.MEDIA_TYPE)
1327-
// .setContent(
1328-
// "{\"locations\": [\"us-central1\"], \"encodedLocations\": \"0x1\"}"))
1329-
// .build();
1330-
//
1331-
// HttpTransportFactory testingHttpTransportFactory = () -> mockHttpTransport;
1332-
//
1333-
// IdentityPoolCredentials credentials =
1334-
// IdentityPoolCredentials.newBuilder()
1335-
// .setHttpTransportFactory(testingHttpTransportFactory)
1336-
// .setAudience(
1337-
//
1338-
// "//iam.googleapis.com/projects/12345/locations/global/workloadIdentityPools/pool/providers/provider")
1339-
// .setSubjectTokenType("subjectTokenType")
1340-
// .setTokenUrl(STS_URL)
1341-
// .setCredentialSource(createFileCredentialSource())
1342-
// .build();
1343-
//
1344-
// credentials.refresh();
1345-
//
1346-
// TrustBoundary trustBoundary = credentials.getTrustBoundary();
1347-
// assertNotNull(trustBoundary);
1348-
// assertEquals("0x1", trustBoundary.getEncodedLocations());
1349-
// }
1350-
//
1351-
// @Test
1352-
// public void testRefresh_trustBoundaryFails() throws IOException {
1353-
// TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1354-
// TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1355-
// environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1356-
//
1357-
// MockHttpTransport mockHttpTransport =
1358-
// new MockHttpTransport.Builder()
1359-
// .setLowLevelHttpResponse(
1360-
// new MockLowLevelHttpResponse()
1361-
// .setContentType(Json.MEDIA_TYPE)
1362-
// .setContent(
1363-
// String.format(
1364-
// "{\"access_token\": \"%s\", \"expires_in\": %s, \"token_type\":
1365-
// \"Bearer\"}",
1366-
// "sts_access_token", 3600)))
1367-
// .setLowLevelHttpResponse(
1368-
// new MockLowLevelHttpResponse()
1369-
// .setStatusCode(404)
1370-
// .setContent("{\"error\": \"not found\"}"))
1371-
// .build();
1372-
//
1373-
// HttpTransportFactory testingHttpTransportFactory = () -> mockHttpTransport;
1374-
//
1375-
// IdentityPoolCredentials credentials =
1376-
// IdentityPoolCredentials.newBuilder()
1377-
// .setHttpTransportFactory(testingHttpTransportFactory)
1378-
// .setAudience(
1379-
//
1380-
// "//iam.googleapis.com/projects/12345/locations/global/workloadIdentityPools/pool/providers/provider")
1381-
// .setSubjectTokenType("subjectTokenType")
1382-
// .setTokenUrl(STS_URL)
1383-
// .setCredentialSource(createFileCredentialSource())
1384-
// .build();
1385-
//
1386-
// try {
1387-
// credentials.refresh();
1388-
// fail("Expected IOException to be thrown.");
1389-
// } catch (IOException e) {
1390-
// assertEquals(
1391-
// "Failed to refresh trust boundary and no cached value is available.", e.getMessage());
1392-
// }
1393-
// }
1308+
@Test
1309+
public void testRefresh_trustBoundarySuccess() throws IOException {
1310+
TestEnvironmentProvider environmentProvider = new TestEnvironmentProvider();
1311+
TrustBoundary.setEnvironmentProviderForTest(environmentProvider);
1312+
environmentProvider.setEnv("GOOGLE_AUTH_TRUST_BOUNDARY_ENABLE_EXPERIMENT", "1");
1313+
1314+
MockExternalAccountCredentialsTransportFactory transportFactory =
1315+
new MockExternalAccountCredentialsTransportFactory();
1316+
HttpTransportFactory testingHttpTransportFactory = transportFactory;
1317+
1318+
IdentityPoolCredentials credentials =
1319+
IdentityPoolCredentials.newBuilder()
1320+
.setSubjectTokenSupplier(testProvider)
1321+
.setHttpTransportFactory(testingHttpTransportFactory)
1322+
.setAudience(
1323+
"//iam.googleapis.com/projects/12345/locations/global/workloadIdentityPools/pool/providers/provider")
1324+
.setSubjectTokenType("subjectTokenType")
1325+
.setTokenUrl(STS_URL)
1326+
.build();
1327+
1328+
credentials.refresh();
1329+
1330+
TrustBoundary trustBoundary = credentials.getTrustBoundary();
1331+
assertNotNull(trustBoundary);
1332+
assertEquals(
1333+
"0x800000",
1334+
trustBoundary.getEncodedLocations());
1335+
}
13941336
}

0 commit comments

Comments
 (0)