Merge "Fix it will auto switch back to "No data transfer" after selecting "USB Tethering"" into sc-dev am: b4dccf9b8e am: d6dbc7a944

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/15221930

Change-Id: Ie4d9b008ac21e51d99f4f5baf8c1f1bae565e09a
This commit is contained in:
TreeHugger Robot
2021-07-09 08:35:51 +00:00
committed by Automerger Merge Worker
6 changed files with 122 additions and 9 deletions

View File

@@ -98,6 +98,20 @@ public class UsbConnectionBroadcastReceiverTest {
POWER_ROLE_NONE, DATA_ROLE_NONE);
}
@Test
public void onReceive_usbConnectedNcmEnabled_invokesCallback() {
Intent intent = new Intent();
intent.setAction(UsbManager.ACTION_USB_STATE);
intent.putExtra(UsbManager.USB_CONNECTED, true);
intent.putExtra(UsbManager.USB_FUNCTION_NCM, true);
intent.putExtra(UsbManager.USB_DATA_UNLOCKED, true);
mReceiver.onReceive(mContext, intent);
verify(mListener).onUsbConnectionChanged(/* connected */ true, UsbManager.FUNCTION_NCM,
POWER_ROLE_NONE, DATA_ROLE_NONE);
}
@Test
public void onReceive_usbPortStatus_invokeCallback() {
final Intent intent = new Intent();

View File

@@ -103,6 +103,14 @@ public class UsbDefaultFragmentTest {
.isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_MIDI));
}
@Test
public void getDefaultKey_isNcm_returnsRndis() {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
assertThat(mFragment.getDefaultKey())
.isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_RNDIS));
}
@Test
public void setDefaultKey_isNone_shouldSetNone() {
mFragment.setDefaultKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_NONE));
@@ -149,6 +157,19 @@ public class UsbDefaultFragmentTest {
UsbManager.FUNCTION_MTP);
}
@Test
public void setDefaultKey_functionNcm_invokesStartTethering() {
doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
mFragment.setDefaultKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_NCM));
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
any(),
eq(mFragment.mOnStartTetheringCallback));
assertThat(mFragment.mPreviousFunctions).isEqualTo(
UsbManager.FUNCTION_MTP);
}
@Test
public void setDefaultKey_functionOther_setCurrentFunctionInvoked() {
doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
@@ -161,14 +182,24 @@ public class UsbDefaultFragmentTest {
}
@Test
public void onTetheringStarted_setDefaultUsbFunctions() {
mFragment.mPreviousFunctions = UsbManager.FUNCTION_PTP;
public void onTetheringStarted_currentFunctionsIsRndis_setsRndisAsDefaultUsbFunctions() {
mFragment.mCurrentFunctions = UsbManager.FUNCTION_RNDIS;
mFragment.mOnStartTetheringCallback.onTetheringStarted();
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_RNDIS);
}
@Test
public void onTetheringStarted_currentFunctionsIsNcm_setsNcmAsDefaultUsbFunctions() {
mFragment.mCurrentFunctions = UsbManager.FUNCTION_NCM;
mFragment.mOnStartTetheringCallback.onTetheringStarted();
verify(mUsbBackend).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
}
@Test
public void onPause_receivedRndis_shouldSetRndis() {
mFragment.mIsStartTethering = true;
@@ -229,6 +260,18 @@ public class UsbDefaultFragmentTest {
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_MIDI);
}
@Test
public void onPause_receivedNcm_setsNcm() {
mFragment.mIsStartTethering = true;
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
mFragment.onPause();
verify(mUsbBackend, times(2)).setDefaultUsbFunctions(UsbManager.FUNCTION_NCM);
assertThat(mFragment.mCurrentFunctions).isEqualTo(UsbManager.FUNCTION_NCM);
}
@Test
public void usbIsPluginAndUsbTetheringIsOn_startTetheringIsInvoked() {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);
@@ -243,6 +286,20 @@ public class UsbDefaultFragmentTest {
eq(mFragment.mOnStartTetheringCallback));
}
@Test
public void usbIsPluginAndUsbTetheringIsOn_receivedNcm_startsTethering() {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_NCM);
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ false,
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
mFragment.mUsbConnectionListener.onUsbConnectionChanged(/* connected */ true,
UsbManager.FUNCTION_NCM, POWER_ROLE_SINK, DATA_ROLE_DEVICE);
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
any(),
eq(mFragment.mOnStartTetheringCallback));
}
@Test
public void usbIsNotPluginAndUsbTetheringIsOn_startTetheringIsNotInvoked() {
when(mUsbBackend.getDefaultUsbFunctions()).thenReturn(UsbManager.FUNCTION_RNDIS);

View File

@@ -167,6 +167,19 @@ public class UsbDetailsFunctionsControllerTest {
assertThat(prefs.get(0).isChecked()).isTrue();
}
@Test
public void displayRefresh_ncmEnabled_checksSwitches() {
when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
mDetailsFunctionsController.refresh(true, UsbManager.FUNCTION_NCM, POWER_ROLE_SINK,
DATA_ROLE_DEVICE);
List<RadioButtonPreference> prefs = getRadioPreferences();
assertThat(prefs.get(1).getKey())
.isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_RNDIS));
assertThat(prefs.get(1).isChecked()).isTrue();
}
@Test
public void onClickMtp_noneEnabled_shouldEnableMtp() {
when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
@@ -253,6 +266,20 @@ public class UsbDetailsFunctionsControllerTest {
UsbManager.FUNCTION_MTP);
}
@Test
public void onRadioButtonClicked_functionNcm_startsTethering() {
mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_NCM));
doReturn(UsbManager.FUNCTION_MTP).when(mUsbBackend).getCurrentFunctions();
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
verify(mTetheringManager).startTethering(eq(TetheringManager.TETHERING_USB),
any(),
eq(mDetailsFunctionsController.mOnStartTetheringCallback));
assertThat(mDetailsFunctionsController.mPreviousFunction).isEqualTo(
UsbManager.FUNCTION_MTP);
}
@Test
public void onRadioButtonClicked_functionOther_setCurrentFunctionInvoked() {
mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_PTP));