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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user