Chromium Code Reviews| Index: chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java |
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java |
| index 1f6480ffcaabcd9ffc4df66adf6589ed1347414f..bb9a00a123fa5084a41cd943f7fcc1465b772d8c 100644 |
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java |
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorFetcherTest.java |
| @@ -45,17 +45,29 @@ public class ManifestUpgradeDetectorFetcherTest extends ChromeTabbedActivityTest |
| // callback is called. |
| private static class CallbackWaiter |
| extends CallbackHelper implements ManifestUpgradeDetectorFetcher.Callback { |
| + private boolean mIsWebApkCompatible; |
| private String mName; |
| @Override |
| public void onGotManifestData(String startUrl, String scopeUrl, String name, |
| - String shortName, String iconUrl, long iconMurmur2Hash, Bitmap iconBitmap, |
| + String shortName, String iconUrl, String iconMurmur2Hash, Bitmap iconBitmap, |
| int displayMode, int orientation, long themeColor, long backgroundColor) { |
| assertNull(mName); |
| mName = name; |
| + mIsWebApkCompatible = true; |
| notifyCalled(); |
| } |
| + @Override |
| + public void onGotNonWebApkCompatibleManifest() { |
| + mIsWebApkCompatible = false; |
| + notifyCalled(); |
| + } |
| + |
| + public boolean isWebApkCompatible() { |
| + return mIsWebApkCompatible; |
| + } |
| + |
| public String name() { |
| return mName; |
| } |
| @@ -112,6 +124,7 @@ public class ManifestUpgradeDetectorFetcherTest extends ChromeTabbedActivityTest |
| waiter.waitForCallback(0); |
| assertEquals(WEB_MANIFEST_NAME1, waiter.name()); |
| + assertTrue(waiter.isWebApkCompatible()); |
| } |
| /** |
| @@ -132,5 +145,44 @@ public class ManifestUpgradeDetectorFetcherTest extends ChromeTabbedActivityTest |
| waiter.waitForCallback(0); |
| assertEquals(WEB_MANIFEST_NAME2, waiter.name()); |
| + assertTrue(waiter.isWebApkCompatible()); |
| + } |
| + |
| + /** |
| + * Test that ManifestUpgradeDetectorFetcher classifies a page as "not WebAPK compatible" if it |
| + * does not have a service worker. |
| + */ |
| + @MediumTest |
| + @Feature({"Webapps"}) |
| + public void testNoServiceWorkerNotInstallable() throws Exception { |
|
Xi Han
2016/09/12 19:19:05
This test doesn't seem to be related to the change
pkotwicz
2016/09/12 19:43:59
Yes, there are many error cases. The service worke
Xi Han
2016/09/12 19:58:49
I understand since you added the remaining parts o
dominickn
2016/09/13 01:09:35
I'd prefer if you split these tests into a separat
|
| + CallbackWaiter waiter = new CallbackWaiter(); |
| + startManifestUpgradeDetectorFetcher(mTestServer.getURL(WEB_MANIFEST_SCOPE), |
| + mTestServer.getURL("/chrome/test/data/banners/manifest.json"), waiter); |
| + |
| + TabLoadObserver tabLoadObserver = new TabLoadObserver(mTab); |
| + tabLoadObserver.fullyLoadUrl( |
| + mTestServer.getURL("/chrome/test/data/banners/manifest_no_service_worker.html")); |
| + waiter.waitForCallback(0); |
| + |
| + assertFalse(waiter.isWebApkCompatible()); |
| + } |
| + |
| + /** |
| + * Test that ManifestUpgradeDetectorFetcher classifies a Web Manifest as "not WebAPK compatible" |
| + * if the Web Manifest points to a corrupted icon. |
| + */ |
| + @MediumTest |
| + @Feature({"Webapps"}) |
| + public void testCorruptedIconNotInstallable() throws Exception { |
|
Xi Han
2016/09/12 19:19:05
This sounds like another test for data.is_installa
pkotwicz
2016/09/12 19:43:59
The reason that I have two tests is that the corru
Xi Han
2016/09/12 19:58:49
Agree, this one is definitely needs to be kept.
|
| + CallbackWaiter waiter = new CallbackWaiter(); |
| + startManifestUpgradeDetectorFetcher(mTestServer.getURL(WEB_MANIFEST_SCOPE), |
| + mTestServer.getURL("/chrome/test/data/banners/manifest_bad_icon.json"), waiter); |
| + |
| + TabLoadObserver tabLoadObserver = new TabLoadObserver(mTab); |
| + tabLoadObserver.fullyLoadUrl( |
| + mTestServer.getURL("/chrome/test/data/banners/manifest_bad_icon_test_page.html")); |
| + waiter.waitForCallback(0); |
| + |
| + assertFalse(waiter.isWebApkCompatible()); |
| } |
| } |