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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy