Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4022)

Unified Diff: chrome/android/junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java

Issue 2802043002: Use web-app manifest format for Android payment apps. (Closed)
Patch Set: Address java comments. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java
index 564d708bb8182dfa472229522feb52e43f128b4b..e740947c4a5dbfb42fc0e7f714dc74119386f903 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/payments/PaymentManifestVerifierTest.java
@@ -18,7 +18,7 @@ import org.robolectric.annotation.Config;
import org.chromium.chrome.browser.payments.PaymentManifestVerifier.ManifestVerifyCallback;
import org.chromium.components.payments.PaymentManifestDownloader;
import org.chromium.components.payments.PaymentManifestParser;
-import org.chromium.payments.mojom.PaymentManifestSection;
+import org.chromium.payments.mojom.WebAppManifestSection;
import java.net.URI;
import java.net.URISyntaxException;
@@ -34,7 +34,7 @@ public class PaymentManifestVerifierTest {
private final ResolveInfo mBobPay;
private final List<ResolveInfo> mMatchingApps;
private final PaymentManifestDownloader mDownloader;
- private final PaymentManifestParser mAnyAppAllowedParser;
+ private final PaymentManifestParser mParser;
private final PackageManagerDelegate mPackageManagerDelegate;
private final ManifestVerifyCallback mCallback;
@@ -55,18 +55,42 @@ public class PaymentManifestVerifierTest {
mDownloader = new PaymentManifestDownloader(null) {
@Override
- public void download(URI uri, ManifestDownloadCallback callback) {
- callback.onManifestDownloadSuccess("some content here");
+ public void downloadPaymentMethodManifest(URI uri, ManifestDownloadCallback callback) {
+ callback.onPaymentMethodManifestDownloadSuccess("some content here");
+ }
+
+ @Override
+ public void downloadWebAppManifest(URI uri, ManifestDownloadCallback callback) {
+ callback.onWebAppManifestDownloadSuccess("some content here");
}
};
- mAnyAppAllowedParser = new PaymentManifestParser() {
+ mParser = new PaymentManifestParser() {
+ @Override
+ public void parsePaymentMethodManifest(String content, ManifestParseCallback callback) {
+ try {
+ callback.onPaymentMethodManifestParseSuccess(
+ new URI[] {new URI("https://bobpay.com/app.json")});
+ } catch (URISyntaxException e) {
+ assert false;
+ }
+ }
+
@Override
- public void parse(String content, ManifestParseCallback callback) {
- PaymentManifestSection[] manifest = new PaymentManifestSection[1];
- manifest[0] = new PaymentManifestSection();
- manifest[0].packageName = "*";
- callback.onManifestParseSuccess(manifest);
+ public void parseWebAppManifest(String content, ManifestParseCallback callback) {
+ WebAppManifestSection[] manifest = new WebAppManifestSection[1];
+ manifest[0] = new WebAppManifestSection();
+ manifest[0].id = "com.bobpay.app";
+ manifest[0].minVersion = 10;
+ // SHA256("01020304050607080900"):
+ manifest[0].fingerprints = new byte[][] {{(byte) 0x9A, (byte) 0x89, (byte) 0xC6,
+ (byte) 0x8C, (byte) 0x4C, (byte) 0x5E, (byte) 0x28, (byte) 0xB8,
+ (byte) 0xC4, (byte) 0xA5, (byte) 0x56, (byte) 0x76, (byte) 0x73,
+ (byte) 0xD4, (byte) 0x62, (byte) 0xFF, (byte) 0xF5, (byte) 0x15,
+ (byte) 0xDB, (byte) 0x46, (byte) 0x11, (byte) 0x6F, (byte) 0x99,
+ (byte) 0x00, (byte) 0x62, (byte) 0x4D, (byte) 0x09, (byte) 0xC4,
+ (byte) 0x74, (byte) 0xF5, (byte) 0x93, (byte) 0xFB}};
+ callback.onWebAppManifestParseSuccess(manifest);
}
};
@@ -90,14 +114,15 @@ public class PaymentManifestVerifierTest {
}
@Test
- public void testUnableToDownload() {
+ public void testUnableToDownloadPaymentMethodManifest() {
PaymentManifestVerifier verifier = new PaymentManifestVerifier(
mMethodName, mMatchingApps, new PaymentManifestDownloader(null) {
@Override
- public void download(URI uri, ManifestDownloadCallback callback) {
+ public void downloadPaymentMethodManifest(
+ URI uri, ManifestDownloadCallback callback) {
callback.onManifestDownloadFailure();
}
- }, mAnyAppAllowedParser, mPackageManagerDelegate, mCallback);
+ }, mParser, mPackageManagerDelegate, mCallback);
verifier.verify();
@@ -105,14 +130,20 @@ public class PaymentManifestVerifierTest {
}
@Test
- public void testUnableToParse() {
+ public void testUnableToDownloadWebAppManifest() {
PaymentManifestVerifier verifier = new PaymentManifestVerifier(
- mMethodName, mMatchingApps, mDownloader, new PaymentManifestParser() {
+ mMethodName, mMatchingApps, new PaymentManifestDownloader(null) {
@Override
- public void parse(String content, ManifestParseCallback callback) {
- callback.onManifestParseFailure();
+ public void downloadPaymentMethodManifest(
+ URI uri, ManifestDownloadCallback callback) {
+ callback.onPaymentMethodManifestDownloadSuccess("some content");
}
- }, mPackageManagerDelegate, mCallback);
+
+ @Override
+ public void downloadWebAppManifest(URI uri, ManifestDownloadCallback callback) {
+ callback.onManifestDownloadFailure();
+ }
+ }, mParser, mPackageManagerDelegate, mCallback);
verifier.verify();
@@ -120,41 +151,55 @@ public class PaymentManifestVerifierTest {
}
@Test
- public void testAnyAppAllowed() {
- PaymentManifestVerifier verifier = new PaymentManifestVerifier(mMethodName, mMatchingApps,
- mDownloader, mAnyAppAllowedParser, mPackageManagerDelegate, mCallback);
+ public void testUnableToParsePaymentMethodManifest() {
+ PaymentManifestVerifier verifier = new PaymentManifestVerifier(
+ mMethodName, mMatchingApps, mDownloader, new PaymentManifestParser() {
+ @Override
+ public void parsePaymentMethodManifest(
+ String content, ManifestParseCallback callback) {
+ callback.onManifestParseFailure();
+ }
+ }, mPackageManagerDelegate, mCallback);
verifier.verify();
- Mockito.verify(mCallback).onValidPaymentApp(mMethodName, mAlicePay);
- Mockito.verify(mCallback).onValidPaymentApp(mMethodName, mBobPay);
+ Mockito.verify(mCallback).onInvalidManifest(mMethodName);
}
@Test
- public void testBobPayAllowed() {
+ public void testUnableToParseWebAppManifest() {
PaymentManifestVerifier verifier = new PaymentManifestVerifier(
mMethodName, mMatchingApps, mDownloader, new PaymentManifestParser() {
@Override
- public void parse(String content, ManifestParseCallback callback) {
- PaymentManifestSection[] manifest = new PaymentManifestSection[1];
- manifest[0] = new PaymentManifestSection();
- manifest[0].packageName = "com.bobpay.app";
- manifest[0].version = 10;
- // SHA256("01020304050607080900"):
- manifest[0].sha256CertFingerprints = new byte[][] {{(byte) 0x9A,
- (byte) 0x89, (byte) 0xC6, (byte) 0x8C, (byte) 0x4C, (byte) 0x5E,
- (byte) 0x28, (byte) 0xB8, (byte) 0xC4, (byte) 0xA5, (byte) 0x56,
- (byte) 0x76, (byte) 0x73, (byte) 0xD4, (byte) 0x62, (byte) 0xFF,
- (byte) 0xF5, (byte) 0x15, (byte) 0xDB, (byte) 0x46, (byte) 0x11,
- (byte) 0x6F, (byte) 0x99, (byte) 0x00, (byte) 0x62, (byte) 0x4D,
- (byte) 0x09, (byte) 0xC4, (byte) 0x74, (byte) 0xF5, (byte) 0x93,
- (byte) 0xFB}};
- callback.onManifestParseSuccess(manifest);
+ public void parsePaymentMethodManifest(
+ String content, ManifestParseCallback callback) {
+ try {
+ callback.onPaymentMethodManifestParseSuccess(
+ new URI[] {new URI("https://alicepay.com/app.json")});
+ } catch (URISyntaxException e) {
+ assert false;
+ }
+ }
+
+ @Override
+ public void parseWebAppManifest(
+ String content, ManifestParseCallback callback) {
+ callback.onManifestParseFailure();
}
}, mPackageManagerDelegate, mCallback);
verifier.verify();
+ Mockito.verify(mCallback).onInvalidManifest(mMethodName);
+ }
+
+ @Test
+ public void testBobPayAllowed() {
+ PaymentManifestVerifier verifier = new PaymentManifestVerifier(mMethodName, mMatchingApps,
+ mDownloader, mParser, mPackageManagerDelegate, mCallback);
+
+ verifier.verify();
+
Mockito.verify(mCallback).onInvalidPaymentApp(mMethodName, mAlicePay);
Mockito.verify(mCallback).onValidPaymentApp(mMethodName, mBobPay);
}

Powered by Google App Engine
This is Rietveld 408576698