Merge "Fix rotation bug in Bluetooth pairing PIN dialog" into oc-mr1-dev am: 53a77a2452

am: 811b25ac2b

Change-Id: Ifa726d167f3e352f0993aa12f4d3c11089ae03f8
This commit is contained in:
Antony Sargent
2017-08-17 07:15:24 +00:00
committed by android-build-merger
2 changed files with 53 additions and 1 deletions

View File

@@ -28,6 +28,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.text.SpannableStringBuilder;
import android.text.TextUtils;
@@ -47,6 +48,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.FragmentTestUtil;
@@ -412,6 +414,39 @@ public class BluetoothPairingDialogTest {
verify(dialogActivity, times(1)).dismiss();
}
@Test
public void rotateDialog_nullPinText_okButtonEnabled() {
userEntryDialogExistingTextTest(null);
}
@Test
public void rotateDialog_emptyPinText_okButtonEnabled() {
userEntryDialogExistingTextTest("");
}
@Test
public void rotateDialog_nonEmptyPinText_okButtonEnabled() {
userEntryDialogExistingTextTest("test");
}
// Runs a test simulating the user entry dialog type in a situation like device rotation, where
// the dialog fragment gets created and we already have some existing text entered into the
// pin field.
private void userEntryDialogExistingTextTest(CharSequence existingText) {
when(controller.getDialogType()).thenReturn(BluetoothPairingController.USER_ENTRY_DIALOG);
when(controller.getDeviceVariantMessageHintId())
.thenReturn(BluetoothPairingController.INVALID_DIALOG_TYPE);
when(controller.getDeviceVariantMessageId())
.thenReturn(BluetoothPairingController.INVALID_DIALOG_TYPE);
BluetoothPairingDialogFragment fragment = spy(new BluetoothPairingDialogFragment());
when(fragment.getPairingViewText()).thenReturn(existingText);
setupFragment(fragment);
AlertDialog dialog = ShadowAlertDialog.getLatestAlertDialog();
boolean expected = !TextUtils.isEmpty(existingText);
assertThat(dialog.getButton(Dialog.BUTTON_POSITIVE).isEnabled()).isEqualTo(expected);
}
private void setupFragment(BluetoothPairingDialogFragment frag) {
assertThat(frag.isPairingControllerSet()).isFalse();
frag.setPairingController(controller);