From 896da82b139f0b848f461b923280aeeab6161745 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Wed, 11 Dec 2019 16:20:32 +0100 Subject: [PATCH] Use full .pkpass files for tests --- app/build.gradle | 5 + .../protect/card_locker/PkpassImporter.java | 8 +- .../java/protect/card_locker/PkpassTest.java | 94 +++--------------- .../protect/card_locker/Eurowings.pkpass | Bin 0 -> 26467 bytes .../card_locker/Pass-Example-Generic.pkpass | Bin 0 -> 17225 bytes 5 files changed, 26 insertions(+), 81 deletions(-) create mode 100644 app/src/test/resources/protect/card_locker/Eurowings.pkpass create mode 100644 app/src/test/resources/protect/card_locker/Pass-Example-Generic.pkpass diff --git a/app/build.gradle b/app/build.gradle index 5c5b3621a..7da19a77a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,11 @@ android { disable "MissingTranslation" disable "MissingPrefix" } + sourceSets { + test { + resources.srcDirs += ['src/test/resources'] + } + } // Starting with Android Studio 3 Robolectric is unable to find resources. // The following allows it to find the resources. diff --git a/app/src/main/java/protect/card_locker/PkpassImporter.java b/app/src/main/java/protect/card_locker/PkpassImporter.java index 60794bfb5..dbcfc13e8 100644 --- a/app/src/main/java/protect/card_locker/PkpassImporter.java +++ b/app/src/main/java/protect/card_locker/PkpassImporter.java @@ -12,6 +12,7 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; +import java.io.InputStream; import java.util.Arrays; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -30,7 +31,12 @@ public class PkpassImporter { } public LoyaltyCard fromURI(Uri uri) throws IOException, JSONException { - ZipInputStream zipInputStream = new ZipInputStream(context.getContentResolver().openInputStream(uri)); + return fromInputStream(context.getContentResolver().openInputStream(uri)); + } + + public LoyaltyCard fromInputStream(InputStream inputStream) throws IOException, JSONException + { + ZipInputStream zipInputStream = new ZipInputStream(inputStream); ZipEntry entry; diff --git a/app/src/test/java/protect/card_locker/PkpassTest.java b/app/src/test/java/protect/card_locker/PkpassTest.java index eb80babb1..3d17ae3fe 100644 --- a/app/src/test/java/protect/card_locker/PkpassTest.java +++ b/app/src/test/java/protect/card_locker/PkpassTest.java @@ -2,6 +2,7 @@ package protect.card_locker; import android.app.Activity; import android.graphics.Color; +import android.net.Uri; import com.google.zxing.BarcodeFormat; @@ -13,6 +14,12 @@ import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; +import org.robolectric.shadows.ShadowContentResolver; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; import static org.junit.Assert.assertEquals; @@ -29,84 +36,12 @@ public class PkpassTest { } @Test - public void parseGenericExample() throws JSONException + public void parseGenericExample() throws IOException, JSONException { - // Generic example from https://github.com/keefmoon/Passbook-Example-Code/blob/master/Pass-Example-Generic/Pass-Example-Generic.pkpass - JSONObject json = new JSONObject("{\n" + - " \"passTypeIdentifier\" : \"pass.keefmoon.example-generic\",\n" + - " \"formatVersion\" : 1,\n" + - " \"teamIdentifier\" : \"YAXJZJ267E\",\n" + - " \"organizationName\" : \"Passbook Example Company\",\n" + - " \"serialNumber\" : \"0000001\",\n" + - " \"description\" : \"Staff Pass for Employee Number 001\",\n" + - " \"associatedStoreIdentifiers\" : [\n" + - " \t 284971959\n" + - " ],\n" + - " \"locations\" : [\n" + - " \t{\"latitude\" : 51.50506, \"longitude\" : -0.01960, \"relevantText\" : \"Company Offices\" }\n" + - " ],\n" + - " \"foregroundColor\" : \"rgb(255, 255, 255)\",\n" + - " \"backgroundColor\" : \"rgb(90, 90, 90)\",\n" + - " \"labelColor\" : \"rgb(255, 255, 255)\",\n" + - " \"logoText\" : \"Company Staff ID\",\n" + - " \"barcode\" : {\n" + - " \t\t\"format\" : \"PKBarcodeFormatQR\",\n" + - " \t\t\"message\" : \"0000001\",\n" + - " \t\t\"messageEncoding\" : \"iso-8859-1\",\n" + - " \t\t\"altText\" : \"Staff ID 0000001\"\n" + - " },\n" + - " \"generic\" : {\n" + - " \t\"headerFields\" : [\n" + - " \t\t{\n" + - " \t\t\t\"key\" : \"staffNumber\",\n" + - " \t\"label\" : \"Staff Number\",\n" + - " \t\"value\" : \"001\"\n" + - " \t\t}\n" + - " \t],\n" + - " \"primaryFields\" : [\n" + - " {\n" + - " \"key\" : \"staffName\",\n" + - " \"label\" : \"Name\",\n" + - " \"value\" : \"Peter Brooke\"\n" + - " }\n" + - " ],\n" + - " \"secondaryFields\" : [\n" + - " {\n" + - " \"key\" : \"telephoneExt\",\n" + - " \"label\" : \"Extension\",\n" + - " \"value\" : \"9779\"\n" + - " },\n" + - " {\n" + - " \"key\" : \"jobTitle\",\n" + - " \"label\" : \"Job Title\",\n" + - " \"value\" : \"Chief Pass Creator\"\n" + - " }\n" + - " ],\n" + - " \"auxiliaryFields\" : [\n" + - " {\n" + - " \"key\" : \"expiryDate\",\n" + - " \"dateStyle\" : \"PKDateStyleShort\",\n" + - " \"label\" : \"Expiry Date\",\n" + - " \"value\" : \"2013-12-31T00:00-23:59\"\n" + - " }\n" + - " ],\n" + - " \"backFields\" : [\n" + - " {\n" + - " \"key\" : \"managersName\",\n" + - " \"label\" : \"Manager's Name\",\n" + - " \"value\" : \"Paul Bailey\"\n" + - " },\n" + - " {\n" + - " \"key\" : \"managersExt\",\n" + - " \"label\" : \"Manager's Extension\",\n" + - " \"value\" : \"9673\"\n" + - " }\n" + - " ]\n" + - " }\n" + - "}"); + // https://github.com/keefmoon/Passbook-Example-Code/blob/master/Pass-Example-Generic/Pass-Example-Generic.pkpass + InputStream inputStream = getClass().getResourceAsStream("Pass-Example-Generic.pkpass"); - // Parse Pkpass JSON - LoyaltyCard card = pkpassImporter.fromPassJSON(json); + LoyaltyCard card = pkpassImporter.fromInputStream(inputStream); // Compare everything assertEquals(BarcodeFormat.QR_CODE.name(), card.barcodeType); @@ -118,13 +53,12 @@ public class PkpassTest { } @Test - public void parseEurowingsTicket() throws JSONException + public void parseEurowingsTicket() throws IOException, JSONException { // https://github.com/brarcher/loyalty-card-locker/issues/309#issuecomment-563465333 - JSONObject json = new JSONObject("{\"description\":\"Eurowings Boarding Pass\",\"formatVersion\":1,\"organizationName\":\"EUROWINGS\",\"passTypeIdentifier\":\"pass.wings.boardingpass\",\"serialNumber\":\"quUBzi53bVIzpO2R15jEzRdG54Pb4qPbggEXZT7XKWx6AN%2bg8nfShLvh9teneKWV\",\"teamIdentifier\":\"M2DAP2XTGE\",\"authenticationToken\":\"d5828a30d7644eeffa9e900ac91ac6ec\",\"webServiceURL\":\"https://mobile.eurowings.com/booking/scripts/Passbook/PassbookPassGenerator.aspx?\",\"relevantDate\":\"2019-09-08T05:00+02:00\",\"backgroundColor\":\"#FFFFFF\",\"foregroundColor\":\"#333333\",\"labelColor\":\"#AA0061\",\"boardingPass\":{\"transitType\":\"PKTransitTypeAir\",\"headerFields\":[{\"key\":\"gate\",\"label\":\"gate_str\",\"value\":\"B61\"},{\"key\":\"seat\",\"label\":\"seat_str\",\"value\":\"16E\"}],\"primaryFields\":[{\"key\":\"origin\",\"label\":\"Cologne-Bonn\",\"value\":\"CGN\"},{\"key\":\"destination\",\"label\":\"Dubrovnik\",\"value\":\"DBV\"}],\"secondaryFields\":[{\"key\":\"name\",\"label\":\"name_str\",\"value\":\"John Doe\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"status\",\"label\":\"status_str\",\"value\":\"-\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"boardinggroup\",\"label\":\"boardinggroup_str\",\"value\":\"GROUP 1\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"tarif\",\"label\":\"fare_str\",\"value\":\"SMART\",\"textAlignment\":\"PKTextAlignmentLeft\"}],\"auxiliaryFields\":[{\"key\":\"flightNumber\",\"label\":\"flight_str\",\"value\":\"EW 954\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"departureDate\",\"label\":\"date_str\",\"value\":\"08/09/2019\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"boarding\",\"label\":\"boarding_str\",\"value\":\"05:00\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"closure\",\"label\":\"closure_str\",\"value\":\"05:15\",\"textAlignment\":\"PKTextAlignmentLeft\"}],\"backFields\":[{\"key\":\"info\",\"label\":\"\",\"value\":\"info_content_str\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"recordlocator\",\"label\":\"recordlocator_str\",\"value\":\"JBZPPP\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"sequence\",\"label\":\"sequence_str\",\"value\":\"73\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"notice\",\"label\":\"notice_str\",\"value\":\"notice_content_str\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"baggage\",\"label\":\"baggage_str\",\"value\":\"baggage_content_str\",\"textAlignment\":\"PKTextAlignmentLeft\"},{\"key\":\"contact\",\"label\":\"contact_str\",\"value\":\"contact_content_str\",\"textAlignment\":\"PKTextAlignmentLeft\"}]},\"barcode\":{\"format\":\"PKBarcodeFormatAztec\",\"message\":\"M1DOE/JOHN JBZPPP CGNDBVEW 0954 251A016E0073 148>5181W 9250BEW 00000000000002A0000000000000 0 N\",\"messageEncoding\":\"iso-8859-1\"}}"); + InputStream inputStream = getClass().getResourceAsStream("Eurowings.pkpass"); - // Parse Pkpass JSON - LoyaltyCard card = pkpassImporter.fromPassJSON(json); + LoyaltyCard card = pkpassImporter.fromInputStream(inputStream); // Compare everything assertEquals(BarcodeFormat.AZTEC.name(), card.barcodeType); diff --git a/app/src/test/resources/protect/card_locker/Eurowings.pkpass b/app/src/test/resources/protect/card_locker/Eurowings.pkpass new file mode 100644 index 0000000000000000000000000000000000000000..f89687c47174cdca5726b052bb6af0b2c0752bb9 GIT binary patch literal 26467 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

rhX7MHJ^MJ5 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 g0{7?2{6|-zk}Twh^alZf`*@;&gMg5K{