| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.webapps; | 5 package org.chromium.chrome.browser.webapps; |
| 6 | 6 |
| 7 import static org.junit.Assert.assertEquals; | 7 import static org.junit.Assert.assertEquals; |
| 8 import static org.junit.Assert.assertFalse; | 8 import static org.junit.Assert.assertFalse; |
| 9 import static org.junit.Assert.assertTrue; | 9 import static org.junit.Assert.assertTrue; |
| 10 | 10 |
| (...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 // set by the intent version of {@link WebApkInfo#create()}. | 257 // set by the intent version of {@link WebApkInfo#create()}. |
| 258 Intent intent = new Intent(); | 258 Intent intent = new Intent(); |
| 259 intent.putExtra(ShortcutHelper.EXTRA_URL, ""); | 259 intent.putExtra(ShortcutHelper.EXTRA_URL, ""); |
| 260 intent.putExtra( | 260 intent.putExtra( |
| 261 ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME, WebApkTestHelper.WEBAP
K_PACKAGE_NAME); | 261 ShortcutHelper.EXTRA_WEBAPK_PACKAGE_NAME, WebApkTestHelper.WEBAP
K_PACKAGE_NAME); |
| 262 WebApkInfo info = WebApkInfo.create(intent); | 262 WebApkInfo info = WebApkInfo.create(intent); |
| 263 | 263 |
| 264 updateManager.updateIfNeeded(null, info); | 264 updateManager.updateIfNeeded(null, info); |
| 265 } | 265 } |
| 266 | 266 |
| 267 private static void onGotUnchangedWebManifestForInitialUrl(WebApkUpdateManag
er updateManager) { | 267 private static void onGotUnchangedWebManifestData(WebApkUpdateManager update
Manager) { |
| 268 onFinishedFetchingWebManifestForInitialUrl(updateManager, defaultManifes
tData()); | 268 onGotManifestData(updateManager, defaultManifestData()); |
| 269 } | |
| 270 | |
| 271 private static void onFinishedFetchingWebManifestForInitialUrl( | |
| 272 WebApkUpdateManager updateManager, ManifestData fetchedManifestData)
{ | |
| 273 String bestIconUrl = randomIconUrl(fetchedManifestData); | |
| 274 updateManager.onFinishedFetchingWebManifestForInitialUrl( | |
| 275 infoFromManifestData(fetchedManifestData), bestIconUrl); | |
| 276 } | 269 } |
| 277 | 270 |
| 278 private static void onGotManifestData(WebApkUpdateManager updateManager, | 271 private static void onGotManifestData(WebApkUpdateManager updateManager, |
| 279 ManifestData fetchedManifestData) { | 272 ManifestData fetchedManifestData) { |
| 280 String bestIconUrl = randomIconUrl(fetchedManifestData); | 273 String bestIconUrl = randomIconUrl(fetchedManifestData); |
| 281 updateManager.onGotManifestData(infoFromManifestData(fetchedManifestData
), bestIconUrl); | 274 updateManager.onGotManifestData(infoFromManifestData(fetchedManifestData
), bestIconUrl); |
| 282 } | 275 } |
| 283 | 276 |
| 284 private static String randomIconUrl(ManifestData fetchedManifestData) { | 277 private static String randomIconUrl(ManifestData fetchedManifestData) { |
| 285 if (fetchedManifestData == null || fetchedManifestData.iconUrlToMurmur2H
ashMap.isEmpty()) { | 278 if (fetchedManifestData == null || fetchedManifestData.iconUrlToMurmur2H
ashMap.isEmpty()) { |
| (...skipping 17 matching lines...) Expand all Loading... |
| 303 * from the fetched Web Manifest. | 296 * from the fetched Web Manifest. |
| 304 */ | 297 */ |
| 305 private boolean checkUpdateNeededForFetchedManifest( | 298 private boolean checkUpdateNeededForFetchedManifest( |
| 306 ManifestData androidManifestData, ManifestData fetchedManifestData)
{ | 299 ManifestData androidManifestData, ManifestData fetchedManifestData)
{ |
| 307 registerWebApk(androidManifestData, WebApkVersion.CURRENT_SHELL_APK_VERS
ION); | 300 registerWebApk(androidManifestData, WebApkVersion.CURRENT_SHELL_APK_VERS
ION); |
| 308 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 301 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 309 | 302 |
| 310 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 303 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 311 updateIfNeeded(updateManager); | 304 updateIfNeeded(updateManager); |
| 312 assertTrue(updateManager.updateCheckStarted()); | 305 assertTrue(updateManager.updateCheckStarted()); |
| 313 updateManager.onFinishedFetchingWebManifestForInitialUrl( | 306 updateManager.onGotManifestData( |
| 314 infoFromManifestData(fetchedManifestData), fetchedManifestData.b
estIconUrl); | 307 infoFromManifestData(fetchedManifestData), fetchedManifestData.b
estIconUrl); |
| 315 return updateManager.updateRequested(); | 308 return updateManager.updateRequested(); |
| 316 } | 309 } |
| 317 | 310 |
| 318 @Before | 311 @Before |
| 319 public void setUp() { | 312 public void setUp() { |
| 320 ContextUtils.initApplicationContextForTests(RuntimeEnvironment.applicati
on); | 313 ContextUtils.initApplicationContextForTests(RuntimeEnvironment.applicati
on); |
| 321 CommandLine.init(null); | 314 CommandLine.init(null); |
| 322 ChromeWebApkHost.initForTesting(true); | 315 ChromeWebApkHost.initForTesting(true); |
| 323 | 316 |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 399 */ | 392 */ |
| 400 @Test | 393 @Test |
| 401 public void testCheckOnNextLaunchIfClosePriorToFirstPageLoad() { | 394 public void testCheckOnNextLaunchIfClosePriorToFirstPageLoad() { |
| 402 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 395 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 403 { | 396 { |
| 404 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(
mClock); | 397 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(
mClock); |
| 405 updateIfNeeded(updateManager); | 398 updateIfNeeded(updateManager); |
| 406 assertTrue(updateManager.updateCheckStarted()); | 399 assertTrue(updateManager.updateCheckStarted()); |
| 407 } | 400 } |
| 408 | 401 |
| 409 // Chrome is killed. | 402 // Chrome is killed. Neither |
| 410 // {@link WebApkUpdateManager#onFinishedFetchingWebManifestForInitialUrl
()} is never called. | 403 // {@link WebApkUpdateManager#onWebManifestForInitialUrlNotWebApkCompati
ble()} nor |
| 404 // {@link WebApkUpdateManager#OnGotManifestData()} is called. |
| 411 | 405 |
| 412 { | 406 { |
| 413 // Relaunching the WebAPK should do an is-update-needed check. | 407 // Relaunching the WebAPK should do an is-update-needed check. |
| 414 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(
mClock); | 408 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(
mClock); |
| 415 updateIfNeeded(updateManager); | 409 updateIfNeeded(updateManager); |
| 416 assertTrue(updateManager.updateCheckStarted()); | 410 assertTrue(updateManager.updateCheckStarted()); |
| 417 onGotUnchangedWebManifestForInitialUrl(updateManager); | 411 onGotUnchangedWebManifestData(updateManager); |
| 418 } | 412 } |
| 419 | 413 |
| 420 { | 414 { |
| 421 // Relaunching the WebAPK should not do an is-update-needed-check. | 415 // Relaunching the WebAPK should not do an is-update-needed-check. |
| 422 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(
mClock); | 416 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(
mClock); |
| 423 updateIfNeeded(updateManager); | 417 updateIfNeeded(updateManager); |
| 424 assertFalse(updateManager.updateCheckStarted()); | 418 assertFalse(updateManager.updateCheckStarted()); |
| 425 } | 419 } |
| 426 } | 420 } |
| 427 | 421 |
| 428 /** | 422 /** |
| 429 * Test that the completion time of the previous WebAPK update is not modifi
ed if: | 423 * Test that the completion time of the previous WebAPK update is not modifi
ed if: |
| 430 * - The previous WebAPK update succeeded. | 424 * - The previous WebAPK update succeeded. |
| 431 * AND | 425 * AND |
| 432 * - A WebAPK update is not required. | 426 * - A WebAPK update is not required. |
| 433 */ | 427 */ |
| 434 @Test | 428 @Test |
| 435 public void testUpdateNotNeeded() { | 429 public void testUpdateNotNeeded() { |
| 436 long initialTime = mClock.currentTimeMillis(); | 430 long initialTime = mClock.currentTimeMillis(); |
| 437 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 431 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 438 | 432 |
| 439 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 433 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 440 updateIfNeeded(updateManager); | 434 updateIfNeeded(updateManager); |
| 441 assertTrue(updateManager.updateCheckStarted()); | 435 assertTrue(updateManager.updateCheckStarted()); |
| 442 onGotUnchangedWebManifestForInitialUrl(updateManager); | 436 onGotUnchangedWebManifestData(updateManager); |
| 443 assertFalse(updateManager.updateRequested()); | 437 assertFalse(updateManager.updateRequested()); |
| 444 | 438 |
| 445 WebappDataStorage storage = getStorage(); | 439 WebappDataStorage storage = getStorage(); |
| 446 assertTrue(storage.getDidLastWebApkUpdateRequestSucceed()); | 440 assertTrue(storage.getDidLastWebApkUpdateRequestSucceed()); |
| 447 assertEquals(initialTime, storage.getLastWebApkUpdateRequestCompletionTi
me()); | 441 assertEquals(initialTime, storage.getLastWebApkUpdateRequestCompletionTi
me()); |
| 448 } | 442 } |
| 449 | 443 |
| 450 /** | 444 /** |
| 451 * Test that the last WebAPK update is marked as having succeeded if: | 445 * Test that the last WebAPK update is marked as having succeeded if: |
| 452 * - The previous WebAPK update failed. | 446 * - The previous WebAPK update failed. |
| 453 * AND | 447 * AND |
| 454 * - A WebAPK update is no longer required. | 448 * - A WebAPK update is no longer required. |
| 455 */ | 449 */ |
| 456 @Test | 450 @Test |
| 457 public void testMarkUpdateAsSucceededIfUpdateNoLongerNeeded() { | 451 public void testMarkUpdateAsSucceededIfUpdateNoLongerNeeded() { |
| 458 WebappDataStorage storage = getStorage(); | 452 WebappDataStorage storage = getStorage(); |
| 459 storage.updateDidLastWebApkUpdateRequestSucceed(false); | 453 storage.updateDidLastWebApkUpdateRequestSucceed(false); |
| 460 mClock.advance(WebApkUpdateManager.RETRY_UPDATE_DURATION); | 454 mClock.advance(WebApkUpdateManager.RETRY_UPDATE_DURATION); |
| 461 | 455 |
| 462 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 456 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 463 updateIfNeeded(updateManager); | 457 updateIfNeeded(updateManager); |
| 464 assertTrue(updateManager.updateCheckStarted()); | 458 assertTrue(updateManager.updateCheckStarted()); |
| 465 onGotUnchangedWebManifestForInitialUrl(updateManager); | 459 onGotUnchangedWebManifestData(updateManager); |
| 466 assertFalse(updateManager.updateRequested()); | 460 assertFalse(updateManager.updateRequested()); |
| 467 | 461 |
| 468 assertTrue(storage.getDidLastWebApkUpdateRequestSucceed()); | 462 assertTrue(storage.getDidLastWebApkUpdateRequestSucceed()); |
| 469 assertEquals( | 463 assertEquals( |
| 470 mClock.currentTimeMillis(), storage.getLastWebApkUpdateRequestCo
mpletionTime()); | 464 mClock.currentTimeMillis(), storage.getLastWebApkUpdateRequestCo
mpletionTime()); |
| 471 } | 465 } |
| 472 | 466 |
| 473 /** | 467 /** |
| 474 * Test that the WebAPK update is marked as having failed if Chrome is kille
d prior to the | 468 * Test that the WebAPK update is marked as having failed if Chrome is kille
d prior to the |
| 475 * WebAPK update completing. | 469 * WebAPK update completing. |
| 476 */ | 470 */ |
| 477 @Test | 471 @Test |
| 478 public void testMarkUpdateAsFailedIfClosePriorToUpdateCompleting() { | 472 public void testMarkUpdateAsFailedIfClosePriorToUpdateCompleting() { |
| 479 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 473 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 480 | 474 |
| 481 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 475 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 482 updateIfNeeded(updateManager); | 476 updateIfNeeded(updateManager); |
| 483 assertTrue(updateManager.updateCheckStarted()); | 477 assertTrue(updateManager.updateCheckStarted()); |
| 484 ManifestData manifestData = defaultManifestData(); | 478 ManifestData manifestData = defaultManifestData(); |
| 485 manifestData.name = DIFFERENT_NAME; | 479 manifestData.name = DIFFERENT_NAME; |
| 486 onFinishedFetchingWebManifestForInitialUrl(updateManager, manifestData); | 480 onGotManifestData(updateManager, manifestData); |
| 487 assertTrue(updateManager.updateRequested()); | 481 assertTrue(updateManager.updateRequested()); |
| 488 | 482 |
| 489 // Chrome is killed. {@link WebApkUpdateManager#onBuiltWebApk} is never
called. | 483 // Chrome is killed. {@link WebApkUpdateManager#onBuiltWebApk} is never
called. |
| 490 | 484 |
| 491 // Check {@link WebappDataStorage} state. | 485 // Check {@link WebappDataStorage} state. |
| 492 WebappDataStorage storage = getStorage(); | 486 WebappDataStorage storage = getStorage(); |
| 493 assertFalse(storage.getDidLastWebApkUpdateRequestSucceed()); | 487 assertFalse(storage.getDidLastWebApkUpdateRequestSucceed()); |
| 494 assertEquals( | 488 assertEquals( |
| 495 mClock.currentTimeMillis(), storage.getLastWebApkUpdateRequestCo
mpletionTime()); | 489 mClock.currentTimeMillis(), storage.getLastWebApkUpdateRequestCo
mpletionTime()); |
| 496 } | 490 } |
| 497 | 491 |
| 498 /** | 492 /** |
| 499 * Test that an update with data from the WebAPK's Android manifest is done
if: | 493 * Test that an update with data from the WebAPK's Android manifest is done
if: |
| 500 * - WebAPK's code is out of date | 494 * - WebAPK's code is out of date |
| 501 * AND | 495 * AND |
| 502 * - WebAPK's start_url does not refer to a Web Manifest. | 496 * - WebAPK's start_url does not refer to a Web Manifest. |
| 503 * | 497 * |
| 504 * It is good to minimize the number of users with out of date WebAPKs. We t
ry to keep WebAPKs | 498 * It is good to minimize the number of users with out of date WebAPKs. We t
ry to keep WebAPKs |
| 505 * up to date even if the web developer has removed the Web Manifest from th
eir site. | 499 * up to date even if the web developer has removed the Web Manifest from th
eir site. |
| 506 */ | 500 */ |
| 507 @Test | 501 @Test |
| 508 public void testShellApkOutOfDateNoWebManifest() { | 502 public void testShellApkOutOfDateNoWebManifest() { |
| 509 registerWebApk(defaultManifestData(), WebApkVersion.CURRENT_SHELL_APK_VE
RSION - 1); | 503 registerWebApk(defaultManifestData(), WebApkVersion.CURRENT_SHELL_APK_VE
RSION - 1); |
| 510 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 504 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 511 | 505 |
| 512 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 506 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 513 updateIfNeeded(updateManager); | 507 updateIfNeeded(updateManager); |
| 514 assertTrue(updateManager.updateCheckStarted()); | 508 assertTrue(updateManager.updateCheckStarted()); |
| 515 | 509 |
| 516 onFinishedFetchingWebManifestForInitialUrl(updateManager, null); | 510 updateManager.onWebManifestForInitialUrlNotWebApkCompatible(); |
| 517 assertTrue(updateManager.updateRequested()); | 511 assertTrue(updateManager.updateRequested()); |
| 518 assertEquals(NAME, updateManager.requestedUpdateName()); | 512 assertEquals(NAME, updateManager.requestedUpdateName()); |
| 519 | 513 |
| 520 // Check that the {@link ManifestUpgradeDetector} has been destroyed. Th
is prevents | 514 // Check that the {@link ManifestUpgradeDetector} has been destroyed. Th
is prevents |
| 521 // {@link #onFinishedFetchingWebManifestForInitialUrl()} and {@link #onG
otManifestData()} | 515 // {@link #onWebManifestForInitialUrlNotWebApkCompatible()} and {@link #
onGotManifestData()} |
| 522 // from getting called. | 516 // from getting called. |
| 523 assertTrue(updateManager.destroyedFetcher()); | 517 assertTrue(updateManager.destroyedFetcher()); |
| 524 } | 518 } |
| 525 | 519 |
| 526 /** | 520 /** |
| 527 * Test that an update with data from the fetched Web Manifest is done if th
e WebAPK's code is | 521 * Test that an update with data from the fetched Web Manifest is done if th
e WebAPK's code is |
| 528 * out of date and the WebAPK's start_url refers to a Web Manifest. | 522 * out of date and the WebAPK's start_url refers to a Web Manifest. |
| 529 */ | 523 */ |
| 530 @Test | 524 @Test |
| 531 public void testShellApkOutOfDateStillHasWebManifest() { | 525 public void testShellApkOutOfDateStillHasWebManifest() { |
| 532 registerWebApk(defaultManifestData(), WebApkVersion.CURRENT_SHELL_APK_VE
RSION - 1); | 526 registerWebApk(defaultManifestData(), WebApkVersion.CURRENT_SHELL_APK_VE
RSION - 1); |
| 533 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 527 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 534 | 528 |
| 535 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 529 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 536 updateIfNeeded(updateManager); | 530 updateIfNeeded(updateManager); |
| 537 assertTrue(updateManager.updateCheckStarted()); | 531 assertTrue(updateManager.updateCheckStarted()); |
| 538 | 532 |
| 539 onFinishedFetchingWebManifestForInitialUrl(updateManager, defaultManifes
tData()); | 533 onGotManifestData(updateManager, defaultManifestData()); |
| 540 assertTrue(updateManager.updateRequested()); | 534 assertTrue(updateManager.updateRequested()); |
| 541 assertEquals(NAME, updateManager.requestedUpdateName()); | 535 assertEquals(NAME, updateManager.requestedUpdateName()); |
| 542 | 536 |
| 543 assertTrue(updateManager.destroyedFetcher()); | 537 assertTrue(updateManager.destroyedFetcher()); |
| 544 } | 538 } |
| 545 | 539 |
| 546 /** | 540 /** |
| 547 * Test that an update is requested if: | 541 * Test that an update is requested if: |
| 548 * - start_url does not refer to a Web Manifest. | 542 * - start_url does not refer to a Web Manifest. |
| 549 * AND | 543 * AND |
| 550 * - The user eventually navigates to a page pointing to a Web Manifest with
the correct URL. | 544 * - The user eventually navigates to a page pointing to a Web Manifest with
the correct URL. |
| 551 * AND | 545 * AND |
| 552 * - The Web Manifest has changed. | 546 * - The Web Manifest has changed. |
| 553 * | 547 * |
| 554 * This scenario can occur if the WebAPK's start_url is a Javascript redirec
t. | 548 * This scenario can occur if the WebAPK's start_url is a Javascript redirec
t. |
| 555 */ | 549 */ |
| 556 @Test | 550 @Test |
| 557 public void testStartUrlRedirectsToPageWithUpdatedWebManifest() { | 551 public void testStartUrlRedirectsToPageWithUpdatedWebManifest() { |
| 558 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 552 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 559 | 553 |
| 560 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 554 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 561 updateIfNeeded(updateManager); | 555 updateIfNeeded(updateManager); |
| 562 assertTrue(updateManager.updateCheckStarted()); | 556 assertTrue(updateManager.updateCheckStarted()); |
| 563 | 557 |
| 564 // start_url does not have a Web Manifest. No update should be requested
. | 558 // start_url does not have a Web Manifest. No update should be requested
. |
| 565 onFinishedFetchingWebManifestForInitialUrl(updateManager, null); | 559 updateManager.onWebManifestForInitialUrlNotWebApkCompatible(); |
| 566 assertFalse(updateManager.updateRequested()); | 560 assertFalse(updateManager.updateRequested()); |
| 567 // {@link ManifestUpgradeDetector} should still be alive so that it can
get | 561 // {@link ManifestUpgradeDetector} should still be alive so that it can
get |
| 568 // {@link #onGotManifestData} when page with the Web Manifest finishes l
oading. | 562 // {@link #onGotManifestData} when page with the Web Manifest finishes l
oading. |
| 569 assertFalse(updateManager.destroyedFetcher()); | 563 assertFalse(updateManager.destroyedFetcher()); |
| 570 | 564 |
| 571 // start_url redirects to page with Web Manifest. | 565 // start_url redirects to page with Web Manifest. |
| 572 | 566 |
| 573 ManifestData manifestData = defaultManifestData(); | 567 ManifestData manifestData = defaultManifestData(); |
| 574 manifestData.name = DIFFERENT_NAME; | 568 manifestData.name = DIFFERENT_NAME; |
| 575 onGotManifestData(updateManager, manifestData); | 569 onGotManifestData(updateManager, manifestData); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 586 * - The user eventually navigates to a page pointing to a Web Manifest with
the correct URL. | 580 * - The user eventually navigates to a page pointing to a Web Manifest with
the correct URL. |
| 587 * AND | 581 * AND |
| 588 * - The Web Manifest has not changed. | 582 * - The Web Manifest has not changed. |
| 589 */ | 583 */ |
| 590 @Test | 584 @Test |
| 591 public void testStartUrlRedirectsToPageWithUnchangedWebManifest() { | 585 public void testStartUrlRedirectsToPageWithUnchangedWebManifest() { |
| 592 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); | 586 mClock.advance(WebApkUpdateManager.FULL_CHECK_UPDATE_INTERVAL); |
| 593 | 587 |
| 594 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); | 588 TestWebApkUpdateManager updateManager = new TestWebApkUpdateManager(mClo
ck); |
| 595 updateIfNeeded(updateManager); | 589 updateIfNeeded(updateManager); |
| 596 onFinishedFetchingWebManifestForInitialUrl(updateManager, null); | 590 updateManager.onWebManifestForInitialUrlNotWebApkCompatible(); |
| 597 onGotManifestData(updateManager, defaultManifestData()); | 591 onGotManifestData(updateManager, defaultManifestData()); |
| 598 assertFalse(updateManager.updateRequested()); | 592 assertFalse(updateManager.updateRequested()); |
| 599 | 593 |
| 600 // We got the Web Manifest. The {@link ManifestUpgradeDetector} should b
e destroyed to stop | 594 // We got the Web Manifest. The {@link ManifestUpgradeDetector} should b
e destroyed to stop |
| 601 // it from fetching the Web Manifest for subsequent page loads. | 595 // it from fetching the Web Manifest for subsequent page loads. |
| 602 assertTrue(updateManager.destroyedFetcher()); | 596 assertTrue(updateManager.destroyedFetcher()); |
| 603 } | 597 } |
| 604 | 598 |
| 605 @Test | 599 @Test |
| 606 public void testManifestDoesNotUpgrade() { | 600 public void testManifestDoesNotUpgrade() { |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 706 | 700 |
| 707 ManifestData fetchedData = defaultManifestData(); | 701 ManifestData fetchedData = defaultManifestData(); |
| 708 fetchedData.bestIconUrl = iconUrl2; | 702 fetchedData.bestIconUrl = iconUrl2; |
| 709 fetchedData.iconUrlToMurmur2HashMap.clear(); | 703 fetchedData.iconUrlToMurmur2HashMap.clear(); |
| 710 fetchedData.iconUrlToMurmur2HashMap.put(iconUrl1, null); | 704 fetchedData.iconUrlToMurmur2HashMap.put(iconUrl1, null); |
| 711 fetchedData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2); | 705 fetchedData.iconUrlToMurmur2HashMap.put(iconUrl2, hash2); |
| 712 | 706 |
| 713 assertFalse(checkUpdateNeededForFetchedManifest(oldData, fetchedData)); | 707 assertFalse(checkUpdateNeededForFetchedManifest(oldData, fetchedData)); |
| 714 } | 708 } |
| 715 } | 709 } |
| OLD | NEW |