| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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.MediumTest; | 7 import android.test.suitebuilder.annotation.MediumTest; |
| 8 import android.test.suitebuilder.annotation.SmallTest; | 8 import android.test.suitebuilder.annotation.SmallTest; |
| 9 import android.webkit.GeolocationPermissions; | 9 import android.webkit.GeolocationPermissions; |
| 10 | 10 |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 } | 116 } |
| 117 | 117 |
| 118 | 118 |
| 119 /** | 119 /** |
| 120 * Ensure that a call to navigator.getCurrentPosition works in WebView. | 120 * Ensure that a call to navigator.getCurrentPosition works in WebView. |
| 121 */ | 121 */ |
| 122 @MediumTest | 122 @MediumTest |
| 123 @Feature({"AndroidWebView"}) | 123 @Feature({"AndroidWebView"}) |
| 124 public void testGetPosition() throws Throwable { | 124 public void testGetPosition() throws Throwable { |
| 125 initAwContents(new GrantPermisionAwContentClient()); | 125 initAwContents(new GrantPermisionAwContentClient()); |
| 126 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 126 loadDataWithBaseUrlSync(mAwContents, mContentsClient.getOnPageFinishedHe
lper(), RAW_HTML, |
| 127 RAW_HTML, "text/html", false); | 127 "text/html", false, "https://google.com/", "about:blank"); |
| 128 | 128 |
| 129 mAwContents.evaluateJavaScriptForTests("initiate_getCurrentPosition();",
null); | 129 mAwContents.evaluateJavaScriptForTests("initiate_getCurrentPosition();",
null); |
| 130 | 130 |
| 131 poll(new Callable<Boolean>() { | 131 poll(new Callable<Boolean>() { |
| 132 @Override | 132 @Override |
| 133 public Boolean call() throws Exception { | 133 public Boolean call() throws Exception { |
| 134 return getPositionCountFromJS() == 1; | 134 return getPositionCountFromJS() == 1; |
| 135 } | 135 } |
| 136 }); | 136 }); |
| 137 | 137 |
| 138 mAwContents.evaluateJavaScriptForTests("initiate_getCurrentPosition();",
null); | 138 mAwContents.evaluateJavaScriptForTests("initiate_getCurrentPosition();",
null); |
| 139 poll(new Callable<Boolean>() { | 139 poll(new Callable<Boolean>() { |
| 140 @Override | 140 @Override |
| 141 public Boolean call() throws Exception { | 141 public Boolean call() throws Exception { |
| 142 return getPositionCountFromJS() == 2; | 142 return getPositionCountFromJS() == 2; |
| 143 } | 143 } |
| 144 }); | 144 }); |
| 145 } | 145 } |
| 146 | 146 |
| 147 /** | 147 /** |
| 148 * Ensure that a call to navigator.watchPosition works in WebView. | 148 * Ensure that a call to navigator.watchPosition works in WebView. |
| 149 */ | 149 */ |
| 150 @MediumTest | 150 @MediumTest |
| 151 @Feature({"AndroidWebView"}) | 151 @Feature({"AndroidWebView"}) |
| 152 public void testWatchPosition() throws Throwable { | 152 public void testWatchPosition() throws Throwable { |
| 153 initAwContents(new GrantPermisionAwContentClient()); | 153 initAwContents(new GrantPermisionAwContentClient()); |
| 154 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 154 loadDataWithBaseUrlSync(mAwContents, mContentsClient.getOnPageFinishedHe
lper(), RAW_HTML, |
| 155 RAW_HTML, "text/html", false); | 155 "text/html", false, "https://google.com/", "about:blank"); |
| 156 | 156 |
| 157 mAwContents.evaluateJavaScriptForTests("initiate_watchPosition();", null
); | 157 mAwContents.evaluateJavaScriptForTests("initiate_watchPosition();", null
); |
| 158 | 158 |
| 159 poll(new Callable<Boolean>() { | 159 poll(new Callable<Boolean>() { |
| 160 @Override | 160 @Override |
| 161 public Boolean call() throws Exception { | 161 public Boolean call() throws Exception { |
| 162 return getPositionCountFromJS() > 1; | 162 return getPositionCountFromJS() > 1; |
| 163 } | 163 } |
| 164 }); | 164 }); |
| 165 } | 165 } |
| 166 | 166 |
| 167 @MediumTest | 167 @MediumTest |
| 168 @Feature({"AndroidWebView"}) | 168 @Feature({"AndroidWebView"}) |
| 169 public void testPauseGeolocationOnPause() throws Throwable { | 169 public void testPauseGeolocationOnPause() throws Throwable { |
| 170 initAwContents(new GrantPermisionAwContentClient()); | 170 initAwContents(new GrantPermisionAwContentClient()); |
| 171 // Start a watch going. | 171 // Start a watch going. |
| 172 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 172 loadDataWithBaseUrlSync(mAwContents, mContentsClient.getOnPageFinishedHe
lper(), RAW_HTML, |
| 173 RAW_HTML, "text/html", false); | 173 "text/html", false, "https://google.com/", "about:blank"); |
| 174 | 174 |
| 175 mAwContents.evaluateJavaScriptForTests("initiate_watchPosition();", null
); | 175 mAwContents.evaluateJavaScriptForTests("initiate_watchPosition();", null
); |
| 176 | 176 |
| 177 poll(new Callable<Boolean>() { | 177 poll(new Callable<Boolean>() { |
| 178 @Override | 178 @Override |
| 179 public Boolean call() throws Exception { | 179 public Boolean call() throws Exception { |
| 180 return getPositionCountFromJS() > 1; | 180 return getPositionCountFromJS() > 1; |
| 181 } | 181 } |
| 182 }); | 182 }); |
| 183 | 183 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 public void testPauseAwContentsBeforeNavigating() throws Throwable { | 221 public void testPauseAwContentsBeforeNavigating() throws Throwable { |
| 222 initAwContents(new GrantPermisionAwContentClient()); | 222 initAwContents(new GrantPermisionAwContentClient()); |
| 223 getInstrumentation().runOnMainSync(new Runnable() { | 223 getInstrumentation().runOnMainSync(new Runnable() { |
| 224 @Override | 224 @Override |
| 225 public void run() { | 225 public void run() { |
| 226 mAwContents.onPause(); | 226 mAwContents.onPause(); |
| 227 } | 227 } |
| 228 }); | 228 }); |
| 229 | 229 |
| 230 // Start a watch going. | 230 // Start a watch going. |
| 231 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 231 loadDataWithBaseUrlSync(mAwContents, mContentsClient.getOnPageFinishedHe
lper(), RAW_HTML, |
| 232 RAW_HTML, "text/html", false); | 232 "text/html", false, "https://google.com/", "about:blank"); |
| 233 | 233 |
| 234 mAwContents.evaluateJavaScriptForTests("initiate_watchPosition();", null
); | 234 mAwContents.evaluateJavaScriptForTests("initiate_watchPosition();", null
); |
| 235 | 235 |
| 236 assertEquals(0, getPositionCountFromJS()); | 236 assertEquals(0, getPositionCountFromJS()); |
| 237 | 237 |
| 238 ensureGeolocationRunning(false); | 238 ensureGeolocationRunning(false); |
| 239 | 239 |
| 240 getInstrumentation().runOnMainSync(new Runnable() { | 240 getInstrumentation().runOnMainSync(new Runnable() { |
| 241 @Override | 241 @Override |
| 242 public void run() { | 242 public void run() { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 258 @Feature({"AndroidWebView"}) | 258 @Feature({"AndroidWebView"}) |
| 259 public void testResumeWhenNotStarted() throws Throwable { | 259 public void testResumeWhenNotStarted() throws Throwable { |
| 260 initAwContents(new GrantPermisionAwContentClient()); | 260 initAwContents(new GrantPermisionAwContentClient()); |
| 261 getInstrumentation().runOnMainSync(new Runnable() { | 261 getInstrumentation().runOnMainSync(new Runnable() { |
| 262 @Override | 262 @Override |
| 263 public void run() { | 263 public void run() { |
| 264 mAwContents.onPause(); | 264 mAwContents.onPause(); |
| 265 } | 265 } |
| 266 }); | 266 }); |
| 267 | 267 |
| 268 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 268 loadDataWithBaseUrlSync(mAwContents, mContentsClient.getOnPageFinishedHe
lper(), RAW_HTML, |
| 269 RAW_HTML, "text/html", false); | 269 "text/html", false, "https://google.com/", "about:blank"); |
| 270 | 270 |
| 271 getInstrumentation().runOnMainSync(new Runnable() { | 271 getInstrumentation().runOnMainSync(new Runnable() { |
| 272 @Override | 272 @Override |
| 273 public void run() { | 273 public void run() { |
| 274 mAwContents.onResume(); | 274 mAwContents.onResume(); |
| 275 } | 275 } |
| 276 }); | 276 }); |
| 277 | 277 |
| 278 ensureGeolocationRunning(false); | 278 ensureGeolocationRunning(false); |
| 279 } | 279 } |
| 280 | 280 |
| 281 @Feature({"AndroidWebView"}) | 281 @Feature({"AndroidWebView"}) |
| 282 @SmallTest | 282 @SmallTest |
| 283 public void testDenyAccessByDefault() throws Throwable { | 283 public void testDenyAccessByDefault() throws Throwable { |
| 284 initAwContents(new DefaultPermisionAwContentClient()); | 284 initAwContents(new DefaultPermisionAwContentClient()); |
| 285 loadDataSync(mAwContents, mContentsClient.getOnPageFinishedHelper(), | 285 loadDataWithBaseUrlSync(mAwContents, mContentsClient.getOnPageFinishedHe
lper(), RAW_HTML, |
| 286 RAW_HTML, "text/html", false); | 286 "text/html", false, "https://google.com/", "about:blank"); |
| 287 | 287 |
| 288 mAwContents.evaluateJavaScriptForTests("initiate_getCurrentPosition();",
null); | 288 mAwContents.evaluateJavaScriptForTests("initiate_getCurrentPosition();",
null); |
| 289 | 289 |
| 290 poll(new Callable<Boolean>() { | 290 poll(new Callable<Boolean>() { |
| 291 @SuppressFBWarnings("DM_GC") | 291 @SuppressFBWarnings("DM_GC") |
| 292 @Override | 292 @Override |
| 293 public Boolean call() throws Exception { | 293 public Boolean call() throws Exception { |
| 294 Runtime.getRuntime().gc(); | 294 Runtime.getRuntime().gc(); |
| 295 return "deny".equals(getTitleOnUiThread(mAwContents)); | 295 return "deny".equals(getTitleOnUiThread(mAwContents)); |
| 296 } | 296 } |
| 297 }); | 297 }); |
| 298 } | 298 } |
| 299 | 299 |
| 300 } | 300 } |
| OLD | NEW |