[Wi-Fi] Use startActivityForResult instead of startActivity to launch google help page

The startActivity API can not launch the help page.
Change to use startActivityForResult to launch.

Bug: 143784389
Test: Add learnMore_launchesHelp_shouldStartActivityForResult unit test to check if startActivityForResult be called.
Change-Id: Ia3ef82f94d4c8feb71131b44be26df74d6259805
This commit is contained in:
govenliu
2020-03-10 13:30:19 +08:00
parent e28309b2dc
commit 6794ce8233
2 changed files with 20 additions and 7 deletions

View File

@@ -15,12 +15,12 @@
*/
package com.android.settings.wifi;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isNull;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -30,11 +30,13 @@ import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
@@ -58,6 +60,8 @@ public class WifiScanningRequiredFragmentTest {
private Fragment mCallbackFragment;
@Mock
private AlertDialog.Builder mBuilder;
@Mock
private FragmentActivity mActivity;
@Before
public void setUp() {
@@ -66,6 +70,7 @@ public class WifiScanningRequiredFragmentTest {
mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
mResolver = mContext.getContentResolver();
doReturn(mActivity).when(mFragment).getActivity();
doReturn(mContext).when(mFragment).getContext();
mFragment.setTargetFragment(mCallbackFragment, 1000);
@@ -77,7 +82,7 @@ public class WifiScanningRequiredFragmentTest {
throws Settings.SettingNotFoundException {
mFragment.onClick(null, DialogInterface.BUTTON_POSITIVE);
verify(mWifiManager).setScanAlwaysAvailable(false);
verify(mWifiManager).setScanAlwaysAvailable(true);
}
@Test
@@ -89,16 +94,24 @@ public class WifiScanningRequiredFragmentTest {
@Test
public void learnMore_launchesHelpWhenIntentFound() {
Context context = mock(Context.class);
doReturn(context).when(mFragment).getContext();
doReturn("").when(context).getString(eq(R.string.help_uri_wifi_scanning_required));
doReturn("").when(mContext).getString(eq(R.string.help_uri_wifi_scanning_required));
mFragment.addButtonIfNeeded(mBuilder);
verify(mBuilder, never())
.setNeutralButton(anyInt(), nullable(DialogInterface.OnClickListener.class));
doReturn("help").when(context).getString(eq(R.string.help_uri_wifi_scanning_required));
doReturn("help").when(mContext).getString(eq(R.string.help_uri_wifi_scanning_required));
mFragment.addButtonIfNeeded(mBuilder);
verify(mBuilder, times(1))
.setNeutralButton(anyInt(), nullable(DialogInterface.OnClickListener.class));
}
@Test
public void learnMore_launchesHelp_shouldStartActivityForResult() {
doReturn(new Intent()).when(mFragment).getHelpIntent(mContext);
mFragment.addButtonIfNeeded(mBuilder);
mFragment.onClick(null, DialogInterface.BUTTON_NEUTRAL);
verify(mActivity, times(1)).startActivityForResult(any(), anyInt());
}
}