Fix NPE when sharing cards without header values

This commit is contained in:
Sylvia van Os
2020-01-09 20:16:54 +01:00
parent 2b50e503da
commit aad98ba55b
2 changed files with 47 additions and 4 deletions

View File

@@ -12,6 +12,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import java.io.InvalidObjectException;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static protect.card_locker.DBHelper.LoyaltyCardDbIds;
@@ -53,6 +54,30 @@ public class ImportURITest {
assertEquals(card.store, parsedCard.store);
}
@Test
public void ensureNoCrashOnMissingHeaderFields() throws InvalidObjectException
{
// Generate card
db.insertLoyaltyCard("store", "note", BarcodeFormat.UPC_A.toString(), LoyaltyCardDbIds.BARCODE_TYPE, null, null);
// Get card
LoyaltyCard card = db.getLoyaltyCard(1);
// Card to URI
Uri cardUri = importURIHelper.toUri(card);
// Parse URI
LoyaltyCard parsedCard = importURIHelper.parse(cardUri);
// Compare everything
assertEquals(card.barcodeType, parsedCard.barcodeType);
assertEquals(card.cardId, parsedCard.cardId);
assertEquals(card.note, parsedCard.note);
assertEquals(card.store, parsedCard.store);
assertNull(parsedCard.headerColor);
assertNull(parsedCard.headerTextColor);
}
@Test
public void failToParseInvalidUri()
{