OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.android_webview.test; | 5 package org.chromium.android_webview.test; |
6 | 6 |
7 import android.test.suitebuilder.annotation.SmallTest; | 7 import android.test.suitebuilder.annotation.SmallTest; |
8 | 8 |
9 import org.chromium.android_webview.AwContentsStatics; | 9 import org.chromium.android_webview.AwContentsStatics; |
10 import org.chromium.android_webview.AwWebContentsObserver; | 10 import org.chromium.android_webview.AwWebContentsObserver; |
(...skipping 18 matching lines...) Expand all Loading... | |
29 super.setUp(); | 29 super.setUp(); |
30 mContentsClient = new TestAwContentsClient(); | 30 mContentsClient = new TestAwContentsClient(); |
31 mTestContainerView = createAwTestContainerViewOnMainSync(mContentsClient ); | 31 mTestContainerView = createAwTestContainerViewOnMainSync(mContentsClient ); |
32 mUnreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUrl(); | 32 mUnreachableWebDataUrl = AwContentsStatics.getUnreachableWebDataUrl(); |
33 // AwWebContentsObserver constructor must be run on the UI thread. | 33 // AwWebContentsObserver constructor must be run on the UI thread. |
34 getInstrumentation().runOnMainSync(new Runnable() { | 34 getInstrumentation().runOnMainSync(new Runnable() { |
35 @Override | 35 @Override |
36 public void run() { | 36 public void run() { |
37 mWebContentsObserver = new AwWebContentsObserver( | 37 mWebContentsObserver = new AwWebContentsObserver( |
38 mTestContainerView.getContentViewCore().getWebContents() , | 38 mTestContainerView.getContentViewCore().getWebContents() , |
39 mTestContainerView.getAwContents(), mContentsClient); | 39 null, mContentsClient); |
gsennton
2015/11/13 02:35:39
I guess this is to avoid the whole loadDataWithBas
mnaganov (inactive)
2015/11/13 17:41:37
That's correct. Added a comment.
| |
40 } | 40 } |
41 }); | 41 }); |
42 } | 42 } |
43 | 43 |
44 @SmallTest | 44 @SmallTest |
45 @Feature({"AndroidWebView"}) | 45 @Feature({"AndroidWebView"}) |
46 public void testOnPageFinished() throws Throwable { | 46 public void testOnPageFinished() throws Throwable { |
47 int frameId = 0; | 47 int frameId = 0; |
48 boolean mainFrame = true; | 48 boolean mainFrame = true; |
49 boolean subFrame = false; | 49 boolean subFrame = false; |
50 final TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHel per = | 50 final TestCallbackHelperContainer.OnPageFinishedHelper onPageFinishedHel per = |
51 mContentsClient.getOnPageFinishedHelper(); | 51 mContentsClient.getOnPageFinishedHelper(); |
52 | 52 |
53 int callCount = onPageFinishedHelper.getCallCount(); | 53 int callCount = onPageFinishedHelper.getCallCount(); |
54 mWebContentsObserver.didFinishLoad(frameId, EXAMPLE_URL, mainFrame); | 54 mWebContentsObserver.didFinishLoad(frameId, EXAMPLE_URL, mainFrame); |
55 mWebContentsObserver.didStopLoading(EXAMPLE_URL); | |
55 onPageFinishedHelper.waitForCallback(callCount); | 56 onPageFinishedHelper.waitForCallback(callCount); |
56 assertEquals("onPageFinished should be called for main frame navigations .", callCount + 1, | 57 assertEquals("onPageFinished should be called for main frame navigations .", callCount + 1, |
57 onPageFinishedHelper.getCallCount()); | 58 onPageFinishedHelper.getCallCount()); |
58 assertEquals("onPageFinished should be called for main frame navigations .", EXAMPLE_URL, | 59 assertEquals("onPageFinished should be called for main frame navigations .", EXAMPLE_URL, |
59 onPageFinishedHelper.getUrl()); | 60 onPageFinishedHelper.getUrl()); |
60 | 61 |
61 // In order to check that callbacks are *not* firing, first we execute c ode | 62 // In order to check that callbacks are *not* firing, first we execute c ode |
62 // that shoudn't emit callbacks, then code that emits a callback, and ch eck that we | 63 // that shoudn't emit callbacks, then code that emits a callback, and ch eck that we |
63 // have got only one callback, and that its URL is from the last call. S ince | 64 // have got only one callback, and that its URL is from the last call. S ince |
64 // callbacks are serialized, that means we didn't have a callback for th e first call. | 65 // callbacks are serialized, that means we didn't have a callback for th e first call. |
65 callCount = onPageFinishedHelper.getCallCount(); | 66 callCount = onPageFinishedHelper.getCallCount(); |
66 mWebContentsObserver.didFinishLoad(frameId, EXAMPLE_URL, subFrame); | 67 mWebContentsObserver.didFinishLoad(frameId, EXAMPLE_URL, subFrame); |
67 mWebContentsObserver.didFinishLoad(frameId, SYNC_URL, mainFrame); | 68 mWebContentsObserver.didFinishLoad(frameId, SYNC_URL, mainFrame); |
69 mWebContentsObserver.didStopLoading(SYNC_URL); | |
68 onPageFinishedHelper.waitForCallback(callCount); | 70 onPageFinishedHelper.waitForCallback(callCount); |
69 assertEquals("onPageFinished should only be called for the main frame.", callCount + 1, | 71 assertEquals("onPageFinished should only be called for the main frame.", callCount + 1, |
70 onPageFinishedHelper.getCallCount()); | 72 onPageFinishedHelper.getCallCount()); |
71 assertEquals("onPageFinished should only be called for the main frame.", SYNC_URL, | 73 assertEquals("onPageFinished should only be called for the main frame.", SYNC_URL, |
72 onPageFinishedHelper.getUrl()); | 74 onPageFinishedHelper.getUrl()); |
73 | 75 |
74 callCount = onPageFinishedHelper.getCallCount(); | 76 callCount = onPageFinishedHelper.getCallCount(); |
75 mWebContentsObserver.didFinishLoad(frameId, mUnreachableWebDataUrl, main Frame); | 77 mWebContentsObserver.didFinishLoad(frameId, mUnreachableWebDataUrl, main Frame); |
76 mWebContentsObserver.didFinishLoad(frameId, SYNC_URL, mainFrame); | 78 mWebContentsObserver.didFinishLoad(frameId, SYNC_URL, mainFrame); |
79 mWebContentsObserver.didStopLoading(SYNC_URL); | |
77 onPageFinishedHelper.waitForCallback(callCount); | 80 onPageFinishedHelper.waitForCallback(callCount); |
78 assertEquals("onPageFinished should not be called for the error url.", c allCount + 1, | 81 assertEquals("onPageFinished should not be called for the error url.", c allCount + 1, |
79 onPageFinishedHelper.getCallCount()); | 82 onPageFinishedHelper.getCallCount()); |
80 assertEquals("onPageFinished should not be called for the error url.", S YNC_URL, | 83 assertEquals("onPageFinished should not be called for the error url.", S YNC_URL, |
81 onPageFinishedHelper.getUrl()); | 84 onPageFinishedHelper.getUrl()); |
82 | 85 |
83 String baseUrl = null; | 86 String baseUrl = null; |
84 boolean navigationToDifferentPage = true; | 87 boolean navigationToDifferentPage = true; |
85 boolean fragmentNavigation = true; | 88 boolean fragmentNavigation = true; |
86 int httpStatusCode = 200; | 89 int httpStatusCode = 200; |
87 callCount = onPageFinishedHelper.getCallCount(); | 90 callCount = onPageFinishedHelper.getCallCount(); |
88 mWebContentsObserver.didNavigateMainFrame(EXAMPLE_URL, baseUrl, | 91 mWebContentsObserver.didNavigateMainFrame(EXAMPLE_URL, baseUrl, |
89 !navigationToDifferentPage, fragmentNavigation, httpStatusCode); | 92 !navigationToDifferentPage, fragmentNavigation, httpStatusCode); |
93 mWebContentsObserver.didStopLoading(EXAMPLE_URL); | |
90 onPageFinishedHelper.waitForCallback(callCount); | 94 onPageFinishedHelper.waitForCallback(callCount); |
91 assertEquals("onPageFinished should be called for main frame fragment na vigations.", | 95 assertEquals("onPageFinished should be called for main frame fragment na vigations.", |
92 callCount + 1, onPageFinishedHelper.getCallCount()); | 96 callCount + 1, onPageFinishedHelper.getCallCount()); |
93 assertEquals("onPageFinished should be called for main frame fragment na vigations.", | 97 assertEquals("onPageFinished should be called for main frame fragment na vigations.", |
94 EXAMPLE_URL, onPageFinishedHelper.getUrl()); | 98 EXAMPLE_URL, onPageFinishedHelper.getUrl()); |
95 | 99 |
96 callCount = onPageFinishedHelper.getCallCount(); | 100 callCount = onPageFinishedHelper.getCallCount(); |
97 mWebContentsObserver.didNavigateMainFrame(EXAMPLE_URL, baseUrl, | 101 mWebContentsObserver.didNavigateMainFrame(EXAMPLE_URL, baseUrl, |
98 !navigationToDifferentPage, !fragmentNavigation, httpStatusCode) ; | 102 !navigationToDifferentPage, !fragmentNavigation, httpStatusCode) ; |
99 mWebContentsObserver.didFinishLoad(frameId, SYNC_URL, mainFrame); | 103 mWebContentsObserver.didFinishLoad(frameId, SYNC_URL, mainFrame); |
104 mWebContentsObserver.didStopLoading(SYNC_URL); | |
100 onPageFinishedHelper.waitForCallback(callCount); | 105 onPageFinishedHelper.waitForCallback(callCount); |
101 onPageFinishedHelper.waitForCallback(callCount); | 106 onPageFinishedHelper.waitForCallback(callCount); |
102 assertEquals("onPageFinished should be called only for main frame fragme nt navigations.", | 107 assertEquals("onPageFinished should be called only for main frame fragme nt navigations.", |
103 callCount + 1, onPageFinishedHelper.getCallCount()); | 108 callCount + 1, onPageFinishedHelper.getCallCount()); |
104 assertEquals("onPageFinished should be called only for main frame fragme nt navigations.", | 109 assertEquals("onPageFinished should be called only for main frame fragme nt navigations.", |
105 SYNC_URL, onPageFinishedHelper.getUrl()); | 110 SYNC_URL, onPageFinishedHelper.getUrl()); |
106 } | 111 } |
107 | 112 |
108 @SmallTest | 113 @SmallTest |
109 @Feature({"AndroidWebView"}) | 114 @Feature({"AndroidWebView"}) |
(...skipping 25 matching lines...) Expand all Loading... | |
135 callCount = doUpdateVisitedHistoryHelper.getCallCount(); | 140 callCount = doUpdateVisitedHistoryHelper.getCallCount(); |
136 mWebContentsObserver.didNavigateAnyFrame(EXAMPLE_URL, baseUrl, reload); | 141 mWebContentsObserver.didNavigateAnyFrame(EXAMPLE_URL, baseUrl, reload); |
137 doUpdateVisitedHistoryHelper.waitForCallback(callCount); | 142 doUpdateVisitedHistoryHelper.waitForCallback(callCount); |
138 assertEquals("doUpdateVisitedHistory should be called for reloads.", cal lCount + 1, | 143 assertEquals("doUpdateVisitedHistory should be called for reloads.", cal lCount + 1, |
139 doUpdateVisitedHistoryHelper.getCallCount()); | 144 doUpdateVisitedHistoryHelper.getCallCount()); |
140 assertEquals("doUpdateVisitedHistory should be called for reloads.", EXA MPLE_URL, | 145 assertEquals("doUpdateVisitedHistory should be called for reloads.", EXA MPLE_URL, |
141 doUpdateVisitedHistoryHelper.getUrl()); | 146 doUpdateVisitedHistoryHelper.getUrl()); |
142 assertEquals(reload, doUpdateVisitedHistoryHelper.getIsReload()); | 147 assertEquals(reload, doUpdateVisitedHistoryHelper.getIsReload()); |
143 } | 148 } |
144 } | 149 } |
OLD | NEW |