Index: chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java |
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java |
index 180622b7e85c397a848428d95c9f6001b00c4d08..f7ae559207dd8021df98eea333b15e9bae8012dd 100644 |
--- a/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java |
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/webapps/ManifestUpgradeDetectorTest.java |
@@ -13,6 +13,7 @@ import android.os.Bundle; |
import org.chromium.base.ContextUtils; |
import org.chromium.blink_public.platform.WebDisplayMode; |
+import org.chromium.chrome.browser.ShortcutHelper; |
import org.chromium.chrome.browser.tab.Tab; |
import org.chromium.content_public.common.ScreenOrientationValues; |
import org.chromium.testing.local.LocalRobolectricTestRunner; |
@@ -191,6 +192,43 @@ public class ManifestUpgradeDetectorTest { |
} |
/** |
+ * Test that an upgrade is not requested when the Web Manifest did not change and the Web |
+ * Manifest scope is empty. |
+ */ |
+ @Test |
+ public void testManifestEmptyScopeShouldNotUpgrade() { |
+ Data oldData = new Data(); |
+ // webapk_installer.cc sets the scope to the default scope if the scope is empty. |
+ oldData.scopeUrl = ShortcutHelper.getScopeFromUrl(oldData.startUrl); |
+ Data fetchedData = new Data(); |
+ fetchedData.scopeUrl = ""; |
+ Assert.assertTrue(!oldData.scopeUrl.equals(fetchedData.scopeUrl)); |
+ |
+ TestManifestUpgradeDetector detector = createDetector(oldData, fetchedData); |
+ detector.start(); |
+ Assert.assertTrue(detector.mCompleted); |
+ Assert.assertFalse(detector.mIsUpgraded); |
+ } |
+ |
+ /** |
+ * Test that an upgrade is requested when the Web Manifest is updated from using a non-empty |
+ * scope to an empty scope. |
+ */ |
+ @Test |
+ public void testManifestNonEmptyScopeToEmptyScopeShouldUpgrade() { |
+ Data oldData = new Data(); |
+ oldData.startUrl = "/fancy/scope/special/snowflake.html"; |
+ oldData.scopeUrl = "/fancy/scope/"; |
+ Assert.assertTrue( |
+ !oldData.scopeUrl.equals(ShortcutHelper.getScopeFromUrl(oldData.startUrl))); |
+ Data fetchedData = new Data(); |
+ fetchedData.startUrl = "/fancy/scope/special/snowflake.html"; |
+ fetchedData.scopeUrl = ""; |
+ |
+ TestManifestUpgradeDetector detector = createDetector(oldData, fetchedData); |
+ } |
+ |
+ /** |
* Test that an upgrade is requested when: |
* - WebAPK was generated using icon at {@link WEBAPK_ICON_URL} from Web Manifest. |
* - Bitmap at {@link WEBAPK_ICON_URL} has changed. |