Commit b7124f48 authored by Gang Wu's avatar Gang Wu Committed by Commit Bot

[duet] Fix restart twice to get duet after the first run experience.

Bug: 1011063
Change-Id: I0d8c46f3e5556a044814ae30f876e83a44e2e575
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1896250Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Reviewed-by: default avatarMatthew Jones <mdjones@chromium.org>
Commit-Queue: Gang Wu <gangwu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#713014}
parent a092a99c
...@@ -18,6 +18,7 @@ import org.chromium.base.Log; ...@@ -18,6 +18,7 @@ import org.chromium.base.Log;
import org.chromium.base.VisibleForTesting; import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.browser.ChromeSwitches; import org.chromium.chrome.browser.ChromeSwitches;
import org.chromium.chrome.browser.IntentHandler; import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.flags.FeatureUtilities;
import org.chromium.chrome.browser.locale.LocaleManager; import org.chromium.chrome.browser.locale.LocaleManager;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.preferences.PrefServiceBridge;
...@@ -207,6 +208,11 @@ public abstract class FirstRunFlowSequencer { ...@@ -207,6 +208,11 @@ public abstract class FirstRunFlowSequencer {
FirstRunActivity.SHOW_DATA_REDUCTION_PAGE, shouldShowDataReductionPage()); FirstRunActivity.SHOW_DATA_REDUCTION_PAGE, shouldShowDataReductionPage());
freProperties.putBoolean( freProperties.putBoolean(
FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage()); FirstRunActivity.SHOW_SEARCH_ENGINE_PAGE, shouldShowSearchEnginePage());
// Cache the flag for the bottom toolbar. If the flag is not cached here, Users, who are in
// bottom toolbar experiment group, will see toolbar on the top in first run, and then
// toolbar will appear to the bottom on the second run.
FeatureUtilities.cacheBottomToolbarEnabled();
} }
/** /**
......
...@@ -24,10 +24,14 @@ import org.robolectric.shadows.multidex.ShadowMultiDex; ...@@ -24,10 +24,14 @@ import org.robolectric.shadows.multidex.ShadowMultiDex;
import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.base.test.util.Feature; import org.chromium.base.test.util.Feature;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.flags.FeatureUtilities;
import org.chromium.components.signin.ChildAccountStatus; import org.chromium.components.signin.ChildAccountStatus;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Tests FirstRunFlowSequencer which contains the core logic of what should be shown during the * Tests FirstRunFlowSequencer which contains the core logic of what should be shown during the
...@@ -133,6 +137,7 @@ public class FirstRunFlowSequencerTest { ...@@ -133,6 +137,7 @@ public class FirstRunFlowSequencerTest {
public void setUp() { public void setUp() {
mActivityController = Robolectric.buildActivity(Activity.class); mActivityController = Robolectric.buildActivity(Activity.class);
mSequencer = new TestFirstRunFlowSequencer(mActivityController.setup().get()); mSequencer = new TestFirstRunFlowSequencer(mActivityController.setup().get());
setupFeatureList();
} }
@After @After
...@@ -140,6 +145,15 @@ public class FirstRunFlowSequencerTest { ...@@ -140,6 +145,15 @@ public class FirstRunFlowSequencerTest {
mActivityController.pause().stop().destroy(); mActivityController.pause().stop().destroy();
} }
// We need to initialize ChromeFeatureList here, otherwise test will crash/assert during
// FirstRunFlowSequencer::onNativeInitialized.
// TODO(crbug.com/1021705): Remove this method after duet fully launched.
private void setupFeatureList() {
Map<String, Boolean> featureList = new HashMap<>();
featureList.put(ChromeFeatureList.CHROME_DUET, true);
ChromeFeatureList.setTestFeatures(featureList);
}
@Test @Test
@Feature({"FirstRun"}) @Feature({"FirstRun"})
public void testFirstRunComplete() { public void testFirstRunComplete() {
...@@ -276,4 +290,22 @@ public class FirstRunFlowSequencerTest { ...@@ -276,4 +290,22 @@ public class FirstRunFlowSequencerTest {
bundle.getInt(SigninFirstRunFragment.CHILD_ACCOUNT_STATUS)); bundle.getInt(SigninFirstRunFragment.CHILD_ACCOUNT_STATUS));
assertEquals(5, bundle.size()); assertEquals(5, bundle.size());
} }
@Test
@Feature({"FirstRun"})
public void testBottomToolbarEnabledAfterFirstRun() {
mSequencer.isFirstRunFlowComplete = false;
mSequencer.isSignedIn = false;
mSequencer.isSyncAllowed = true;
mSequencer.googleAccounts = Collections.emptyList();
mSequencer.hasAnyUserSeenToS = false;
mSequencer.shouldSkipFirstUseHints = false;
mSequencer.shouldShowDataReductionPage = false;
mSequencer.initializeSharedState(
false /* androidEduDevice */, ChildAccountStatus.NOT_CHILD);
mSequencer.processFreEnvironmentPreNative();
assertTrue(FeatureUtilities.isBottomToolbarEnabled());
}
} }
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