Skip to content

Commit b4694e7

Browse files
authored
Add analytics feature flag support
1 parent 0476ad6 commit b4694e7

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

cloudinary-core/src/main/java/com/cloudinary/utils/Analytics.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,18 @@ public class Analytics {
1616
public String osType;
1717
public String osVersion;
1818

19+
public String featureFlag = "0";
20+
1921
public Analytics() {
20-
this("G", Cloudinary.VERSION,System.getProperty("java.version"), "Z", "0.0");
22+
this("G", Cloudinary.VERSION,System.getProperty("java.version"), "Z", "0.0", "0");
2123
}
22-
public Analytics(String sdkCode, String sdkVersion, String techVersion, String osType, String osVersion) {
24+
public Analytics(String sdkCode, String sdkVersion, String techVersion, String osType, String osVersion, String featureFlag) {
2325
this.SDKCode = sdkCode;
2426
this.SDKSemver = sdkVersion;
2527
this.techVersion = techVersion;
2628
this.osType = osType;
2729
this.osVersion = osVersion;
30+
this.featureFlag = featureFlag;
2831
}
2932

3033
public Analytics setSDKCode(String SDKCode) {
@@ -42,13 +45,18 @@ public Analytics setTechVersion(String techVersion) {
4245
return this;
4346
}
4447

48+
public Analytics setFeatureFlag(String flag) {
49+
this.featureFlag = flag;
50+
return this;
51+
}
52+
4553
/**
4654
* Function turn analytics variables into viable query parameter.
4755
* @return query param with analytics values.
4856
*/
4957
public String toQueryParam() {
5058
try {
51-
return sdkTokenQueryKey + sdkQueryDelimiter + getAlgorithmVersion() + prodcut + getSDKType() + getSDKVersion() + getTechVersion() + getOsType() + getOsVersion() + getSDKFeatureCode();
59+
return sdkTokenQueryKey + sdkQueryDelimiter + getAlgorithmVersion() + prodcut + getSDKType() + getSDKVersion() + getTechVersion() + getOsType() + getOsVersion() + getSDKFeatureFlag();
5260
} catch (Exception e) {
5361
return sdkTokenQueryKey + sdkQueryDelimiter + "E";
5462
}
@@ -90,8 +98,8 @@ private String getAlgorithmVersion() {
9098
return algoVersion;
9199
}
92100

93-
private String getSDKFeatureCode() {
94-
return "0";
101+
private String getSDKFeatureFlag() {
102+
return featureFlag;
95103
}
96104

97105
private String getSDKVersion() throws Exception {

cloudinary-core/src/test/java/com/cloudinary/analytics/AnalyticsTest.java

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,19 @@ public void testEncodeVersion() {
5151

5252
@Test
5353
public void testToQueryParam() {
54-
Analytics analytics = new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0");
54+
Analytics analytics = new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0", "0");
5555
String result = analytics.toQueryParam();
5656
Assert.assertEquals(result, "_a=DAFAACMhZBi0");
5757

58-
analytics = new Analytics("F", "2.0.0", "1.8.0", "Z", "16.3");
58+
analytics = new Analytics("F", "2.0.0", "1.8.0", "Z", "16.3", "0");
5959
result = analytics.toQueryParam();
6060
Assert.assertEquals(result, "_a=DAFAACMhZQD0");
6161
}
6262

6363
@Test
6464
public void testUrlWithAnalytics() {
6565
cloudinary.config.analytics = true;
66-
cloudinary.setAnalytics(new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0"));
66+
cloudinary.setAnalytics(new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0", "0"));
6767
String url = cloudinary.url().generate("test");
6868
Assert.assertEquals(url, "http://res.cloudinary.com/test123/image/upload/test?_a=DAFAACMhZBi0");
6969
}
@@ -99,15 +99,15 @@ public void testUrlWithNoAnalyticsNullAndTrue() {
9999
@Test
100100
public void testMiscAnalyticsObject() {
101101
cloudinary.config.analytics = true;
102-
Analytics analytics = new Analytics("Z", "1.24.0", "12.0.0", "Z", "1.34.0");
102+
Analytics analytics = new Analytics("Z", "1.24.0", "12.0.0", "Z", "1.34.0", "0");
103103
String result = analytics.toQueryParam();
104104
Assert.assertEquals(result, "_a=DAZAlhAMZBi0");
105105
}
106106

107107
@Test
108108
public void testErrorAnalytics() {
109109
cloudinary.config.analytics = true;
110-
Analytics analytics = new Analytics("Z", "1.24.0", "0", "Z", "1.34.0");
110+
Analytics analytics = new Analytics("Z", "1.24.0", "0", "Z", "1.34.0", "0");
111111
String result = analytics.toQueryParam();
112112
Assert.assertEquals(result, "_a=E");
113113
}
@@ -120,13 +120,21 @@ public void testUrlNoAnalyticsWithQueryParams() {
120120
cloudinary.config.cloudName = "test123";
121121

122122
cloudinary.config.analytics = true;
123-
cloudinary.setAnalytics(new Analytics("F", "2.0.0", System.getProperty("java.version"), "Z", System.getProperty("os.version")));
123+
cloudinary.setAnalytics(new Analytics("F", "2.0.0", System.getProperty("java.version"), "Z", System.getProperty("os.version"), "0"));
124124
cloudinary.config.privateCdn = true;
125125
String url = cloudinary.url().signed(true).type("authenticated").generate("test");
126126
assertEquals(url,"http://test123-res.cloudinary.com/image/authenticated/test?__cld_token__=st=11111111~exp=11111411~hmac=735a49389a72ac0b90d1a84ac5d43facd1a9047f153b39e914747ef6ed195e53");
127127
cloudinary.config.privateCdn = false;
128128
}
129129

130+
@Test
131+
public void testFeatureFlag() {
132+
Analytics analytics = new Analytics("F", "2.0.0", "1.8.0", "Z", "1.34.0", "0");
133+
analytics.setFeatureFlag("F");
134+
String result = analytics.toQueryParam();
135+
Assert.assertEquals(result, "_a=DAFAACMhZBiF");
136+
}
137+
130138
@After
131139
public void tearDown() {
132140
cloudinary.config.analytics = false;

0 commit comments

Comments
 (0)