diff --git a/chrome/browser/privacy_guide/android/BUILD.gn b/chrome/browser/privacy_guide/android/BUILD.gn index b3e4d0a11eeaf..5c0f54c7f9777 100644 --- a/chrome/browser/privacy_guide/android/BUILD.gn +++ b/chrome/browser/privacy_guide/android/BUILD.gn @@ -73,6 +73,7 @@ robolectric_library("junit") { "//base:base_java", "//base:base_java_test_support", "//base:base_junit_test_support", + "//chrome/browser/privacy_sandbox/android:java", "//chrome/browser/profiles/android:java", "//chrome/browser/safe_browsing/android:java", "//chrome/browser/signin/services/android:java", diff --git a/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_done.xml b/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_done.xml index 7eb3b8785384e..91dc91d99bcfb 100644 --- a/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_done.xml +++ b/chrome/browser/privacy_guide/android/java/res/layout/privacy_guide_done.xml @@ -41,11 +41,13 @@ found in the LICENSE file. style="@style/TextAppearance.TextLarge.Secondary" /> { @@ -59,11 +65,22 @@ private void initFragmentWithSignInState(boolean isSignedIn) { }); } + private void setSignedInState(boolean isSignedIn) { + when(mIdentityManager.hasPrimaryAccount(ConsentLevel.SIGNIN)).thenReturn(isSignedIn); + } + + private void setPrivacySandboxState(boolean isRestricted, boolean isRestrictedNoticeEnabled) { + when(mPrivacySandboxBridge.isPrivacySandboxRestricted()).thenReturn(isRestricted); + when(mPrivacySandboxBridge.isRestrictedNoticeEnabled()) + .thenReturn(isRestrictedNoticeEnabled); + } + @Before public void setUp() { Profile.setLastUsedProfileForTesting(mProfile); IdentityServicesProvider.setInstanceForTests(mIdentityServicesProvider); when(mIdentityServicesProvider.getIdentityManager(mProfile)).thenReturn(mIdentityManager); + mMocker.mock(PrivacySandboxBridgeJni.TEST_HOOKS, mPrivacySandboxBridge); } @After @@ -76,16 +93,50 @@ public void tearDown() { } @Test - public void testOneLinkVisibleWhenSignedOut() { - initFragmentWithSignInState(false); + public void testPSButtonNotVisible() { + setPrivacySandboxState(true, false); + initFragment(); + + assertFalse(mPsButton.isShown()); + } + + @Test + public void testPSButtonVisibleWhenNotRestricted() { + setPrivacySandboxState(false, false); + initFragment(); + assertTrue(mPsButton.isShown()); - assertFalse(mWaaButton.isShown()); } @Test - public void testTwoLinksVisibleWhenSignedIn() { - initFragmentWithSignInState(true); + public void testPSButtonVisibleWhenRestrictedNoticeEnabled() { + setPrivacySandboxState(true, true); + initFragment(); + assertTrue(mPsButton.isShown()); + } + + @Test + public void testPSButtonVisibleWhenNotRestrictedAndRestrictedNoticeEnabled() { + setPrivacySandboxState(false, true); + initFragment(); + + assertTrue(mPsButton.isShown()); + } + + @Test + public void testWaaButtonVisibleWhenSignedIn() { + setSignedInState(true); + initFragment(); + assertTrue(mWaaButton.isShown()); } + + @Test + public void testWaaButtonNotVisibleWhenNotSignedIn() { + setSignedInState(false); + initFragment(); + + assertFalse(mWaaButton.isShown()); + } }