Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(59)

Side by Side Diff: content/public/android/javatests/src/org/chromium/content/browser/ContentViewLocationTest.java

Issue 2708243004: Auto convert content shell tests to JUnit4 (Closed)
Patch Set: Remove test that failed Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 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.content.browser; 5 package org.chromium.content.browser;
6 6
7 import android.support.test.filters.MediumTest; 7 import android.support.test.filters.MediumTest;
8 8
9 import org.chromium.base.test.util.Feature; 9 import org.chromium.base.test.util.Feature;
10 import org.chromium.content.browser.test.util.Criteria; 10 import org.chromium.content.browser.test.util.Criteria;
11 import org.chromium.content.browser.test.util.CriteriaHelper; 11 import org.chromium.content.browser.test.util.CriteriaHelper;
12 import org.chromium.content.browser.test.util.TestCallbackHelperContainer; 12 import org.chromium.content.browser.test.util.TestCallbackHelperContainer;
13 import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEval uateJavaScriptResultHelper; 13 import org.chromium.content.browser.test.util.TestCallbackHelperContainer.OnEval uateJavaScriptResultHelper;
14 import org.chromium.content_public.browser.LoadUrlParams; 14 import org.chromium.content_public.browser.LoadUrlParams;
15 import org.chromium.content_shell_apk.ContentShellTestBase;
16 import org.chromium.device.geolocation.LocationProviderFactory; 15 import org.chromium.device.geolocation.LocationProviderFactory;
17 import org.chromium.device.geolocation.MockLocationProvider; 16 import org.chromium.device.geolocation.MockLocationProvider;
18 17
19 import java.util.concurrent.Callable; 18 import java.util.concurrent.Callable;
19 import org.junit.Rule;
20 import org.junit.Test;
21 import org.chromium.base.test.BaseJUnit4ClassRunner;
22 import org.junit.runner.RunWith;
23 import android.support.test.InstrumentationRegistry;
24 import org.junit.Assert;
25 import org.junit.After;
26 import org.junit.Before;
27 import org.chromium.content_shell_apk.ContentShellActivityTestRule;
20 28
21 /** 29 /**
22 * Test suite for ensureing that Geolocation interacts as expected 30 * Test suite for ensureing that Geolocation interacts as expected
23 * with ContentView APIs - e.g. that it's started and stopped as the 31 * with ContentView APIs - e.g. that it's started and stopped as the
24 * ContentView is hidden or shown. 32 * ContentView is hidden or shown.
25 */ 33 */
26 public class ContentViewLocationTest extends ContentShellTestBase { 34 @RunWith(BaseJUnit4ClassRunner.class)
35 public class ContentViewLocationTest {
36
37 @Rule
38 public ContentShellActivityTestRule mActivityTestRule = new ContentShellActi vityTestRule();
27 39
28 private TestCallbackHelperContainer mTestCallbackHelperContainer; 40 private TestCallbackHelperContainer mTestCallbackHelperContainer;
29 private TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper mJavasc riptHelper; 41 private TestCallbackHelperContainer.OnEvaluateJavaScriptResultHelper mJavasc riptHelper;
30 private MockLocationProvider mMockLocationProvider; 42 private MockLocationProvider mMockLocationProvider;
31 43
32 private void hideContentViewOnUiThread() { 44 private void hideContentViewOnUiThread() {
33 getInstrumentation().runOnMainSync(new Runnable() { 45 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable( ) {
34 @Override 46 @Override
35 public void run() { 47 public void run() {
36 getContentViewCore().onHide(); 48 mActivityTestRule.getContentViewCore().onHide();
37 } 49 }
38 }); 50 });
39 } 51 }
40 52
41 private void showContentViewOnUiThread() { 53 private void showContentViewOnUiThread() {
42 getInstrumentation().runOnMainSync(new Runnable() { 54 InstrumentationRegistry.getInstrumentation().runOnMainSync(new Runnable( ) {
43 @Override 55 @Override
44 public void run() { 56 public void run() {
45 getContentViewCore().onShow(); 57 mActivityTestRule.getContentViewCore().onShow();
46 } 58 }
47 }); 59 });
48 } 60 }
49 61
50 private void pollForPositionCallback() throws Throwable { 62 private void pollForPositionCallback() throws Throwable {
51 mJavascriptHelper.evaluateJavaScriptForTests(getWebContents(), 63 mJavascriptHelper.evaluateJavaScriptForTests(mActivityTestRule.getWebCon tents(),
52 "positionCount = 0"); 64 "positionCount = 0");
53 mJavascriptHelper.waitUntilHasValue(); 65 mJavascriptHelper.waitUntilHasValue();
54 assertEquals(0, Integer.parseInt(mJavascriptHelper.getJsonResultAndClear ())); 66 Assert.assertEquals(0, Integer.parseInt(mJavascriptHelper.getJsonResultA ndClear()));
55 67
56 CriteriaHelper.pollInstrumentationThread(new Criteria() { 68 CriteriaHelper.pollInstrumentationThread(new Criteria() {
57 @Override 69 @Override
58 public boolean isSatisfied() { 70 public boolean isSatisfied() {
59 mJavascriptHelper.evaluateJavaScriptForTests(getWebContents( ), "positionCount"); 71 mJavascriptHelper.evaluateJavaScriptForTests(mActivityTestRu le.getWebContents(), "positionCount");
60 try { 72 try {
61 mJavascriptHelper.waitUntilHasValue(); 73 mJavascriptHelper.waitUntilHasValue();
62 } catch (Exception e) { 74 } catch (Exception e) {
63 fail(); 75 Assert.fail();
64 } 76 }
65 return Integer.parseInt(mJavascriptHelper.getJsonResultAndCl ear()) > 0; 77 return Integer.parseInt(mJavascriptHelper.getJsonResultAndCl ear()) > 0;
66 } 78 }
67 }); 79 });
68 } 80 }
69 81
70 private void startGeolocationWatchPosition() throws Throwable { 82 private void startGeolocationWatchPosition() throws Throwable {
71 mJavascriptHelper.evaluateJavaScriptForTests(getWebContents(), 83 mJavascriptHelper.evaluateJavaScriptForTests(mActivityTestRule.getWebCon tents(),
72 "initiate_watchPosition();"); 84 "initiate_watchPosition();");
73 mJavascriptHelper.waitUntilHasValue(); 85 mJavascriptHelper.waitUntilHasValue();
74 } 86 }
75 87
76 private void ensureGeolocationRunning(final boolean running) throws Exceptio n { 88 private void ensureGeolocationRunning(final boolean running) throws Exceptio n {
77 CriteriaHelper.pollInstrumentationThread(Criteria.equals(running, new Ca llable<Boolean>() { 89 CriteriaHelper.pollInstrumentationThread(Criteria.equals(running, new Ca llable<Boolean>() {
78 @Override 90 @Override
79 public Boolean call() { 91 public Boolean call() {
80 return mMockLocationProvider.isRunning(); 92 return mMockLocationProvider.isRunning();
81 } 93 }
82 })); 94 }));
83 } 95 }
84 96
85 @Override 97 @Before
86 protected void setUp() throws Exception { 98
87 super.setUp(); 99 public void setUp() throws Exception {
88 100
89 mMockLocationProvider = new MockLocationProvider(); 101 mMockLocationProvider = new MockLocationProvider();
90 LocationProviderFactory.setLocationProviderImpl(mMockLocationProvider); 102 LocationProviderFactory.setLocationProviderImpl(mMockLocationProvider);
91 103
92 try { 104 try {
93 startActivityWithTestUrl("content/test/data/android/geolocation.html "); 105 mActivityTestRule.launchContentShellWithUrlSync("content/test/data/a ndroid/geolocation.html");
94 } catch (Throwable t) { 106 } catch (Throwable t) {
95 fail(); 107 Assert.fail();
96 } 108 }
97 109
98 mTestCallbackHelperContainer = new TestCallbackHelperContainer(getConten tViewCore()); 110 mTestCallbackHelperContainer = new TestCallbackHelperContainer(mActivity TestRule.getContentViewCore());
99 mJavascriptHelper = new OnEvaluateJavaScriptResultHelper(); 111 mJavascriptHelper = new OnEvaluateJavaScriptResultHelper();
100 112
101 ensureGeolocationRunning(false); 113 ensureGeolocationRunning(false);
102 } 114 }
103 115
104 @Override 116 @After
105 protected void tearDown() throws Exception { 117
jbudorick 2017/03/01 23:10:19 No bonus line here.
the real yoland 2017/03/08 23:35:31 Done
118 public void tearDown() throws Exception {
106 mMockLocationProvider.stopUpdates(); 119 mMockLocationProvider.stopUpdates();
107 super.tearDown();
108 } 120 }
109 121
122 @Test
110 @MediumTest 123 @MediumTest
111 @Feature({"Location"}) 124 @Feature({"Location"})
112 public void testWatchHideShowStop() throws Throwable { 125 public void testWatchHideShowStop() throws Throwable {
113 126
114 startGeolocationWatchPosition(); 127 startGeolocationWatchPosition();
115 pollForPositionCallback(); 128 pollForPositionCallback();
116 ensureGeolocationRunning(true); 129 ensureGeolocationRunning(true);
117 130
118 // Now hide the ContentView and ensure that geolocation stops. 131 // Now hide the ContentView and ensure that geolocation stops.
119 hideContentViewOnUiThread(); 132 hideContentViewOnUiThread();
120 ensureGeolocationRunning(false); 133 ensureGeolocationRunning(false);
121 134
122 mJavascriptHelper.evaluateJavaScriptForTests(getWebContents(), 135 mJavascriptHelper.evaluateJavaScriptForTests(mActivityTestRule.getWebCon tents(),
123 "positionCount = 0"); 136 "positionCount = 0");
124 mJavascriptHelper.waitUntilHasValue(); 137 mJavascriptHelper.waitUntilHasValue();
125 138
126 // Show the ContentView again and ensure that geolocation starts again. 139 // Show the ContentView again and ensure that geolocation starts again.
127 showContentViewOnUiThread(); 140 showContentViewOnUiThread();
128 pollForPositionCallback(); 141 pollForPositionCallback();
129 ensureGeolocationRunning(true); 142 ensureGeolocationRunning(true);
130 143
131 // Navigate away and ensure that geolocation stops. 144 // Navigate away and ensure that geolocation stops.
132 loadUrl(getContentViewCore().getWebContents().getNavigationController(), 145 mActivityTestRule.loadUrl(mActivityTestRule.getContentViewCore().getWebC ontents().getNavigationController(),
133 mTestCallbackHelperContainer, new LoadUrlParams("about:blank")); 146 mTestCallbackHelperContainer, new LoadUrlParams("about:blank"));
134 ensureGeolocationRunning(false); 147 ensureGeolocationRunning(false);
135 } 148 }
136 149
150 @Test
137 @MediumTest 151 @MediumTest
138 @Feature({"Location"}) 152 @Feature({"Location"})
139 public void testHideWatchResume() throws Throwable { 153 public void testHideWatchResume() throws Throwable {
140 hideContentViewOnUiThread(); 154 hideContentViewOnUiThread();
141 startGeolocationWatchPosition(); 155 startGeolocationWatchPosition();
142 ensureGeolocationRunning(false); 156 ensureGeolocationRunning(false);
143 157
144 showContentViewOnUiThread(); 158 showContentViewOnUiThread();
145 pollForPositionCallback(); 159 pollForPositionCallback();
146 ensureGeolocationRunning(true); 160 ensureGeolocationRunning(true);
147 } 161 }
148 162
163 @Test
149 @MediumTest 164 @MediumTest
150 @Feature({"Location"}) 165 @Feature({"Location"})
151 public void testWatchHideNewWatchShow() throws Throwable { 166 public void testWatchHideNewWatchShow() throws Throwable {
152 startGeolocationWatchPosition(); 167 startGeolocationWatchPosition();
153 pollForPositionCallback(); 168 pollForPositionCallback();
154 ensureGeolocationRunning(true); 169 ensureGeolocationRunning(true);
155 170
156 hideContentViewOnUiThread(); 171 hideContentViewOnUiThread();
157 172
158 // Make sure that when starting a new watch while paused we still don't 173 // Make sure that when starting a new watch while paused we still don't
159 // start up geolocation until we show the content view again. 174 // start up geolocation until we show the content view again.
160 startGeolocationWatchPosition(); 175 startGeolocationWatchPosition();
161 ensureGeolocationRunning(false); 176 ensureGeolocationRunning(false);
162 177
163 showContentViewOnUiThread(); 178 showContentViewOnUiThread();
164 pollForPositionCallback(); 179 pollForPositionCallback();
165 ensureGeolocationRunning(true); 180 ensureGeolocationRunning(true);
166 } 181 }
167 182
183 @Test
168 @MediumTest 184 @MediumTest
169 @Feature({"Location"}) 185 @Feature({"Location"})
170 public void testHideWatchStopShow() throws Throwable { 186 public void testHideWatchStopShow() throws Throwable {
171 hideContentViewOnUiThread(); 187 hideContentViewOnUiThread();
172 startGeolocationWatchPosition(); 188 startGeolocationWatchPosition();
173 ensureGeolocationRunning(false); 189 ensureGeolocationRunning(false);
174 190
175 loadUrl(getContentViewCore().getWebContents().getNavigationController(), 191 mActivityTestRule.loadUrl(mActivityTestRule.getContentViewCore().getWebC ontents().getNavigationController(),
176 mTestCallbackHelperContainer, new LoadUrlParams("about:blank")); 192 mTestCallbackHelperContainer, new LoadUrlParams("about:blank"));
177 showContentViewOnUiThread(); 193 showContentViewOnUiThread();
178 ensureGeolocationRunning(false); 194 ensureGeolocationRunning(false);
179 } 195 }
180 } 196 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698