@Test public void onCompleteCardNumber_whenValid_shiftsFocusToExpiryDate() { mCardMultilineWidget.setCardInputListener(mFullCardListener); mNoZipCardMultilineWidget.setCardInputListener(mNoZipCardListener); mFullGroup.cardNumberEditText.setText(VALID_VISA_WITH_SPACES); verify(mFullCardListener, times(1)).onCardComplete(); verify(mFullCardListener, times(1)).onFocusChange(FOCUS_EXPIRY); assertTrue(mFullGroup.expiryDateEditText.hasFocus()); mNoZipGroup.cardNumberEditText.setText(VALID_AMEX_WITH_SPACES); verify(mNoZipCardListener, times(1)).onCardComplete(); verify(mNoZipCardListener, times(1)).onFocusChange(FOCUS_EXPIRY); assertTrue(mNoZipGroup.expiryDateEditText.hasFocus()); }
/** * Clear all text fields in the CardInputWidget. */ public void clear() { if (mCardNumberEditText.hasFocus() || mExpiryDateEditText.hasFocus() || mCvcNumberEditText.hasFocus() || this.hasFocus()) { mCardNumberEditText.requestFocus(); } mCvcNumberEditText.setText(""); mExpiryDateEditText.setText(""); mCardNumberEditText.setText(""); }
@Test public void deleteWhenEmpty_fromExpiry_shiftsToCardNumber() { mCardMultilineWidget.setCardInputListener(mFullCardListener); mNoZipCardMultilineWidget.setCardInputListener(mNoZipCardListener); String deleteOneCharacterString = VALID_VISA_WITH_SPACES .substring(0, VALID_VISA_WITH_SPACES.length() - 1); mFullGroup.cardNumberEditText.setText(VALID_VISA_WITH_SPACES); reset(mFullCardListener); assertTrue(mFullGroup.expiryDateEditText.hasFocus()); ViewTestUtils.sendDeleteKeyEvent(mFullGroup.expiryDateEditText); verify(mFullCardListener, times(1)).onFocusChange(FOCUS_CARD); assertTrue(mFullGroup.cardNumberEditText.hasFocus()); assertEquals(deleteOneCharacterString, mFullGroup.cardNumberEditText.getText().toString()); mNoZipGroup.cardNumberEditText.setText(VALID_VISA_WITH_SPACES); reset(mNoZipCardListener); assertTrue(mNoZipGroup.expiryDateEditText.hasFocus()); ViewTestUtils.sendDeleteKeyEvent(mNoZipGroup.expiryDateEditText); verify(mNoZipCardListener, times(1)).onFocusChange(FOCUS_CARD); assertTrue(mNoZipGroup.cardNumberEditText.hasFocus()); assertEquals(deleteOneCharacterString, mNoZipGroup.cardNumberEditText.getText().toString()); }
@Test public void deleteWhenEmpty_fromCvc_shiftsToExpiry() { mCardMultilineWidget.setCardInputListener(mFullCardListener); mNoZipCardMultilineWidget.setCardInputListener(mNoZipCardListener); mFullGroup.expiryDateEditText.append("12"); mFullGroup.expiryDateEditText.append("50"); reset(mFullCardListener); assertTrue(mFullGroup.cvcEditText.hasFocus()); ViewTestUtils.sendDeleteKeyEvent(mFullGroup.cvcEditText); verify(mFullCardListener, times(1)).onFocusChange(FOCUS_EXPIRY); assertTrue(mFullGroup.expiryDateEditText.hasFocus()); assertEquals("12/5", mFullGroup.expiryDateEditText.getText().toString()); mNoZipGroup.expiryDateEditText.append("12"); mNoZipGroup.expiryDateEditText.append("50"); reset(mNoZipCardListener); assertTrue(mNoZipGroup.cvcEditText.hasFocus()); ViewTestUtils.sendDeleteKeyEvent(mNoZipGroup.cvcEditText); verify(mNoZipCardListener, times(1)).onFocusChange(FOCUS_EXPIRY); assertTrue(mNoZipGroup.expiryDateEditText.hasFocus()); assertEquals("12/5", mNoZipGroup.expiryDateEditText.getText().toString()); }