Commit 66b4d36c authored by Wenyu Fu's avatar Wenyu Fu Committed by Commit Bot

Use static test switch for HomepageSettings + Duet tests

Using this static setter to stabilize the test conditions we want.
Enabling duet feature flag does not necessary mean we enables the
bottom toolbar & home button variance (as it checks some other
conditions)

Also change the base junit runner to get benefits for chrome specific
test settings.

A simple fix addressing missing of managed label in pre-conversion
HomepageSettings.

Bug: 1051213, 1057873, 1059311
Change-Id: I9d296c587f5d3c328273fd1883397b2ac5fa22a9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2090199
Commit-Queue: Wenyu Fu <wenyufu@chromium.org>
Reviewed-by: default avatarTheresa  <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#747843}
parent 0962645d
......@@ -48,6 +48,8 @@ public class HomepageSettings extends PreferenceFragmentCompat {
}
}
private static boolean sIsHomeButtonOnBottomToolbar;
private HomepageManager mHomepageManager;
private Preference mHomepageEdit;
private RadioButtonGroupHomepagePreference mRadioButtons;
......@@ -75,7 +77,7 @@ public class HomepageSettings extends PreferenceFragmentCompat {
setupPreferenceVisibility();
// Set up listeners and update the page.
if (BottomToolbarVariationManager.isHomeButtonOnBottom()) {
if (isHomeButtonOnBottomToolbar()) {
homepageSwitch.setVisible(false);
} else {
boolean isHomepageEnabled = HomepageManager.isHomepageEnabled();
......@@ -111,8 +113,6 @@ public class HomepageSettings extends PreferenceFragmentCompat {
mHomepageEdit.setVisible(!useNewUI);
mRadioButtons.setVisible(useNewUI);
mTextManaged.setVisible(useNewUI && BottomToolbarVariationManager.isHomeButtonOnBottom()
&& HomepagePolicyManager.isHomepageManagedByPolicy());
}
/**
......@@ -120,11 +120,9 @@ public class HomepageSettings extends PreferenceFragmentCompat {
*/
private void updatePreferenceState() {
boolean isManagedByPolicy = HomepagePolicyManager.isHomepageManagedByPolicy();
mTextManaged.setVisible(isManagedByPolicy && isHomeButtonOnBottomToolbar());
if (isHomepageSettingsUIConversionEnabled()) {
mTextManaged.setVisible(
isManagedByPolicy && BottomToolbarVariationManager.isHomeButtonOnBottom());
if (mRadioButtons != null) {
mRadioButtons.setupPreferenceValues(createPreferenceValuesForRadioGroup());
}
......@@ -138,6 +136,15 @@ public class HomepageSettings extends PreferenceFragmentCompat {
return ChromeFeatureList.isEnabled(ChromeFeatureList.HOMEPAGE_SETTINGS_UI_CONVERSION);
}
private boolean isHomeButtonOnBottomToolbar() {
return sIsHomeButtonOnBottomToolbar || BottomToolbarVariationManager.isHomeButtonOnBottom();
}
@VisibleForTesting
public static void setIsHomeButtonOnBottomToolbar(boolean isOnBottom) {
sIsHomeButtonOnBottomToolbar = isOnBottom;
}
@Override
public void onResume() {
super.onResume();
......
......@@ -17,7 +17,6 @@ import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.test.BaseJUnit4ClassRunner;
import org.chromium.base.test.util.Feature;
import org.chromium.base.test.util.Restriction;
import org.chromium.chrome.browser.ChromeActivity;
......@@ -30,8 +29,8 @@ import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza
import org.chromium.chrome.browser.settings.ChromeSwitchPreference;
import org.chromium.chrome.browser.settings.SettingsActivity;
import org.chromium.chrome.browser.settings.TextMessagePreference;
import org.chromium.chrome.browser.toolbar.bottom.BottomToolbarConfiguration;
import org.chromium.chrome.test.ChromeActivityTestRule;
import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
import org.chromium.chrome.test.util.browser.Features;
import org.chromium.components.browser_ui.widget.RadioButtonWithDescription;
import org.chromium.components.browser_ui.widget.RadioButtonWithEditText;
......@@ -52,7 +51,7 @@ import org.chromium.ui.test.util.UiRestriction;
* org.chromium.chrome.browser.partnercustomizations.PartnerHomepageIntegrationTest} and {@link
* org.chromium.chrome.browser.homepage.HomepagePolicyIntegrationTest}.
*/
@RunWith(BaseJUnit4ClassRunner.class)
@RunWith(ChromeJUnit4ClassRunner.class)
// clang-format off
@Features.EnableFeatures(ChromeFeatureList.HOMEPAGE_SETTINGS_UI_CONVERSION)
@Features.DisableFeatures(ChromeFeatureList.CHROME_DUET)
......@@ -166,14 +165,12 @@ public class HomepageSettingsFragmentTest {
@Test
@SmallTest
@Feature({"Homepage"})
@Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
@Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
public void testStartUp_ChromeNTP_BottomToolbar() {
mHomepageTestRule.useCustomizedHomepageForTest(TEST_URL_BAR);
mHomepageTestRule.useChromeNTPForTest();
CachedFeatureFlags.setForTesting(ChromeFeatureList.CHROME_DUET, true);
Assert.assertTrue("BottomToolbar should be enabled after setting up feature flag.",
BottomToolbarConfiguration.isBottomToolbarEnabled());
HomepageSettings.setIsHomeButtonOnBottomToolbar(true);
launchSettingsActivity();
......@@ -189,7 +186,7 @@ public class HomepageSettingsFragmentTest {
Assert.assertEquals(ASSERT_MESSAGE_EDIT_TEXT, TEST_URL_BAR,
mCustomUriRadioButton.getPrimaryText().toString());
CachedFeatureFlags.setForTesting(ChromeFeatureList.CHROME_DUET, false);
HomepageSettings.setIsHomeButtonOnBottomToolbar(false);
}
@Test
......@@ -281,15 +278,13 @@ public class HomepageSettingsFragmentTest {
@Test
@SmallTest
@Feature({"Homepage"})
@Restriction({UiRestriction.RESTRICTION_TYPE_PHONE})
@Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
public void testStartUp_Policies_Customized_BottomToolbar() {
// Set mock policies
CachedFeatureFlags.setForTesting(ChromeFeatureList.HOMEPAGE_LOCATION_POLICY, true);
mHomepageTestRule.setHomepagePolicyForTest(TEST_URL_BAR);
CachedFeatureFlags.setForTesting(ChromeFeatureList.CHROME_DUET, true);
Assert.assertTrue("BottomToolbar should be enabled after setting up feature flag.",
BottomToolbarConfiguration.isBottomToolbarEnabled());
HomepageSettings.setIsHomeButtonOnBottomToolbar(true);
launchSettingsActivity();
......@@ -313,7 +308,7 @@ public class HomepageSettingsFragmentTest {
// Reset policy
CachedFeatureFlags.setForTesting(ChromeFeatureList.HOMEPAGE_LOCATION_POLICY, null);
CachedFeatureFlags.setForTesting(ChromeFeatureList.CHROME_DUET, null);
HomepageSettings.setIsHomeButtonOnBottomToolbar(false);
}
@Test
......
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