| Index: chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| diff --git a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| index ab0c269b38c8a4b942c9bf8d7b1a2287c8e5a6ec..6e4a4e04b15fb73fe8d1eca88437d05ae3829be7 100644
|
| --- a/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| +++ b/chrome/android/shell/java/src/org/chromium/chrome/shell/ChromeShellActivity.java
|
| @@ -49,26 +49,46 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| /**
|
| * Factory used to set up a mock ActivityWindowAndroid for testing.
|
| */
|
| - public interface WindowAndroidFactoryForTest {
|
| + public interface ActivityWindowAndroidFactory {
|
| /**
|
| * @return ActivityWindowAndroid for the given activity.
|
| */
|
| public ActivityWindowAndroid getActivityWindowAndroid(Activity activity);
|
| }
|
|
|
| - private static WindowAndroidFactoryForTest sWindowAndroidFactory =
|
| - new WindowAndroidFactoryForTest() {
|
| + private static ActivityWindowAndroidFactory sWindowAndroidFactory =
|
| + new ActivityWindowAndroidFactory() {
|
| @Override
|
| public ActivityWindowAndroid getActivityWindowAndroid(Activity activity) {
|
| return new ActivityWindowAndroid(activity);
|
| }
|
| };
|
| +
|
| private WindowAndroid mWindow;
|
| private TabManager mTabManager;
|
| private DevToolsServer mDevToolsServer;
|
| private SyncController mSyncController;
|
| private PrintingController mPrintingController;
|
|
|
| + /**
|
| + * Factory used to set up a mock AppMenuHandler for testing.
|
| + */
|
| + public interface AppMenuHandlerFactory {
|
| + /**
|
| + * @return AppMenuHandler for the given activity and menu resource id.
|
| + */
|
| + public AppMenuHandler getAppMenuHandler(Activity activity,
|
| + AppMenuPropertiesDelegate delegate, int menuResourceId);
|
| + }
|
| +
|
| + private static AppMenuHandlerFactory sAppMenuHandlerFactory =
|
| + new AppMenuHandlerFactory() {
|
| + @Override
|
| + public AppMenuHandler getAppMenuHandler(Activity activity,
|
| + AppMenuPropertiesDelegate delegate, int menuResourceId) {
|
| + return new AppMenuHandler(activity, delegate, menuResourceId);
|
| + }
|
| + };
|
| private AppMenuHandler mAppMenuHandler;
|
|
|
| @Override
|
| @@ -117,7 +137,7 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| mTabManager.setStartupUrl(startupUrl);
|
| }
|
| ChromeShellToolbar mToolbar = (ChromeShellToolbar) findViewById(R.id.toolbar);
|
| - mAppMenuHandler = new AppMenuHandler(this, this, R.menu.main_menu);
|
| + mAppMenuHandler = sAppMenuHandlerFactory.getAppMenuHandler(this, this, R.menu.main_menu);
|
| mToolbar.setMenuHandler(mAppMenuHandler);
|
|
|
| mDevToolsServer = new DevToolsServer("chrome_shell");
|
| @@ -315,6 +335,11 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| menu.setGroupVisible(R.id.MAIN_MENU, true);
|
| }
|
|
|
| + @VisibleForTesting
|
| + public AppMenuHandler getAppMenuHandler() {
|
| + return mAppMenuHandler;
|
| + }
|
| +
|
| @Override
|
| public boolean shouldShowIconRow() {
|
| return true;
|
| @@ -335,7 +360,12 @@ public class ChromeShellActivity extends Activity implements AppMenuPropertiesDe
|
| }
|
|
|
| @VisibleForTesting
|
| - public static void setActivityWindowAndroidFactory(WindowAndroidFactoryForTest factory) {
|
| + public static void setActivityWindowAndroidFactory(ActivityWindowAndroidFactory factory) {
|
| sWindowAndroidFactory = factory;
|
| }
|
| +
|
| + @VisibleForTesting
|
| + public static void setAppMenuHandlerFactory(AppMenuHandlerFactory factory) {
|
| + sAppMenuHandlerFactory = factory;
|
| + }
|
| }
|
|
|