@@ -46,8 +46,10 @@ public void testInitSession_hasGAIDv1() throws Throwable {
4646 ServerRequest initRequest = queue .peekAt (0 );
4747 doFinalUpdate (initRequest );
4848
49- Assert .assertTrue (hasV1GAID (initRequest ));
50- Assert .assertFalse (hasV2GAID (initRequest ));
49+ assumingLatIsDisabledHasGAIDv1 (initRequest , true );
50+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (initRequest , true );
51+ assumingLatIsDisabledHasGAIDv2 (initRequest , false );
52+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (initRequest , false );
5153 }
5254
5355 @ Test
@@ -69,8 +71,10 @@ public void testActionCompleted_hasGAIDv1() throws Throwable {
6971 Assert .assertNotNull (serverRequest );
7072 doFinalUpdate (serverRequest );
7173
72- Assert .assertTrue (hasV1GAID (serverRequest ));
73- Assert .assertFalse (hasV2GAID (serverRequest ));
74+ assumingLatIsDisabledHasGAIDv1 (serverRequest , true );
75+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (serverRequest , true );
76+ assumingLatIsDisabledHasGAIDv2 (serverRequest , false );
77+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (serverRequest , false );
7478 }
7579
7680 @ Test
@@ -90,8 +94,10 @@ public void testCommerceEvent_hasGAIDv1() throws Throwable {
9094 Assert .assertNotNull (serverRequest );
9195 doFinalUpdate (serverRequest );
9296
93- Assert .assertTrue (hasV1GAID (serverRequest ));
94- Assert .assertFalse (hasV2GAID (serverRequest ));
97+ assumingLatIsDisabledHasGAIDv1 (serverRequest , true );
98+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (serverRequest , true );
99+ assumingLatIsDisabledHasGAIDv2 (serverRequest , false );
100+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (serverRequest , false );
95101
96102 DebugLogQueue (getTestContext ());
97103 }
@@ -116,8 +122,10 @@ public void testRedeemAwards_hasGAIDv1() throws Throwable {
116122 Assert .assertNotNull (serverRequest );
117123 doFinalUpdate (serverRequest );
118124
119- Assert .assertTrue (hasV1GAID (serverRequest ));
120- Assert .assertFalse (hasV2GAID (serverRequest ));
125+ assumingLatIsDisabledHasGAIDv1 (serverRequest , true );
126+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (serverRequest , true );
127+ assumingLatIsDisabledHasGAIDv2 (serverRequest , false );
128+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (serverRequest , false );
121129 }
122130
123131 @ Test
@@ -131,8 +139,10 @@ public void testCreditHistory_hasGAIDv1() throws Throwable {
131139 Assert .assertNotNull (serverRequest );
132140 doFinalUpdate (serverRequest );
133141
134- Assert .assertTrue (hasV1GAID (serverRequest ));
135- Assert .assertFalse (hasV2GAID (serverRequest ));
142+ assumingLatIsDisabledHasGAIDv1 (serverRequest , true );
143+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (serverRequest , true );
144+ assumingLatIsDisabledHasGAIDv2 (serverRequest , false );
145+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (serverRequest , false );
136146 }
137147
138148 @ Test
@@ -146,8 +156,10 @@ public void testIdentity_hasGAIDv1() throws Throwable {
146156 Assert .assertNotNull (serverRequest );
147157 doFinalUpdate (serverRequest );
148158
149- Assert .assertTrue (hasV1GAID (serverRequest ));
150- Assert .assertFalse (hasV2GAID (serverRequest ));
159+ assumingLatIsDisabledHasGAIDv1 (serverRequest , true );
160+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (serverRequest , true );
161+ assumingLatIsDisabledHasGAIDv2 (serverRequest , false );
162+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (serverRequest , false );
151163 }
152164
153165 @ Test
@@ -177,10 +189,45 @@ public void testStandardEvent_hasGAIDv2() throws Throwable {
177189 ServerRequest serverRequest = logEvent (getTestContext (), branchEvent );
178190 Assert .assertNotNull (serverRequest );
179191
180- Assert .assertFalse (hasV1GAID (serverRequest ));
181- Assert .assertTrue (hasV2GAID (serverRequest ));
192+ assumingLatIsDisabledHasGAIDv1 (serverRequest , false );
193+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (serverRequest , false );
194+ assumingLatIsDisabledHasGAIDv2 (serverRequest , true );
195+ assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (serverRequest , true );
182196 }
183197
198+ // Check to see if the LAT is available (V1)
199+ private boolean hasV1LAT (ServerRequest request ) {
200+ JSONObject jsonObject = request .getGetParams ();
201+ int lat = jsonObject .optInt (Defines .Jsonkey .LATVal .getKey (), -1 );
202+ return lat >= 0 ;
203+ }
204+
205+ // Check to see if the LAT is available (V2)
206+ private boolean hasV2LAT (ServerRequest request ) {
207+ JSONObject jsonObject = request .getGetParams ();
208+ JSONObject userDataObj = jsonObject .optJSONObject (Defines .Jsonkey .UserData .getKey ());
209+
210+ if (userDataObj == null ) {
211+ return false ;
212+ }
213+
214+ int lat = userDataObj .optInt (Defines .Jsonkey .LimitedAdTracking .getKey (), -1 );
215+ return lat >= 0 ;
216+ }
217+
218+ private boolean LATIsEnabledV1 (ServerRequest request ) {
219+ JSONObject jsonObject = request .getGetParams ();
220+ return jsonObject .optInt (Defines .Jsonkey .LATVal .getKey (), -1 ) == 1 ;
221+ }
222+
223+ private boolean LATIsEnabledV2 (ServerRequest request ) {
224+ JSONObject jsonObject = request .getGetParams ();
225+ JSONObject userDataObj = jsonObject .optJSONObject (Defines .Jsonkey .UserData .getKey ());
226+
227+ Assert .assertNotNull (userDataObj );
228+
229+ return userDataObj .optInt (Defines .Jsonkey .LimitedAdTracking .getKey (), -1 ) == 1 ;
230+ }
184231
185232 // Check to see if the GAID is available (V1)
186233 private boolean hasV1GAID (ServerRequest request ) {
@@ -202,5 +249,76 @@ private boolean hasV2GAID(ServerRequest request) {
202249 return (gaid .length () > 0 );
203250 }
204251
252+ private void assumingLatIsDisabledHasGAIDv1 (ServerRequest serverRequest , boolean assertTrue ) {
253+ if (assertTrue ) {
254+ Assert .assertTrue (hasV1LAT (serverRequest ));
255+
256+ if (LATIsEnabledV1 (serverRequest )) {
257+ Assert .assertFalse (hasV1GAID (serverRequest ));
258+ } else {
259+ Assert .assertTrue (hasV1GAID (serverRequest ));
260+ }
261+ } else {
262+ Assert .assertFalse (hasV1LAT (serverRequest ));
263+ Assert .assertFalse (hasV1GAID (serverRequest ));
264+ }
265+ }
266+
267+ private void assumingLatIsDisabledHasGAIDv2 (ServerRequest serverRequest , boolean assertTrue ) {
268+ if (assertTrue ) {
269+ Assert .assertTrue (hasV2LAT (serverRequest ));
270+
271+ if (LATIsEnabledV2 (serverRequest )) {
272+ Assert .assertFalse (hasV2GAID (serverRequest ));
273+ } else {
274+ Assert .assertTrue (hasV2GAID (serverRequest ));
275+ }
276+ } else {
277+ Assert .assertFalse (hasV2LAT (serverRequest ));
278+ Assert .assertFalse (hasV2GAID (serverRequest ));
279+ }
280+ }
281+
282+ private String getAdIdFromAdIdsObject (ServerRequest request ) {
283+ JSONObject jsonObject = request .getGetParams ();
284+ JSONObject adIdsObject = jsonObject .optJSONObject (Defines .Jsonkey .AdvertisingIDs .getKey ());
285+ if (adIdsObject == null ) return "" ;
286+
287+ if (jsonObject .optString (Defines .Jsonkey .OS .getKey ()).toLowerCase ().contains ("amazon" )) {
288+ return adIdsObject .optString (Defines .Jsonkey .FireAdId .getKey ());
289+ } else {
290+ return adIdsObject .optString (Defines .Jsonkey .AAID .getKey ());
291+ }
292+ }
293+
294+ private void assumingLatIsDisabledHasAdIdFromAdIdsObjectV1 (ServerRequest serverRequest , boolean assertTrue ) {
295+ boolean hasAdIdFromAdIdsObject = getAdIdFromAdIdsObject (serverRequest ).length () > 0 ;
296+ if (assertTrue ) {
297+ Assert .assertTrue (hasV1LAT (serverRequest ));
298+
299+ if (LATIsEnabledV1 (serverRequest )) {
300+ Assert .assertFalse (hasAdIdFromAdIdsObject );
301+ } else {
302+ Assert .assertTrue (hasAdIdFromAdIdsObject );
303+ }
304+ } else {
305+ Assert .assertFalse (hasV1LAT (serverRequest ));
306+ }
307+ }
308+
309+ private void assumingLatIsDisabledHasAdIdFromAdIdsObjectV2 (ServerRequest serverRequest , boolean assertTrue ) {
310+ boolean hasAdIdFromAdIdsObject = getAdIdFromAdIdsObject (serverRequest ).length () > 0 ;
311+ if (assertTrue ) {
312+ Assert .assertTrue (hasV2LAT (serverRequest ));
313+
314+ if (LATIsEnabledV2 (serverRequest )) {
315+ Assert .assertFalse (hasAdIdFromAdIdsObject );
316+ } else {
317+ Assert .assertTrue (hasAdIdFromAdIdsObject );
318+ }
319+ } else {
320+ Assert .assertFalse (hasV2LAT (serverRequest ));
321+ }
322+ }
205323}
206324
0 commit comments