Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 275d850

Browse files
Merge pull request #177 from MihaiCristianCondrea/codex/add-unit-tests-for-consentutils
Add tests for consent utilities
2 parents 0e27a85 + b3d01f7 commit 275d850

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package com.d4rk.androidtutorials.java.utils;
2+
3+
import static org.junit.Assert.assertEquals;
4+
import static org.junit.Assert.assertFalse;
5+
import static org.junit.Assert.assertTrue;
6+
import static org.mockito.Mockito.mock;
7+
import static org.mockito.Mockito.verify;
8+
import static org.mockito.Mockito.when;
9+
10+
import android.content.Context;
11+
import android.content.SharedPreferences;
12+
13+
import androidx.preference.PreferenceManager;
14+
15+
import com.d4rk.androidtutorials.java.R;
16+
import com.google.firebase.analytics.FirebaseAnalytics;
17+
18+
import org.junit.Test;
19+
import org.mockito.ArgumentCaptor;
20+
import org.mockito.MockedStatic;
21+
import org.mockito.Mockito;
22+
23+
import java.util.Map;
24+
25+
public class ConsentUtilsTest {
26+
27+
@Test
28+
public void updateFirebaseConsent_setsExpectedStatuses() {
29+
Context context = mock(Context.class);
30+
FirebaseAnalytics analytics = mock(FirebaseAnalytics.class);
31+
32+
try (MockedStatic<FirebaseAnalytics> firebaseStatic = Mockito.mockStatic(FirebaseAnalytics.class)) {
33+
firebaseStatic.when(() -> FirebaseAnalytics.getInstance(context)).thenReturn(analytics);
34+
35+
boolean analyticsConsent = true;
36+
boolean adStorageConsent = false;
37+
boolean adUserDataConsent = true;
38+
boolean adPersonalizationConsent = false;
39+
40+
ConsentUtils.updateFirebaseConsent(context,
41+
analyticsConsent,
42+
adStorageConsent,
43+
adUserDataConsent,
44+
adPersonalizationConsent);
45+
46+
ArgumentCaptor<Map<FirebaseAnalytics.ConsentType, FirebaseAnalytics.ConsentStatus>> captor =
47+
ArgumentCaptor.forClass(Map.class);
48+
verify(analytics).setConsent(captor.capture());
49+
Map<FirebaseAnalytics.ConsentType, FirebaseAnalytics.ConsentStatus> result = captor.getValue();
50+
51+
assertEquals(FirebaseAnalytics.ConsentStatus.GRANTED,
52+
result.get(FirebaseAnalytics.ConsentType.ANALYTICS_STORAGE));
53+
assertEquals(FirebaseAnalytics.ConsentStatus.DENIED,
54+
result.get(FirebaseAnalytics.ConsentType.AD_STORAGE));
55+
assertEquals(FirebaseAnalytics.ConsentStatus.GRANTED,
56+
result.get(FirebaseAnalytics.ConsentType.AD_USER_DATA));
57+
assertEquals(FirebaseAnalytics.ConsentStatus.DENIED,
58+
result.get(FirebaseAnalytics.ConsentType.AD_PERSONALIZATION));
59+
}
60+
}
61+
62+
@Test
63+
public void canShowAds_readsStoredPreference() {
64+
Context context = mock(Context.class);
65+
SharedPreferences prefs = mock(SharedPreferences.class);
66+
when(context.getString(R.string.key_consent_ad_storage)).thenReturn("consent_ad_storage");
67+
68+
try (MockedStatic<PreferenceManager> prefsStatic = Mockito.mockStatic(PreferenceManager.class)) {
69+
prefsStatic.when(() -> PreferenceManager.getDefaultSharedPreferences(context)).thenReturn(prefs);
70+
71+
when(prefs.getBoolean("consent_ad_storage", true)).thenReturn(false);
72+
assertFalse(ConsentUtils.canShowAds(context));
73+
74+
when(prefs.getBoolean("consent_ad_storage", true)).thenReturn(true);
75+
assertTrue(ConsentUtils.canShowAds(context));
76+
}
77+
}
78+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /