| OLD | NEW |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 android.support.test.filters.SmallTest; | 7 import android.support.test.filters.SmallTest; |
| 8 | 8 |
| 9 import org.junit.Assert; |
| 10 import org.junit.Rule; |
| 11 import org.junit.Test; |
| 12 import org.junit.runner.RunWith; |
| 13 |
| 9 import org.chromium.base.test.util.CallbackHelper; | 14 import org.chromium.base.test.util.CallbackHelper; |
| 15 import org.chromium.base.test.util.CommandLineFlags; |
| 10 import org.chromium.base.test.util.Feature; | 16 import org.chromium.base.test.util.Feature; |
| 17 import org.chromium.chrome.browser.ChromeSwitches; |
| 11 import org.chromium.chrome.browser.DeferredStartupHandler; | 18 import org.chromium.chrome.browser.DeferredStartupHandler; |
| 12 import org.chromium.chrome.browser.tab.EmptyTabObserver; | 19 import org.chromium.chrome.browser.tab.EmptyTabObserver; |
| 13 import org.chromium.chrome.browser.tab.Tab; | 20 import org.chromium.chrome.browser.tab.Tab; |
| 14 import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; | 21 import org.chromium.chrome.browser.tabmodel.EmptyTabModelSelectorObserver; |
| 15 import org.chromium.chrome.browser.tabmodel.TabModelSelectorBase; | 22 import org.chromium.chrome.browser.tabmodel.TabModelSelectorBase; |
| 23 import org.chromium.chrome.test.ChromeActivityTestRule; |
| 24 import org.chromium.chrome.test.ChromeJUnit4ClassRunner; |
| 16 | 25 |
| 17 /** | 26 /** |
| 18 * Tests that when WebappActivity#onDeferredStartup() is run, the activity tab h
as finished loading. | 27 * Tests that when WebappActivity#onDeferredStartup() is run, the activity tab h
as finished loading. |
| 19 */ | 28 */ |
| 20 public class WebappDeferredStartupTest extends WebappActivityTestBase { | 29 @RunWith(ChromeJUnit4ClassRunner.class) |
| 30 @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE, |
| 31 ChromeActivityTestRule.DISABLE_NETWORK_PREDICTION_FLAG}) |
| 32 public class WebappDeferredStartupTest { |
| 21 static class PageLoadFinishedTabObserver extends EmptyTabObserver { | 33 static class PageLoadFinishedTabObserver extends EmptyTabObserver { |
| 22 private boolean mIsPageLoadFinished; | 34 private boolean mIsPageLoadFinished; |
| 23 | 35 |
| 24 @Override | 36 @Override |
| 25 public void onPageLoadFinished(Tab tab) { | 37 public void onPageLoadFinished(Tab tab) { |
| 26 mIsPageLoadFinished = true; | 38 mIsPageLoadFinished = true; |
| 27 } | 39 } |
| 28 | 40 |
| 29 public boolean isPageLoadFinished() { | 41 public boolean isPageLoadFinished() { |
| 30 return mIsPageLoadFinished; | 42 return mIsPageLoadFinished; |
| (...skipping 15 matching lines...) Expand all Loading... |
| 46 | 58 |
| 47 static class PageIsLoadedDeferredStartupHandler extends DeferredStartupHandl
er { | 59 static class PageIsLoadedDeferredStartupHandler extends DeferredStartupHandl
er { |
| 48 public PageIsLoadedDeferredStartupHandler(PageLoadFinishedTabObserver ob
server, | 60 public PageIsLoadedDeferredStartupHandler(PageLoadFinishedTabObserver ob
server, |
| 49 CallbackHelper helper) { | 61 CallbackHelper helper) { |
| 50 mObserver = observer; | 62 mObserver = observer; |
| 51 mHelper = helper; | 63 mHelper = helper; |
| 52 } | 64 } |
| 53 | 65 |
| 54 @Override | 66 @Override |
| 55 public void queueDeferredTasksOnIdleHandler() { | 67 public void queueDeferredTasksOnIdleHandler() { |
| 56 assertTrue("Page is yet to finish loading.", mObserver.isPageLoadFin
ished()); | 68 Assert.assertTrue("Page is yet to finish loading.", mObserver.isPage
LoadFinished()); |
| 57 | 69 |
| 58 mHelper.notifyCalled(); | 70 mHelper.notifyCalled(); |
| 59 } | 71 } |
| 60 | 72 |
| 61 private CallbackHelper mHelper; | 73 private CallbackHelper mHelper; |
| 62 private PageLoadFinishedTabObserver mObserver; | 74 private PageLoadFinishedTabObserver mObserver; |
| 63 } | 75 } |
| 64 | 76 |
| 77 @Rule |
| 78 public final WebappActivityTestRule mActivityTestRule = new WebappActivityTe
stRule(); |
| 79 |
| 80 @Test |
| 65 @SmallTest | 81 @SmallTest |
| 66 @Feature({"Webapps"}) | 82 @Feature({"Webapps"}) |
| 67 public void testPageIsLoadedOnDeferredStartup() throws Exception { | 83 public void testPageIsLoadedOnDeferredStartup() throws Exception { |
| 68 PageLoadFinishedTabObserver tabObserver = new PageLoadFinishedTabObserve
r(); | 84 PageLoadFinishedTabObserver tabObserver = new PageLoadFinishedTabObserve
r(); |
| 69 TabModelSelectorBase | 85 TabModelSelectorBase |
| 70 .setObserverForTests(new NewTabCreatedTabModelSelectorObserver(t
abObserver)); | 86 .setObserverForTests(new NewTabCreatedTabModelSelectorObserver(t
abObserver)); |
| 71 CallbackHelper helper = new CallbackHelper(); | 87 CallbackHelper helper = new CallbackHelper(); |
| 72 PageIsLoadedDeferredStartupHandler handler = new PageIsLoadedDeferredSta
rtupHandler( | 88 PageIsLoadedDeferredStartupHandler handler = new PageIsLoadedDeferredSta
rtupHandler( |
| 73 tabObserver, helper); | 89 tabObserver, helper); |
| 74 DeferredStartupHandler.setInstanceForTests(handler); | 90 DeferredStartupHandler.setInstanceForTests(handler); |
| 75 startWebappActivity(); | 91 mActivityTestRule.startWebappActivity(); |
| 76 helper.waitForCallback(0); | 92 helper.waitForCallback(0); |
| 77 } | 93 } |
| 78 } | 94 } |
| OLD | NEW |