From 3fe845b724f1a76672f8b3da85536ea8e4c0ba51 Mon Sep 17 00:00:00 2001 From: Rubin Deliallisi Date: Tue, 30 May 2023 09:17:31 +0000 Subject: [PATCH] Privacy Guide: Dynamic PS link visibility - Dynamically remove the PS link in the completion step. (cherry picked from commit 1120cf1b3aa4683d88b04694a8fb81e36203f016) Bug: 1448806 Change-Id: Ib1359e2b90158bbc78ef2b6a6b183e62c5b0c1fd Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4567527 Reviewed-by: Nicola Tommasi Code-Coverage: Findit Commit-Queue: Rubin Deliallisi Cr-Original-Commit-Position: refs/heads/main@{#1149626} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4571028 Auto-Submit: Nicola Tommasi Bot-Commit: Rubber Stamper Commit-Queue: Nicola Tommasi Reviewed-by: Rubin Deliallisi Cr-Commit-Position: refs/branch-heads/5790@{#126} Cr-Branched-From: 1d71a337b1f6e707a13ae074dca1e2c34905eb9f-refs/heads/main@{#1148114} --- chrome/browser/privacy_guide/android/BUILD.gn | 1 + .../java/res/layout/privacy_guide_done.xml | 2 + .../browser/privacy_guide/DoneFragment.java | 11 +++- .../privacy_guide/DoneFragmentTest.java | 65 +++++++++++++++++-- 4 files changed, 70 insertions(+), 9 deletions(-) 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()); + } }