Index: chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java |
diff --git a/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java b/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java |
index b6e5245dc114d48238124d605dfe3ec557e84df7..dc7ca80e19313807e32ee1426b257caa7b8f8a07 100644 |
--- a/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java |
+++ b/chrome/android/webapk/libs/client/junit/src/org/chromium/webapk/lib/client/WebApkValidatorTest.java |
@@ -73,7 +73,7 @@ public class WebApkValidatorTest { |
intent.addCategory(Intent.CATEGORY_BROWSABLE); |
mPackageManager.addResolveInfoForIntent(intent, newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithOneSignature( |
+ mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertEquals(WEBAPK_PACKAGE_NAME, WebApkValidator.queryWebApkPackage( |
@@ -92,7 +92,7 @@ public class WebApkValidatorTest { |
Intent intent = Intent.parseUri(URL_OF_WEBAPK, Intent.URI_INTENT_SCHEME); |
mPackageManager.addResolveInfoForIntent(intent, newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithOneSignature( |
+ mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertNull(WebApkValidator.queryWebApkPackage( |
@@ -113,7 +113,7 @@ public class WebApkValidatorTest { |
intent.addCategory(Intent.CATEGORY_BROWSABLE); |
mPackageManager.addResolveInfoForIntent(intent, newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithOneSignature( |
+ mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertNull(WebApkValidator.queryWebApkPackage( |
@@ -131,7 +131,7 @@ public class WebApkValidatorTest { |
public void testFindWebApkPackageReturnsPackageForValidWebApk() throws NameNotFoundException { |
List<ResolveInfo> infos = new ArrayList<ResolveInfo>(); |
infos.add(newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithOneSignature( |
+ mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertEquals(WEBAPK_PACKAGE_NAME, |
@@ -146,27 +146,26 @@ public class WebApkValidatorTest { |
public void testFindWebApkPackageReturnsNullForInvalidPackageName() { |
List<ResolveInfo> infos = new ArrayList<ResolveInfo>(); |
infos.add(newResolveInfo(INVALID_WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithOneSignature( |
+ mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
INVALID_WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertNull(WebApkValidator.findWebApkPackage(RuntimeEnvironment.application, infos)); |
} |
/** |
- * Tests {@link WebApkValidator.findWebApkPackage} returns the WebAPK package name if a WebAPK |
- * has multiple signatures and one matches the expected signature. |
+ * Tests {@link WebApkValidator.findWebApkPackage} returns null if a WebAPK has more than 2 |
+ * signatures, even if the second one matches the expected signature. |
*/ |
@Test |
- public void testFindWebApkPackageReturnsPackageForWebApkWithMultipleSignaturesAndOneMatched() |
+ public void testFindWebApkPackageReturnsNullForMoreThanTwoSignatures() |
throws NameNotFoundException { |
List<ResolveInfo> infos = new ArrayList<ResolveInfo>(); |
infos.add(newResolveInfo(WEBAPK_PACKAGE_NAME)); |
Signature[] signatures = new Signature[] {new Signature(SIGNATURE_1), |
- new Signature(SIGNATURE_2), new Signature(EXPECTED_SIGNATURE)}; |
+ new Signature(EXPECTED_SIGNATURE), new Signature(SIGNATURE_2)}; |
mPackageManager.addPackage(newPackageInfo(WEBAPK_PACKAGE_NAME, signatures)); |
- assertEquals(WEBAPK_PACKAGE_NAME, |
- WebApkValidator.findWebApkPackage(RuntimeEnvironment.application, infos)); |
+ assertNull(WebApkValidator.findWebApkPackage(RuntimeEnvironment.application, infos)); |
} |
/** |
@@ -200,8 +199,10 @@ public class WebApkValidatorTest { |
return packageInfo; |
} |
- private static PackageInfo newPackageInfoWithOneSignature( |
+ // The browser signature is expected to always be the second signature - the first (and any |
+ // additional ones after the second) are ignored. |
+ private static PackageInfo newPackageInfoWithBrowserSignature( |
String packageName, Signature signature) { |
- return newPackageInfo(packageName, new Signature[] {signature}); |
+ return newPackageInfo(packageName, new Signature[] {new Signature(""), signature}); |
} |
} |