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 |