Skip to content

Commit 46c2824

Browse files
committed
Updated operator tests
1 parent 1daab90 commit 46c2824

File tree

8 files changed

+191
-183
lines changed

8 files changed

+191
-183
lines changed

src/test/java/app/component/App.java

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
package app.component;
22

3+
import com.uid2.client.IdentityScope;
4+
import common.Const;
5+
import common.EnvUtil;
36
import common.HttpClient;
7+
import lombok.Getter;
48

9+
@Getter
510
public abstract class App {
11+
public static final String ENV = EnvUtil.getEnv(Const.Config.ENV);
12+
public static final IdentityScope IDENTITY_SCOPE = IdentityScope.valueOf(EnvUtil.getEnv(Const.Config.IDENTITY_SCOPE));
13+
public static final boolean PHONE_SUPPORT = Boolean.parseBoolean(EnvUtil.getEnv(Const.Config.PHONE_SUPPORT));
14+
615
private final String host;
716
private final Integer port;
817
private final String name;
@@ -13,18 +22,6 @@ public App(String host, Integer port, String name) {
1322
this.name = name;
1423
}
1524

16-
public String getHost() {
17-
return host;
18-
}
19-
20-
public Integer getPort() {
21-
return port;
22-
}
23-
24-
public String getName() {
25-
return name;
26-
}
27-
2825
public String getBaseUrl() {
2926
return getPort() == null ? getHost() : "%s:%d".formatted(getHost(), getPort());
3027
}

src/test/java/app/component/Operator.java

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package app.component;
22

3-
import common.EnvUtil;
4-
import common.HttpClient;
5-
import common.Mapper;
63
import com.fasterxml.jackson.databind.JsonNode;
74
import com.google.gson.JsonArray;
85
import com.google.gson.JsonObject;
96
import com.uid2.client.IdentityScope;
107
import com.uid2.client.*;
8+
import common.Const;
9+
import common.EnvUtil;
10+
import common.HttpClient;
11+
import common.Mapper;
12+
import lombok.Getter;
1113
import okhttp3.Request;
1214
import okhttp3.RequestBody;
1315

@@ -45,9 +47,9 @@ public String toString() {
4547

4648
public enum CloudProvider {
4749
PUBLIC(""),
48-
AWS("AWS-NITRO"),
49-
GCP("GCP-OIDC"),
50-
AZURE("Azure-CC");
50+
AWS("aws-nitro"),
51+
GCP("gcp-oidc"),
52+
AZURE("azure-cc");
5153

5254
private final String name;
5355

@@ -64,32 +66,37 @@ public String toString() {
6466
private record V2Envelope(String envelope, byte[] nonce) {
6567
}
6668

67-
private static final SecureRandom SECURE_RANDOM = new SecureRandom();
68-
6969
// When running via the pipeline, environment variables are defined in the uid2-shared-actions repo.
7070
// When running via IntelliJ, environment variables are defined in the uid2-dev-workspace repo under .idea/runConfigurations.
71-
//
7271
// Test data is defined in the uid2-admin repo.
7372

74-
public static final String CLIENT_API_KEY = EnvUtil.getEnv("UID2_E2E_API_KEY");
75-
public static final String CLIENT_API_SECRET = EnvUtil.getEnv("UID2_E2E_API_SECRET");
76-
private static final String CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF = EnvUtil.getEnv("UID2_E2E_API_KEY_OLD");
77-
private static final String CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF = EnvUtil.getEnv("UID2_E2E_API_SECRET_OLD");
78-
public static final String CLIENT_API_KEY_SHARING_RECIPIENT = EnvUtil.getEnv("UID2_E2E_API_KEY_SHARING_RECIPIENT");
79-
public static final String CLIENT_API_SECRET_SHARING_RECIPIENT = EnvUtil.getEnv("UID2_E2E_API_SECRET_SHARING_RECIPIENT");
80-
public static final String CLIENT_API_KEY_NON_SHARING_RECIPIENT = EnvUtil.getEnv("UID2_E2E_API_KEY_NON_SHARING_RECIPIENT");
81-
public static final String CLIENT_API_SECRET_NON_SHARING_RECIPIENT = EnvUtil.getEnv("UID2_E2E_API_SECRET_NON_SHARING_RECIPIENT");
82-
private static final String CLIENT_SIDE_TOKEN_GENERATE_SUBSCRIPTION_ID = EnvUtil.getEnv("UID2_E2E_SUBSCRIPTION_ID");
83-
private static final String CLIENT_SIDE_TOKEN_GENERATE_SERVER_PUBLIC_KEY = EnvUtil.getEnv("UID2_E2E_SERVER_PUBLIC_KEY");
84-
private static final String CLIENT_SIDE_TOKEN_GENERATE_ORIGIN = EnvUtil.getEnv("UID2_E2E_ORIGIN");
85-
private static final String CLIENT_SIDE_TOKEN_GENERATE_INVALID_ORIGIN = EnvUtil.getEnv("UID2_E2E_INVALID_ORIGIN");
86-
public static final IdentityScope IDENTITY_SCOPE = IdentityScope.valueOf(EnvUtil.getEnv("UID2_E2E_IDENTITY_SCOPE"));
73+
private static final SecureRandom SECURE_RANDOM = new SecureRandom();
8774
private static final int TIMESTAMP_LENGTH = 8;
8875
private static final int PUBLIC_KEY_PREFIX_LENGTH = 9;
8976
private static final int AUTHENTICATION_TAG_LENGTH_BITS = 128;
9077
private static final int IV_BYTES = 12;
9178
private static final String TC_STRING = "CPhJRpMPhJRpMABAMBFRACBoALAAAEJAAIYgAKwAQAKgArABAAqAAA";
9279

80+
public static final String CLIENT_API_KEY = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_KEY);
81+
public static final String CLIENT_API_SECRET = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_SECRET);
82+
83+
// Optout cutoff
84+
public static final String CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF);
85+
public static final String CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF);
86+
87+
// Local only - Sharing
88+
public static final String CLIENT_API_KEY_SHARING_RECIPIENT = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_KEY_SHARING_RECIPIENT);
89+
public static final String CLIENT_API_SECRET_SHARING_RECIPIENT = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_SECRET_SHARING_RECIPIENT);
90+
public static final String CLIENT_API_KEY_NON_SHARING_RECIPIENT = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_KEY_NON_SHARING_RECIPIENT);
91+
public static final String CLIENT_API_SECRET_NON_SHARING_RECIPIENT = EnvUtil.getEnv(Const.Config.Operator.CLIENT_API_SECRET_NON_SHARING_RECIPIENT);
92+
93+
// Local only - CSTG
94+
public static final String CSTG_SUBSCRIPTION_ID = EnvUtil.getEnv(Const.Config.Operator.CSTG_SUBSCRIPTION_ID);
95+
public static final String CSTG_SERVER_PUBLIC_KEY = EnvUtil.getEnv(Const.Config.Operator.CSTG_SERVER_PUBLIC_KEY);
96+
public static final String CSTG_ORIGIN = EnvUtil.getEnv(Const.Config.Operator.CSTG_ORIGIN);
97+
public static final String CSTG_INVALID_ORIGIN = EnvUtil.getEnv(Const.Config.Operator.CSTG_INVALID_ORIGIN);
98+
99+
@Getter
93100
private final Type type;
94101
private final PublisherUid2Client publisherClient;
95102
private final PublisherUid2Client oldPublisherClient;
@@ -122,10 +129,6 @@ public Operator(String host, String name, Type type) {
122129
this(host, null, name, type);
123130
}
124131

125-
public Type getType() {
126-
return type;
127-
}
128-
129132
public JsonNode v0TokenGenerate(String type, String identity) throws Exception {
130133
String response = HttpClient.get(getBaseUrl() + "/token/generate?" + type + "=" + URLEncoder.encode(identity, StandardCharsets.UTF_8), CLIENT_API_KEY);
131134
return Mapper.OBJECT_MAPPER.readTree(response);
@@ -229,19 +232,19 @@ public JsonNode v2TokenGenerateUsingPayload(String payload, boolean asOldPartici
229232
}
230233

231234
public JsonNode v2ClientSideTokenGenerate(String requestBody, boolean useValidOrigin) throws Exception {
232-
final byte[] serverPublicKeyBytes = base64ToByteArray(CLIENT_SIDE_TOKEN_GENERATE_SERVER_PUBLIC_KEY.substring(PUBLIC_KEY_PREFIX_LENGTH));
235+
final byte[] serverPublicKeyBytes = base64ToByteArray(CSTG_SERVER_PUBLIC_KEY.substring(PUBLIC_KEY_PREFIX_LENGTH));
233236

234237
final PublicKey serverPublicKey = KeyFactory.getInstance("EC")
235238
.generatePublic(new X509EncodedKeySpec(serverPublicKeyBytes));
236239

237240
final KeyPair keyPair = generateKeyPair();
238241
final SecretKey sharedSecret = generateSharedSecret(serverPublicKey, keyPair);
239242

240-
final JsonObject cstgEnvelope = createCstgEnvelope(requestBody, CLIENT_SIDE_TOKEN_GENERATE_SUBSCRIPTION_ID, keyPair.getPublic(), sharedSecret);
243+
final JsonObject cstgEnvelope = createCstgEnvelope(requestBody, keyPair.getPublic(), sharedSecret);
241244

242245
final Request.Builder requestBuilder = new Request.Builder()
243246
.url(getBaseUrl() + "/v2/token/client-generate")
244-
.addHeader("Origin", useValidOrigin ? CLIENT_SIDE_TOKEN_GENERATE_ORIGIN : CLIENT_SIDE_TOKEN_GENERATE_INVALID_ORIGIN)
247+
.addHeader("Origin", useValidOrigin ? CSTG_ORIGIN : CSTG_INVALID_ORIGIN)
245248
.post(RequestBody.create(cstgEnvelope.toString(), HttpClient.JSON));
246249

247250
final String encryptedResponse = HttpClient.execute(requestBuilder.build(), HttpClient.HttpMethod.POST);
@@ -275,7 +278,7 @@ private static SecretKey generateSharedSecret(PublicKey serverPublicKey, KeyPair
275278
}
276279
}
277280

278-
private static JsonObject createCstgEnvelope(String request, String subscriptionId, PublicKey clientPublicKey, SecretKey sharedSecret) {
281+
private static JsonObject createCstgEnvelope(String request, PublicKey clientPublicKey, SecretKey sharedSecret) {
279282
final long now = Clock.systemUTC().millis();
280283

281284
final byte[] iv = new byte[IV_BYTES];
@@ -295,7 +298,7 @@ private static JsonObject createCstgEnvelope(String request, String subscription
295298
body.addProperty("iv", byteArrayToBase64(iv));
296299
body.addProperty("public_key", byteArrayToBase64(clientPublicKey.getEncoded()));
297300
body.addProperty("timestamp", now);
298-
body.addProperty("subscription_id", subscriptionId);
301+
body.addProperty("subscription_id", CSTG_SUBSCRIPTION_ID);
299302

300303
return body;
301304
}

src/test/java/common/Const.java

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,36 @@
33
public final class Const {
44
public static final class Config {
55
public static final String ARGS_JSON = "E2E_ARGS_JSON";
6+
67
public static final String ENV = "E2E_ENV";
78
public static final String IDENTITY_SCOPE = "E2E_IDENTITY_SCOPE";
89
public static final String PHONE_SUPPORT = "E2E_PHONE_SUPPORT";
910

1011
// Args used for Operator E2Es
1112
public static final class Operator {
12-
public static final String CLIENT_SITE = "UID2_OPERATOR_E2E_CLIENT_SITE";
13+
public static final String CLIENT_SITE_ID = "UID2_OPERATOR_E2E_CLIENT_SITE_ID";
1314
public static final String CLIENT_API_KEY = "UID2_OPERATOR_E2E_CLIENT_API_KEY";
1415
public static final String CLIENT_API_SECRET = "UID2_OPERATOR_E2E_CLIENT_API_SECRET";
1516

16-
// Optout policy check
17-
public static final String CLIENT_API_KEY_PRE_OPTOUT_POLICY = "UID2_OPERATOR_E2E_CLIENT_API_KEY_PRE_OPTOUT_POLICY";
18-
public static final String CLIENT_API_SECRET_PRE_OPTOUT_POLICY = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_PRE_OPTOUT_POLICY";
17+
// Optout cutoff
18+
public static final String CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF = "UID2_OPERATOR_E2E_CLIENT_API_KEY_BEFORE_OPTOUT_CUTOFF";
19+
public static final String CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_BEFORE_OPTOUT_CUTOFF";
20+
21+
// Local only - Sharing
22+
public static final String CLIENT_API_KEY_SHARING_RECIPIENT = "UID2_OPERATOR_E2E_CLIENT_API_KEY_SHARING_RECIPIENT";
23+
public static final String CLIENT_API_SECRET_SHARING_RECIPIENT = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_SHARING_RECIPIENT";
1924

20-
// Sharing
21-
public static final String CLIENT_API_KEY_SHARING_PARTICIPANT = "UID2_OPERATOR_E2E_CLIENT_API_KEY_SHARING_PARTICIPANT";
22-
public static final String CLIENT_API_KEY_SHARING_NON_PARTICIPANT = "UID2_OPERATOR_E2E_CLIENT_API_KEY_SHARING_NON_PARTICIPANT";
23-
public static final String CLIENT_API_SECRET_SHARING_PARTICIPANT = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_SHARING_PARTICIPANT";
24-
public static final String CLIENT_API_SECRET_NON_SHARING_PARTICIPANT = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_NON_SHARING_PARTICIPANT";
25+
public static final String CLIENT_API_KEY_NON_SHARING_RECIPIENT = "UID2_OPERATOR_E2E_CLIENT_API_KEY_SHARING_NON_RECIPIENT";
26+
public static final String CLIENT_API_SECRET_NON_SHARING_RECIPIENT = "UID2_OPERATOR_E2E_CLIENT_API_SECRET_NON_SHARING_RECIPIENT";
2527

26-
// CSTG
28+
// Local only - Sharing
2729
public static final String CSTG_SUBSCRIPTION_ID = "UID2_OPERATOR_E2E_CSTG_SUBSCRIPTION_ID";
28-
public static final String CSTG_PUBLIC_KEY = "UID2_OPERATOR_E2E_CSTG_PUBLIC_KEY";
30+
public static final String CSTG_SERVER_PUBLIC_KEY = "UID2_OPERATOR_E2E_CSTG_SERVER_PUBLIC_KEY";
2931
public static final String CSTG_ORIGIN = "UID2_OPERATOR_E2E_CSTG_ORIGIN";
3032
public static final String CSTG_INVALID_ORIGIN = "UID2_OPERATOR_E2E_CSTG_INVALID_ORIGIN";
3133
}
3234

33-
// Args used for Core E2Es
35+
// Local only - Args used for Core E2Es
3436
public static final class Core {
3537
public static final String OPERATOR_API_KEY = "UID2_CORE_E2E_OPERATOR_API_KEY";
3638
public static final String OPTOUT_API_KEY = "UID2_CORE_E2E_OPTOUT_API_KEY";

src/test/java/common/EnabledCondition.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package common;
22

33
public final class EnabledCondition {
4-
private static final String ENV = EnvUtil.getEnv("UID2_E2E_ENV");
4+
private static final String ENV = EnvUtil.getEnv(Const.Config.ENV);
55

66
private EnabledCondition() {
77
}

0 commit comments

Comments
 (0)