[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.assertNotNull;
|
||||
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.IN_CONTEXT_COOKIE_CONTROLS_OPENED;
|
||||
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.GradientDrawable;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.format.DateUtils;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
@ -56,6 +61,9 @@ import org.junit.ClassRule;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
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.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.preferences.Pref;
|
||||
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.util.ChromeAccessibilityUtil;
|
||||
import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
|
||||
import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
|
||||
import org.chromium.chrome.test.R;
|
||||
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.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.Website;
|
||||
import org.chromium.components.browser_ui.site_settings.WebsiteAddress;
|
||||
@ -215,6 +226,8 @@ public class PageInfoViewTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Mock private SettingsNavigation mSettingsNavigation;
|
||||
|
||||
@ClassRule
|
||||
public static final ChromeTabbedActivityTestRule sActivityTestRule =
|
||||
new ChromeTabbedActivityTestRule();
|
||||
@ -350,12 +363,23 @@ public class PageInfoViewTest {
|
||||
return rwsInfo;
|
||||
}
|
||||
|
||||
private void setRwsInfo(String url) {
|
||||
RwsCookieInfo rwsInfo = getRwsCookieInfo(url);
|
||||
private void setRwsInfoForTesting(RwsCookieInfo rwsCookieInfo) {
|
||||
PageInfoController controller = PageInfoController.getLastPageInfoController();
|
||||
assertNotNull(controller);
|
||||
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) {
|
||||
@ -520,6 +544,8 @@ public class PageInfoViewTest {
|
||||
mTestServerRule.setServerUsesHttps(true);
|
||||
|
||||
PageInfoAdPersonalizationController.setTopicsForTesting(Arrays.asList("Testing topic"));
|
||||
|
||||
MockitoAnnotations.initMocks(this);
|
||||
}
|
||||
|
||||
@After
|
||||
@ -800,6 +826,29 @@ public class PageInfoViewTest {
|
||||
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. */
|
||||
@Test
|
||||
@MediumTest
|
||||
|
Reference in New Issue
Block a user