[RWS - Clank] Add test for site settings link
Bug: b:396463421 Change-Id: I1c60f2fbf6514bf8d72df77a82713c5f20f75b52 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6367500 Reviewed-by: Fiona Macintosh <fmacintosh@google.com> Auto-Submit: Maggie Jennings <mjenn@google.com> Reviewed-by: Filipa Senra <fsenra@google.com> Commit-Queue: Maggie Jennings <mjenn@google.com> Cr-Commit-Position: refs/heads/main@{#1434254}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
2af3305ff4
commit
763e478605
@ -27,7 +27,11 @@ import static org.junit.Assert.assertEquals;
|
|||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
import static org.mockito.ArgumentMatchers.refEq;
|
||||||
|
|
||||||
|
import static org.chromium.components.browser_ui.site_settings.SingleWebsiteSettings.EXTRA_SITE;
|
||||||
import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS_MODE;
|
import static org.chromium.components.content_settings.PrefNames.COOKIE_CONTROLS_MODE;
|
||||||
import static org.chromium.components.content_settings.PrefNames.IN_CONTEXT_COOKIE_CONTROLS_OPENED;
|
import static org.chromium.components.content_settings.PrefNames.IN_CONTEXT_COOKIE_CONTROLS_OPENED;
|
||||||
import static org.chromium.ui.test.util.ViewUtils.clickOnClickableSpan;
|
import static org.chromium.ui.test.util.ViewUtils.clickOnClickableSpan;
|
||||||
@ -39,6 +43,7 @@ import android.content.res.Resources;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.GradientDrawable;
|
import android.graphics.drawable.GradientDrawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -56,6 +61,9 @@ import org.junit.ClassRule;
|
|||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.Mockito;
|
||||||
|
import org.mockito.MockitoAnnotations;
|
||||||
|
|
||||||
import org.chromium.base.ThreadUtils;
|
import org.chromium.base.ThreadUtils;
|
||||||
import org.chromium.base.supplier.ObservableSupplier;
|
import org.chromium.base.supplier.ObservableSupplier;
|
||||||
@ -88,14 +96,17 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
|
|||||||
import org.chromium.chrome.browser.pdf.PdfUtils.PdfPageType;
|
import org.chromium.chrome.browser.pdf.PdfUtils.PdfPageType;
|
||||||
import org.chromium.chrome.browser.preferences.Pref;
|
import org.chromium.chrome.browser.preferences.Pref;
|
||||||
import org.chromium.chrome.browser.profiles.ProfileManager;
|
import org.chromium.chrome.browser.profiles.ProfileManager;
|
||||||
|
import org.chromium.chrome.browser.settings.SettingsNavigationFactory;
|
||||||
import org.chromium.chrome.browser.tab.Tab;
|
import org.chromium.chrome.browser.tab.Tab;
|
||||||
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
|
import org.chromium.chrome.browser.util.ChromeAccessibilityUtil;
|
||||||
import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
|
import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
|
||||||
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
|
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
|
||||||
import org.chromium.chrome.test.R;
|
import org.chromium.chrome.test.R;
|
||||||
import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule;
|
import org.chromium.chrome.test.batch.BlankCTATabInitialStateRule;
|
||||||
|
import org.chromium.components.browser_ui.settings.SettingsNavigation;
|
||||||
import org.chromium.components.browser_ui.site_settings.ContentSettingException;
|
import org.chromium.components.browser_ui.site_settings.ContentSettingException;
|
||||||
import org.chromium.components.browser_ui.site_settings.RwsCookieInfo;
|
import org.chromium.components.browser_ui.site_settings.RwsCookieInfo;
|
||||||
|
import org.chromium.components.browser_ui.site_settings.SingleWebsiteSettings;
|
||||||
import org.chromium.components.browser_ui.site_settings.SiteSettingsDelegate;
|
import org.chromium.components.browser_ui.site_settings.SiteSettingsDelegate;
|
||||||
import org.chromium.components.browser_ui.site_settings.Website;
|
import org.chromium.components.browser_ui.site_settings.Website;
|
||||||
import org.chromium.components.browser_ui.site_settings.WebsiteAddress;
|
import org.chromium.components.browser_ui.site_settings.WebsiteAddress;
|
||||||
@ -215,6 +226,8 @@ public class PageInfoViewTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Mock private SettingsNavigation mSettingsNavigation;
|
||||||
|
|
||||||
@ClassRule
|
@ClassRule
|
||||||
public static final ChromeTabbedActivityTestRule sActivityTestRule =
|
public static final ChromeTabbedActivityTestRule sActivityTestRule =
|
||||||
new ChromeTabbedActivityTestRule();
|
new ChromeTabbedActivityTestRule();
|
||||||
@ -350,12 +363,23 @@ public class PageInfoViewTest {
|
|||||||
return rwsInfo;
|
return rwsInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setRwsInfo(String url) {
|
private void setRwsInfoForTesting(RwsCookieInfo rwsCookieInfo) {
|
||||||
RwsCookieInfo rwsInfo = getRwsCookieInfo(url);
|
|
||||||
PageInfoController controller = PageInfoController.getLastPageInfoController();
|
PageInfoController controller = PageInfoController.getLastPageInfoController();
|
||||||
assertNotNull(controller);
|
assertNotNull(controller);
|
||||||
var cookiesController = controller.getCookiesController();
|
var cookiesController = controller.getCookiesController();
|
||||||
cookiesController.setRwsInfoForTesting(rwsInfo.getMembers());
|
cookiesController.setRwsInfoForTesting(rwsCookieInfo.getMembers());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setRwsInfo(String url) {
|
||||||
|
RwsCookieInfo rwsInfo = getRwsCookieInfo(url);
|
||||||
|
setRwsInfoForTesting(rwsInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setRwsInfoWithWebsite(Website site) {
|
||||||
|
RwsCookieInfo rwsInfo =
|
||||||
|
new RwsCookieInfo(site.getAddress().getDomainAndRegistry(), List.of(site));
|
||||||
|
site.setRwsCookieInfo(rwsInfo);
|
||||||
|
setRwsInfoForTesting(rwsInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setThirdPartyCookieBlocking(@CookieControlsMode int value) {
|
private void setThirdPartyCookieBlocking(@CookieControlsMode int value) {
|
||||||
@ -520,6 +544,8 @@ public class PageInfoViewTest {
|
|||||||
mTestServerRule.setServerUsesHttps(true);
|
mTestServerRule.setServerUsesHttps(true);
|
||||||
|
|
||||||
PageInfoAdPersonalizationController.setTopicsForTesting(Arrays.asList("Testing topic"));
|
PageInfoAdPersonalizationController.setTopicsForTesting(Arrays.asList("Testing topic"));
|
||||||
|
|
||||||
|
MockitoAnnotations.initMocks(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
@ -800,6 +826,29 @@ public class PageInfoViewTest {
|
|||||||
mRenderTestRule.render(getPageInfoView(), "PageInfo_CookiesSubpage_RwsEnabled");
|
mRenderTestRule.render(getPageInfoView(), "PageInfo_CookiesSubpage_RwsEnabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Tests the cookies page of the PageInfo UI with RWS enabled. */
|
||||||
|
@Test
|
||||||
|
@MediumTest
|
||||||
|
public void shouldNavigateToSiteSettingsWhenRwsButtonClicked() throws IOException {
|
||||||
|
SettingsNavigationFactory.setInstanceForTesting(mSettingsNavigation);
|
||||||
|
String hostName = "example.com";
|
||||||
|
String url = mTestServerRule.getServer().getURLWithHostName(hostName, "/");
|
||||||
|
Website currentSite = new Website(WebsiteAddress.create(url), null);
|
||||||
|
loadUrlAndOpenPageInfo(url);
|
||||||
|
setRwsInfoWithWebsite(currentSite);
|
||||||
|
onView(withId(R.id.page_info_cookies_row)).perform(click());
|
||||||
|
onViewWaiting(allOf(withText(R.string.page_info_rws_v2_button_title), isDisplayed()));
|
||||||
|
Context context = ApplicationProvider.getApplicationContext();
|
||||||
|
String subtitle =
|
||||||
|
context.getString(R.string.page_info_rws_v2_button_subtitle_android, hostName);
|
||||||
|
onViewWaiting(allOf(withText(subtitle), isDisplayed()));
|
||||||
|
onView(withText(R.string.page_info_rws_v2_button_title)).perform(click());
|
||||||
|
Bundle extras = new Bundle();
|
||||||
|
extras.putSerializable(EXTRA_SITE, currentSite);
|
||||||
|
Mockito.verify(mSettingsNavigation)
|
||||||
|
.startSettings(any(), eq(SingleWebsiteSettings.class), refEq(extras));
|
||||||
|
}
|
||||||
|
|
||||||
/** Tests the cookies page of the PageInfo UI with the Cookie Controls UI enabled. */
|
/** Tests the cookies page of the PageInfo UI with the Cookie Controls UI enabled. */
|
||||||
@Test
|
@Test
|
||||||
@MediumTest
|
@MediumTest
|
||||||
|
Reference in New Issue
Block a user