Commit 460ccd72 authored by Mehran Mahmoudi's avatar Mehran Mahmoudi Committed by Commit Bot

[Touchless] Add setUrlForDisplayForTest to TouchlessUrlUtilities

This fixes a failure in progress bar unit tests.

Bug: 985363
Change-Id: I4140a8485ecf13ad5065fcae163737a38eab581c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713341Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Commit-Queue: Mehran Mahmoudi <mahmoudi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#679969}
parent be9c03d9
...@@ -7,17 +7,22 @@ package org.chromium.chrome.browser.touchless; ...@@ -7,17 +7,22 @@ package org.chromium.chrome.browser.touchless;
import android.net.Uri; import android.net.Uri;
import android.text.TextUtils; import android.text.TextUtils;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.util.UrlUtilities; import org.chromium.chrome.browser.util.UrlUtilities;
import org.chromium.components.url_formatter.UrlFormatter; import org.chromium.components.url_formatter.UrlFormatter;
/** URL utilities used for touchless devices. **/ /** URL utilities used for touchless devices. **/
public class TouchlessUrlUtilities { public class TouchlessUrlUtilities {
private static String sUrlForDisplayForTest;
/** /**
* Formats a given URL for displaying in touchless. This formatting cuts the URL to its eTLD+1. * Formats a given URL for displaying in touchless. This formatting cuts the URL to its eTLD+1.
* For example, for "https://chromium-review.googlesource.com/dashboard/", this will return * For example, for "https://chromium-review.googlesource.com/dashboard/", this will return
* "googlesource.com". * "googlesource.com".
**/ **/
public static String getUrlForDisplay(String url) { public static String getUrlForDisplay(String url) {
if (sUrlForDisplayForTest != null) return sUrlForDisplayForTest;
if (TextUtils.isEmpty(url)) return url; if (TextUtils.isEmpty(url)) return url;
String domainAndRegistry = UrlUtilities.getDomainAndRegistry(url, false); String domainAndRegistry = UrlUtilities.getDomainAndRegistry(url, false);
...@@ -25,4 +30,14 @@ public class TouchlessUrlUtilities { ...@@ -25,4 +30,14 @@ public class TouchlessUrlUtilities {
return UrlFormatter.formatUrlForSecurityDisplayOmitScheme( return UrlFormatter.formatUrlForSecurityDisplayOmitScheme(
parsed.getScheme() + "://" + domainAndRegistry); parsed.getScheme() + "://" + domainAndRegistry);
} }
/**
* Set a display url for testing. When set,
* {@link TouchlessUrlUtilities#getUrlForDisplay(String)} will always return this.
* Please ensure to reset this by passing null as part of your test teardown.
*/
@VisibleForTesting
public static void setUrlForDisplayForTest(String urlForDisplay) {
sUrlForDisplayForTest = urlForDisplay;
}
} }
...@@ -23,8 +23,8 @@ import org.chromium.base.test.BaseRobolectricTestRunner; ...@@ -23,8 +23,8 @@ import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.chrome.browser.ActivityTabProvider; import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.tab.Tab; import org.chromium.chrome.browser.tab.Tab;
import org.chromium.chrome.browser.tab.TabObserver; import org.chromium.chrome.browser.tab.TabObserver;
import org.chromium.chrome.browser.touchless.TouchlessUrlUtilities;
import org.chromium.chrome.browser.util.UrlConstants; import org.chromium.chrome.browser.util.UrlConstants;
import org.chromium.chrome.browser.util.test.ShadowUrlUtilities;
import org.chromium.content_public.browser.NavigationHandle; import org.chromium.content_public.browser.NavigationHandle;
import org.chromium.ui.modelutil.PropertyModel; import org.chromium.ui.modelutil.PropertyModel;
...@@ -32,7 +32,7 @@ import org.chromium.ui.modelutil.PropertyModel; ...@@ -32,7 +32,7 @@ import org.chromium.ui.modelutil.PropertyModel;
* Unit tests for the {@link ProgressBarMediator} class. * Unit tests for the {@link ProgressBarMediator} class.
*/ */
@RunWith(BaseRobolectricTestRunner.class) @RunWith(BaseRobolectricTestRunner.class)
@Config(manifest = Config.NONE, shadows = {ShadowUrlUtilities.class, ShadowPostTask.class}) @Config(manifest = Config.NONE, shadows = {ShadowPostTask.class})
public class ProgressBarMediatorTest { public class ProgressBarMediatorTest {
private static final String SAMPLE_URL = "https://www.google.com/chrome"; private static final String SAMPLE_URL = "https://www.google.com/chrome";
private static final String SAMPLE_URL_SHORT = "google.com"; private static final String SAMPLE_URL_SHORT = "google.com";
...@@ -44,14 +44,7 @@ public class ProgressBarMediatorTest { ...@@ -44,14 +44,7 @@ public class ProgressBarMediatorTest {
@Before @Before
public void setUp() { public void setUp() {
ShadowUrlUtilities.setTestImpl(new ShadowUrlUtilities.TestImpl() { TouchlessUrlUtilities.setUrlForDisplayForTest(SAMPLE_URL_SHORT);
@Override
public String getDomainAndRegistry(String uri, boolean includePrivateRegistries) {
if (uri.equals(SAMPLE_URL)) return SAMPLE_URL_SHORT;
return uri;
}
});
mModel = new PropertyModel.Builder(ProgressBarProperties.ALL_KEYS).build(); mModel = new PropertyModel.Builder(ProgressBarProperties.ALL_KEYS).build();
mTabObserver = ArgumentCaptor.forClass(TabObserver.class); mTabObserver = ArgumentCaptor.forClass(TabObserver.class);
mTab = mock(Tab.class); mTab = mock(Tab.class);
...@@ -61,6 +54,11 @@ public class ProgressBarMediatorTest { ...@@ -61,6 +54,11 @@ public class ProgressBarMediatorTest {
verify(mTab).addObserver(mTabObserver.capture()); verify(mTab).addObserver(mTabObserver.capture());
} }
@After
public void tearDown() {
TouchlessUrlUtilities.setUrlForDisplayForTest(null);
}
@Test @Test
public void visibilityTest() { public void visibilityTest() {
NavigationHandle navigationHandle = mock(NavigationHandle.class); NavigationHandle navigationHandle = mock(NavigationHandle.class);
...@@ -130,9 +128,4 @@ public class ProgressBarMediatorTest { ...@@ -130,9 +128,4 @@ public class ProgressBarMediatorTest {
Assert.assertEquals(mModel.get(ProgressBarProperties.PROGRESS_FRACTION), .1, .001); Assert.assertEquals(mModel.get(ProgressBarProperties.PROGRESS_FRACTION), .1, .001);
Assert.assertEquals(mModel.get(ProgressBarProperties.URL), SAMPLE_URL_SHORT); Assert.assertEquals(mModel.get(ProgressBarProperties.URL), SAMPLE_URL_SHORT);
} }
@After
public void tearDown() {
ShadowUrlUtilities.reset();
}
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment