Loading src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivity.java +37 −4 Original line number Diff line number Diff line Loading @@ -16,9 +16,14 @@ package com.android.settings.wifi.addappnetworks; import android.app.ActivityManager; import android.app.IActivityManager; import android.content.Intent; import android.os.Bundle; import android.os.RemoteException; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.Window; import android.view.WindowManager; Loading Loading @@ -48,12 +53,17 @@ public class AddAppNetworksActivity extends FragmentActivity { @VisibleForTesting final Bundle mBundle = new Bundle(); @VisibleForTesting IActivityManager mActivityManager = ActivityManager.getService(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings_panel); showAddNetworksFragment(); if (!showAddNetworksFragment()) { finish(); return; } getLifecycle().addObserver(new HideNonSystemOverlayMixin(this)); // Move the window to the bottom of screen, and make it take up the entire screen width. Loading @@ -67,13 +77,22 @@ public class AddAppNetworksActivity extends FragmentActivity { protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); showAddNetworksFragment(); if (!showAddNetworksFragment()) { finish(); return; } } @VisibleForTesting void showAddNetworksFragment() { protected boolean showAddNetworksFragment() { String packageName = getCallingAppPackageName(); if (TextUtils.isEmpty(packageName)) { Log.d(TAG, "Package name is null"); return false; } // TODO: Check the new intent status. mBundle.putString(KEY_CALLING_PACKAGE_NAME, getCallingPackage()); mBundle.putString(KEY_CALLING_PACKAGE_NAME, packageName); mBundle.putParcelableArrayList(Settings.EXTRA_WIFI_NETWORK_LIST, getIntent().getParcelableArrayListExtra(Settings.EXTRA_WIFI_NETWORK_LIST)); Loading @@ -86,5 +105,19 @@ public class AddAppNetworksActivity extends FragmentActivity { } else { ((AddAppNetworksFragment) fragment).createContent(mBundle); } return true; } @VisibleForTesting protected String getCallingAppPackageName() { String packageName; try { packageName = mActivityManager.getLaunchedFromPackage(getActivityToken()); } catch (RemoteException e) { Log.e(TAG, "Can not get the package from activity manager"); return null; } return packageName; } } tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java +53 −10 Original line number Diff line number Diff line Loading @@ -18,27 +18,70 @@ package com.android.settings.wifi.addappnetworks; import static com.google.common.truth.Truth.assertThat; import static org.robolectric.Shadows.shadowOf; import android.annotation.Nullable; import android.app.IActivityManager; import android.os.RemoteException; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class AddAppNetworksActivityTest { @Mock private IActivityManager mIActivityManager; private AddAppNetworksActivity mActivity; @Before public void setUp() { MockitoAnnotations.initMocks(this); mActivity = Robolectric.buildActivity(AddAppNetworksActivity.class).create().get(); mActivity.mActivityManager = mIActivityManager; } @Test public void getCallingAppPackageName_nullPackageName_returnNotNull() { fakeCallingPackage("com.android.settings"); assertThat(mActivity.getCallingAppPackageName()).isNotNull(); } @Test public void startActivity_withPackageName_bundleShouldHaveRightPackageName() { final String packageName = RuntimeEnvironment.application.getPackageName(); final AddAppNetworksActivity activity = Robolectric.buildActivity(AddAppNetworksActivity.class).create().get(); shadowOf(activity).setCallingPackage(packageName); public void getCallingAppPackageName_withPackageName_returnNull() { fakeCallingPackage(null); activity.showAddNetworksFragment(); assertThat(mActivity.getCallingAppPackageName()).isNull(); } @Test public void showAddNetworksFragment_nullPackageName_returnFalse() { fakeCallingPackage(null); assertThat(mActivity.showAddNetworksFragment()).isFalse(); } assertThat(activity.mBundle.getString(AddAppNetworksActivity.KEY_CALLING_PACKAGE_NAME)) .isEqualTo(packageName); @Test public void showAddNetworksFragment_withPackageName_returnTrue() { fakeCallingPackage("com.android.settings"); assertThat(mActivity.showAddNetworksFragment()).isTrue(); } private void fakeCallingPackage(@Nullable String packageName) { try { when(mIActivityManager.getLaunchedFromPackage(any())).thenReturn(packageName); } catch (RemoteException e) { // Do nothing. } } } Loading
src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivity.java +37 −4 Original line number Diff line number Diff line Loading @@ -16,9 +16,14 @@ package com.android.settings.wifi.addappnetworks; import android.app.ActivityManager; import android.app.IActivityManager; import android.content.Intent; import android.os.Bundle; import android.os.RemoteException; import android.provider.Settings; import android.text.TextUtils; import android.util.Log; import android.view.Gravity; import android.view.Window; import android.view.WindowManager; Loading Loading @@ -48,12 +53,17 @@ public class AddAppNetworksActivity extends FragmentActivity { @VisibleForTesting final Bundle mBundle = new Bundle(); @VisibleForTesting IActivityManager mActivityManager = ActivityManager.getService(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.settings_panel); showAddNetworksFragment(); if (!showAddNetworksFragment()) { finish(); return; } getLifecycle().addObserver(new HideNonSystemOverlayMixin(this)); // Move the window to the bottom of screen, and make it take up the entire screen width. Loading @@ -67,13 +77,22 @@ public class AddAppNetworksActivity extends FragmentActivity { protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); showAddNetworksFragment(); if (!showAddNetworksFragment()) { finish(); return; } } @VisibleForTesting void showAddNetworksFragment() { protected boolean showAddNetworksFragment() { String packageName = getCallingAppPackageName(); if (TextUtils.isEmpty(packageName)) { Log.d(TAG, "Package name is null"); return false; } // TODO: Check the new intent status. mBundle.putString(KEY_CALLING_PACKAGE_NAME, getCallingPackage()); mBundle.putString(KEY_CALLING_PACKAGE_NAME, packageName); mBundle.putParcelableArrayList(Settings.EXTRA_WIFI_NETWORK_LIST, getIntent().getParcelableArrayListExtra(Settings.EXTRA_WIFI_NETWORK_LIST)); Loading @@ -86,5 +105,19 @@ public class AddAppNetworksActivity extends FragmentActivity { } else { ((AddAppNetworksFragment) fragment).createContent(mBundle); } return true; } @VisibleForTesting protected String getCallingAppPackageName() { String packageName; try { packageName = mActivityManager.getLaunchedFromPackage(getActivityToken()); } catch (RemoteException e) { Log.e(TAG, "Can not get the package from activity manager"); return null; } return packageName; } }
tests/robotests/src/com/android/settings/wifi/addappnetworks/AddAppNetworksActivityTest.java +53 −10 Original line number Diff line number Diff line Loading @@ -18,27 +18,70 @@ package com.android.settings.wifi.addappnetworks; import static com.google.common.truth.Truth.assertThat; import static org.robolectric.Shadows.shadowOf; import android.annotation.Nullable; import android.app.IActivityManager; import android.os.RemoteException; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class AddAppNetworksActivityTest { @Mock private IActivityManager mIActivityManager; private AddAppNetworksActivity mActivity; @Before public void setUp() { MockitoAnnotations.initMocks(this); mActivity = Robolectric.buildActivity(AddAppNetworksActivity.class).create().get(); mActivity.mActivityManager = mIActivityManager; } @Test public void getCallingAppPackageName_nullPackageName_returnNotNull() { fakeCallingPackage("com.android.settings"); assertThat(mActivity.getCallingAppPackageName()).isNotNull(); } @Test public void startActivity_withPackageName_bundleShouldHaveRightPackageName() { final String packageName = RuntimeEnvironment.application.getPackageName(); final AddAppNetworksActivity activity = Robolectric.buildActivity(AddAppNetworksActivity.class).create().get(); shadowOf(activity).setCallingPackage(packageName); public void getCallingAppPackageName_withPackageName_returnNull() { fakeCallingPackage(null); activity.showAddNetworksFragment(); assertThat(mActivity.getCallingAppPackageName()).isNull(); } @Test public void showAddNetworksFragment_nullPackageName_returnFalse() { fakeCallingPackage(null); assertThat(mActivity.showAddNetworksFragment()).isFalse(); } assertThat(activity.mBundle.getString(AddAppNetworksActivity.KEY_CALLING_PACKAGE_NAME)) .isEqualTo(packageName); @Test public void showAddNetworksFragment_withPackageName_returnTrue() { fakeCallingPackage("com.android.settings"); assertThat(mActivity.showAddNetworksFragment()).isTrue(); } private void fakeCallingPackage(@Nullable String packageName) { try { when(mIActivityManager.getLaunchedFromPackage(any())).thenReturn(packageName); } catch (RemoteException e) { // Do nothing. } } }