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 dc7ca80e19313807e32ee1426b257caa7b8f8a07..b6e5245dc114d48238124d605dfe3ec557e84df7 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 @@ |
intent.addCategory(Intent.CATEGORY_BROWSABLE); |
mPackageManager.addResolveInfoForIntent(intent, newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
+ mPackageManager.addPackage(newPackageInfoWithOneSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertEquals(WEBAPK_PACKAGE_NAME, WebApkValidator.queryWebApkPackage( |
@@ -92,7 +92,7 @@ |
Intent intent = Intent.parseUri(URL_OF_WEBAPK, Intent.URI_INTENT_SCHEME); |
mPackageManager.addResolveInfoForIntent(intent, newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
+ mPackageManager.addPackage(newPackageInfoWithOneSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertNull(WebApkValidator.queryWebApkPackage( |
@@ -113,7 +113,7 @@ |
intent.addCategory(Intent.CATEGORY_BROWSABLE); |
mPackageManager.addResolveInfoForIntent(intent, newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
+ mPackageManager.addPackage(newPackageInfoWithOneSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertNull(WebApkValidator.queryWebApkPackage( |
@@ -131,7 +131,7 @@ |
public void testFindWebApkPackageReturnsPackageForValidWebApk() throws NameNotFoundException { |
List<ResolveInfo> infos = new ArrayList<ResolveInfo>(); |
infos.add(newResolveInfo(WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
+ mPackageManager.addPackage(newPackageInfoWithOneSignature( |
WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertEquals(WEBAPK_PACKAGE_NAME, |
@@ -146,26 +146,27 @@ |
public void testFindWebApkPackageReturnsNullForInvalidPackageName() { |
List<ResolveInfo> infos = new ArrayList<ResolveInfo>(); |
infos.add(newResolveInfo(INVALID_WEBAPK_PACKAGE_NAME)); |
- mPackageManager.addPackage(newPackageInfoWithBrowserSignature( |
+ mPackageManager.addPackage(newPackageInfoWithOneSignature( |
INVALID_WEBAPK_PACKAGE_NAME, new Signature(EXPECTED_SIGNATURE))); |
assertNull(WebApkValidator.findWebApkPackage(RuntimeEnvironment.application, infos)); |
} |
/** |
- * 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 testFindWebApkPackageReturnsNullForMoreThanTwoSignatures() |
+ * Tests {@link WebApkValidator.findWebApkPackage} returns the WebAPK package name if a WebAPK |
+ * has multiple signatures and one matches the expected signature. |
+ */ |
+ @Test |
+ public void testFindWebApkPackageReturnsPackageForWebApkWithMultipleSignaturesAndOneMatched() |
throws NameNotFoundException { |
List<ResolveInfo> infos = new ArrayList<ResolveInfo>(); |
infos.add(newResolveInfo(WEBAPK_PACKAGE_NAME)); |
Signature[] signatures = new Signature[] {new Signature(SIGNATURE_1), |
- new Signature(EXPECTED_SIGNATURE), new Signature(SIGNATURE_2)}; |
+ new Signature(SIGNATURE_2), new Signature(EXPECTED_SIGNATURE)}; |
mPackageManager.addPackage(newPackageInfo(WEBAPK_PACKAGE_NAME, signatures)); |
- assertNull(WebApkValidator.findWebApkPackage(RuntimeEnvironment.application, infos)); |
+ assertEquals(WEBAPK_PACKAGE_NAME, |
+ WebApkValidator.findWebApkPackage(RuntimeEnvironment.application, infos)); |
} |
/** |
@@ -199,10 +200,8 @@ |
return packageInfo; |
} |
- // 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( |
+ private static PackageInfo newPackageInfoWithOneSignature( |
String packageName, Signature signature) { |
- return newPackageInfo(packageName, new Signature[] {new Signature(""), signature}); |
+ return newPackageInfo(packageName, new Signature[] {signature}); |
} |
} |