Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ ENV UID2_CORE_E2E_OPTOUT_URL ""
ENV UID2_OPERATOR_E2E_CLIENT_SITE_ID ""
ENV UID2_OPERATOR_E2E_CLIENT_API_KEY ""
ENV UID2_OPERATOR_E2E_CLIENT_API_SECRET ""
ENV UID2_OPERATOR_E2E_CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF ""
ENV UID2_OPERATOR_E2E_CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF ""
ENV UID2_OPERATOR_E2E_CLIENT_API_KEY_SHARING_RECIPIENT ""
ENV UID2_OPERATOR_E2E_CLIENT_API_SECRET_SHARING_RECIPIENT ""
ENV UID2_OPERATOR_E2E_CLIENT_API_KEY_NON_SHARING_RECIPIENT ""
Expand Down
38 changes: 11 additions & 27 deletions src/test/java/app/component/Operator.java
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,6 @@ private record V2Envelope(String envelope, byte[] nonce) {
@Getter
private final Type type;
private final PublisherUid2Client publisherClient;
private final PublisherUid2Client oldPublisherClient;
private final UID2Client dspClient;

public Operator(String host, Integer port, String name, Type type) {
Expand All @@ -111,11 +110,6 @@ public Operator(String host, Integer port, String name, Type type) {
CLIENT_API_KEY,
CLIENT_API_SECRET
);
this.oldPublisherClient = new PublisherUid2Client(
getBaseUrl(),
CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF,
CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF
);
this.dspClient = new UID2Client(
getBaseUrl(),
CLIENT_API_KEY,
Expand All @@ -128,7 +122,7 @@ public Operator(String host, String name, Type type) {
this(host, null, name, type);
}

public TokenGenerateResponse v2TokenGenerate(String type, String identity, boolean asOldParticipant) {
public TokenGenerateResponse v2TokenGenerate(String type, String identity) {
TokenGenerateInput token;

if ("email".equals(type)) {
Expand All @@ -143,18 +137,8 @@ public TokenGenerateResponse v2TokenGenerate(String type, String identity, boole
token = token.withTransparencyAndConsentString(TC_STRING);
}

if (!asOldParticipant) {
token = token.doNotGenerateTokensForOptedOut();
return publisherClient.generateTokenResponse(token);
} else {
return oldPublisherClient.generateTokenResponse(token);
}
}

public JsonNode v2TokenGenerateUsingPayload(String payload, boolean asOldParticipant) throws Exception {
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not used, removed

V2Envelope envelope = v2CreateEnvelope(payload, getClientApiSecret(asOldParticipant));
String encryptedResponse = HttpClient.post(getBaseUrl() + "/v2/token/generate", envelope.envelope(), getClientApiKey(asOldParticipant));
return v2DecryptEncryptedResponse(encryptedResponse, envelope.nonce(), getClientApiSecret(asOldParticipant));
token = token.doNotGenerateTokensForOptedOut();
return publisherClient.generateTokenResponse(token);
}

public JsonNode v2ClientSideTokenGenerate(String requestBody, boolean useValidOrigin) throws Exception {
Expand Down Expand Up @@ -280,10 +264,10 @@ public DecryptionResponse v2TokenDecrypt(String token) throws UID2ClientExceptio
return dspClient.decrypt(token);
}

public JsonNode v2IdentityMap(String payload, boolean asOldParticipant) throws Exception {
V2Envelope envelope = v2CreateEnvelope(payload, getClientApiSecret(asOldParticipant));
String encryptedResponse = HttpClient.post(getBaseUrl() + "/v2/identity/map", envelope.envelope(), getClientApiKey(asOldParticipant));
return v2DecryptEncryptedResponse(encryptedResponse, envelope.nonce(), getClientApiSecret(asOldParticipant));
public JsonNode v2IdentityMap(String payload) throws Exception {
V2Envelope envelope = v2CreateEnvelope(payload, getClientApiSecret());
String encryptedResponse = HttpClient.post(getBaseUrl() + "/v2/identity/map", envelope.envelope(), getClientApiKey());
return v2DecryptEncryptedResponse(encryptedResponse, envelope.nonce(), getClientApiSecret());
}

public JsonNode v2IdentityBuckets(String payload) throws Exception {
Expand All @@ -304,12 +288,12 @@ public JsonNode v2KeySharing() throws Exception {
return v2DecryptEncryptedResponse(encryptedResponse, envelope.nonce(), CLIENT_API_SECRET);
}

private String getClientApiKey(boolean asOldParticipant) {
return asOldParticipant ? CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF : CLIENT_API_KEY;
private String getClientApiKey() {
return CLIENT_API_KEY;
}

private String getClientApiSecret(boolean asOldParticipant) {
return asOldParticipant ? CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF : CLIENT_API_SECRET;
private String getClientApiSecret() {
return CLIENT_API_SECRET;
}

private V2Envelope v2CreateEnvelope(String payload, String secret) throws Exception {
Expand Down
4 changes: 0 additions & 4 deletions src/test/java/common/Const.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@ public static final class Operator {
public static final String CLIENT_API_KEY = "UID2_OPERATOR_E2E_CLIENT_API_KEY";
public static final String CLIENT_API_SECRET = "UID2_OPERATOR_E2E_CLIENT_API_SECRET";

// Optout cutoff
public static final String CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF = "UID2_OPERATOR_E2E_CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF";
public static final String CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF";

// Local only - Sharing
public static final String CLIENT_API_KEY_SHARING_RECIPIENT = "UID2_OPERATOR_E2E_CLIENT_API_KEY_SHARING_RECIPIENT";
public static final String CLIENT_API_SECRET_SHARING_RECIPIENT = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_SHARING_RECIPIENT";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void testSharing(TestData.Client sender, Operator senderOperator, TestDat
"suite.operator.TestData#tokenEmailArgsLocalMockOptout"
})
public void testV2TokenGenerateLocalMockOptout(String label, Operator operator, String operatorName, String type, String identity) {
TokenGenerateResponse tokenGenerateResponse = operator.v2TokenGenerate(type, identity, false);
TokenGenerateResponse tokenGenerateResponse = operator.v2TokenGenerate(type, identity);
IdentityTokens currentIdentity = tokenGenerateResponse.getIdentity();

assertThat(currentIdentity).isNull();
Expand Down
14 changes: 7 additions & 7 deletions src/test/java/suite/operator/V2ApiOperatorPublicOnlyTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public void testV2SpecialRefreshOptoutOldParticipant(String label, Operator oper
return;
}

IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity, true).getIdentity();
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity).getIdentity();
TokenRefreshResponse refreshed = operator.v2TokenRefresh(currentIdentity);

assertTrue(refreshed.isOptout());
Expand All @@ -38,13 +38,13 @@ public void testV2SpecialRefreshOptoutOldParticipant(String label, Operator oper
"suite.operator.TestData#tokenEmailArgsSpecialOptout",
"suite.operator.TestData#tokenPhoneArgsSpecialOptout"
})
public void testV2IdentityMapSpecialOptoutParamTrue(String label, Operator operator, String operatorName, String type, String identity, boolean asOldParticipant) throws Exception {
public void testV2IdentityMapSpecialOptoutParamTrue(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
if (isPrivateOperator(operator)) {
return;
}

String payload = "{\"" + type + "\": [\"" + identity + "\"], \"optout_check\":1}";
JsonNode response = operator.v2IdentityMap(payload, asOldParticipant);
JsonNode response = operator.v2IdentityMap(payload);

assertThat(response.get("body").get("unmapped").get(0).get("reason").asText()).isEqualTo("optout");
}
Expand All @@ -54,13 +54,13 @@ public void testV2IdentityMapSpecialOptoutParamTrue(String label, Operator opera
"suite.operator.TestData#tokenEmailArgsSpecialOptout",
"suite.operator.TestData#tokenPhoneArgsSpecialOptout"
})
public void testV2IdentityMapSpecialOptoutParamFalse(String label, Operator operator, String operatorName, String type, String identity, boolean asOldParticipant) throws Exception {
public void testV2IdentityMapSpecialOptoutParamFalse(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
if (isPrivateOperator(operator)) {
return;
}

String payload = "{\"" + type + "\": [\"" + identity + "\"], \"optout_check\":0}";
JsonNode response = operator.v2IdentityMap(payload, asOldParticipant);
JsonNode response = operator.v2IdentityMap(payload);

assertThat(response.get("body").get("unmapped").get(0).get("reason").asText()).isEqualTo("optout");
}
Expand All @@ -70,13 +70,13 @@ public void testV2IdentityMapSpecialOptoutParamFalse(String label, Operator oper
"suite.operator.TestData#tokenEmailArgsSpecialOptout",
"suite.operator.TestData#tokenPhoneArgsSpecialOptout"
})
public void testV2IdentityMapSpecialOptoutNoParam(String label, Operator operator, String operatorName, String type, String identity, boolean asOldParticipant) throws Exception {
public void testV2IdentityMapSpecialOptoutNoParam(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
if (isPrivateOperator(operator)) {
return;
}

String payload = "{\"" + type + "\": [\"" + identity + "\"]}";
JsonNode response = operator.v2IdentityMap(payload, asOldParticipant);
JsonNode response = operator.v2IdentityMap(payload);

assertThat(response.get("body").get("unmapped").get(0).get("reason").asText()).isEqualTo("optout");
}
Expand Down
16 changes: 8 additions & 8 deletions src/test/java/suite/operator/V2ApiOperatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public class V2ApiOperatorTest {
"suite.operator.TestData#tokenPhoneArgs"
})
public void testV2TokenGenerate(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
TokenGenerateResponse tokenGenerateResponse = operator.v2TokenGenerate(type, identity, false);
TokenGenerateResponse tokenGenerateResponse = operator.v2TokenGenerate(type, identity);
IdentityTokens currentIdentity = tokenGenerateResponse.getIdentity();
DecryptionResponse decrypted = operator.v2TokenDecrypt(currentIdentity.getAdvertisingToken());

Expand All @@ -47,8 +47,8 @@ public void testV2TokenGenerate(String label, Operator operator, String operator
"suite.operator.TestData#tokenEmailArgsSpecialOptout",
"suite.operator.TestData#tokenPhoneArgsSpecialOptout"
})
public void testV2TokenGenerateSpecialOptout(String label, Operator operator, String operatorName, String type, String identity, boolean asOldParticipant) {
TokenGenerateResponse tokenGenerateResponse = operator.v2TokenGenerate(type, identity, false);
public void testV2TokenGenerateSpecialOptout(String label, Operator operator, String operatorName, String type, String identity) {
TokenGenerateResponse tokenGenerateResponse = operator.v2TokenGenerate(type, identity);

assertTrue(tokenGenerateResponse.isOptout());
}
Expand All @@ -59,7 +59,7 @@ public void testV2TokenGenerateSpecialOptout(String label, Operator operator, St
"suite.operator.TestData#tokenPhoneArgs"
})
public void testV2TokenRefresh(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity, false).getIdentity();
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity).getIdentity();
TokenRefreshResponse refreshed = operator.v2TokenRefresh(currentIdentity);
DecryptionResponse decrypted = operator.v2TokenDecrypt(refreshed.getIdentity().getAdvertisingToken());

Expand All @@ -72,7 +72,7 @@ public void testV2TokenRefresh(String label, Operator operator, String operatorN
"suite.operator.TestData#tokenPhoneArgsSpecialRefreshOptout"
})
public void testV2SpecialRefreshOptout(String label, Operator operator, String operatorName, String type, String identity) {
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity, false).getIdentity();
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity).getIdentity();
TokenRefreshResponse refreshed = operator.v2TokenRefresh(currentIdentity);

assertTrue(refreshed.isOptout());
Expand All @@ -84,7 +84,7 @@ public void testV2SpecialRefreshOptout(String label, Operator operator, String o
"suite.operator.TestData#tokenValidatePhoneArgs"
})
public void testV2TokenValidate(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity, false).getIdentity();
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity).getIdentity();
String advertisingToken = currentIdentity.getAdvertisingToken();
JsonNode response = operator.v2TokenValidate(type, identity, advertisingToken);

Expand All @@ -99,7 +99,7 @@ public void testV2TokenValidate(String label, Operator operator, String operator
"suite.operator.TestData#identityMapBatchBadPhoneArgs"
})
public void testV2IdentityMap(String label, Operator operator, String operatorName, String payload) throws Exception {
JsonNode response = operator.v2IdentityMap(payload, false);
JsonNode response = operator.v2IdentityMap(payload);

// TODO: Assert the value
assertThat(response.at("/status").asText()).isEqualTo("success");
Expand All @@ -112,7 +112,7 @@ public void testV2IdentityMap(String label, Operator operator, String operatorNa
})
public void testV2IdentityMapValidateArgs(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
String payload = "{\"" + type + "\": [\"" + identity + "\"], \"optout_check\":1}";
JsonNode response = operator.v2IdentityMap(payload, false);
JsonNode response = operator.v2IdentityMap(payload);

assertThat(response.get("body").get("mapped").get(0).get("advertising_id").asText()).isNotNull();
}
Expand Down
25 changes: 2 additions & 23 deletions src/test/java/suite/optout/OptoutTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public static void setupAll() {
})
@Order(1)
public void testV2LogoutWithV2TokenGenerate(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
IdentityTokens generateResponse = operator.v2TokenGenerate(type, identity, false).getIdentity();
IdentityTokens generateResponse = operator.v2TokenGenerate(type, identity).getIdentity();
Thread.sleep(OPTOUT_DELAY_MS);
JsonNode logoutResponse = operator.v2TokenLogout(type, identity);
assertThat(logoutResponse).isEqualTo(OBJECT_MAPPER.readTree("{\"body\":{\"optout\":\"OK\"},\"status\":\"success\"}"));
Expand All @@ -59,35 +59,14 @@ public void testV2LogoutWithV2TokenGenerate(String label, Operator operator, Str
);
}

@ParameterizedTest(name = "/v2/token/logout with /v2/token/generate - {0} - {2}")
@MethodSource({
"suite.optout.TestData#optoutTokenEmailArgs",
"suite.optout.TestData#optoutTokenPhoneArgs"
})
@Order(2)
public void testV2LogoutWithV2TokenGenerateOldParticipant(String label, Operator operator, String operatorName, String type, String identity) throws Exception {
IdentityTokens generateResponse = operator.v2TokenGenerate(type, identity, true).getIdentity();
Thread.sleep(OPTOUT_DELAY_MS);
JsonNode logoutResponse = operator.v2TokenLogout(type, identity);
assertThat(logoutResponse).isEqualTo(OBJECT_MAPPER.readTree("{\"body\":{\"optout\":\"OK\"},\"status\":\"success\"}"));
addToken(
"old participant " + label,
operator,
"v2",
"v2",
generateResponse.getRefreshToken(),
OBJECT_MAPPER.readTree(generateResponse.getJsonString()).at("/refresh_response_key").asText()
);
}

@ParameterizedTest(name = "/v2/token/logout with /v2/identity/map - DII {0} - toOptOut {5} - {2}")
@MethodSource({
"suite.optout.TestData#identityMapEmailArgs",
"suite.optout.TestData#identityMapPhoneArgs"
})
@Order(3)
public void testV2LogoutWithV2IdentityMap(String label, Operator operator, String operatorName, String type, String emailOrPhone, boolean toOptOut) throws Exception {
JsonNode identityMapResponseNode = operator.v2IdentityMap("{\""+ type + "\":[\"" + emailOrPhone + "\"]}", false);
JsonNode identityMapResponseNode = operator.v2IdentityMap("{\""+ type + "\":[\"" + emailOrPhone + "\"]}");
assertThat(identityMapResponseNode.at("/status").asText()).isEqualTo("success");
String rawUID = identityMapResponseNode.get("body").get("mapped").get(0).get(TestData.ADVERTISING_ID).asText();
long beforeOptOutTimestamp = Instant.now().toEpochMilli();
Expand Down
6 changes: 3 additions & 3 deletions src/test/java/suite/validator/V2ApiValidatorTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class V2ApiValidatorTest extends ValidatorTestBase {
})
public void testV2TokenGenerateViaMetrics(String label, Operator operator, String operatorName, Prometheus prometheus, String prometheusName, String type, String identity) throws Exception {
assertThat(compareMetricValues(prometheus, Metric.MATCH_METRIC_NAME, "/v2/token/generate", HttpClient.HttpMethod.POST, () ->
operator.v2TokenGenerate(type, identity, false)
operator.v2TokenGenerate(type, identity)
)).isTrue();
}

Expand All @@ -29,7 +29,7 @@ public void testV2TokenGenerateViaMetrics(String label, Operator operator, Strin
})
public void testV2TokenRefreshViaMetrics(String label, Operator operator, String operatorName, Prometheus prometheus, String prometheusName, String type, String identity) throws Exception {
assertThat(compareMetricValues(prometheus, Metric.MATCH_METRIC_NAME, "/v2/token/refresh", HttpClient.HttpMethod.POST, () -> {
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity, false).getIdentity();
IdentityTokens currentIdentity = operator.v2TokenGenerate(type, identity).getIdentity();
operator.v2TokenRefresh(currentIdentity);
})).isTrue();
}
Expand All @@ -43,7 +43,7 @@ public void testV2TokenRefreshViaMetrics(String label, Operator operator, String
})
public void testV2IdentityMapViaMetrics(String label, Operator operator, String operatorName, Prometheus prometheus, String prometheusName, String payload) throws Exception {
assertThat(compareMetricValues(prometheus, Metric.MATCH_METRIC_NAME, "/v2/identity/map", HttpClient.HttpMethod.POST, () ->
operator.v2IdentityMap(payload, false)
operator.v2IdentityMap(payload)
)).isTrue();
}

Expand Down