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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java

Issue 2105573002: Revert of Add a LocationUtils class to give all Chromium Android code access to location helpers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkcr
Patch Set: Created 4 years, 5 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
« no previous file with comments | « chrome/android/javatests/DEPS ('k') | chrome/test/android/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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; 5 package org.chromium.chrome.browser;
6 6
7 import android.Manifest; 7 import android.Manifest;
8 import android.app.Dialog; 8 import android.app.Dialog;
9 import android.content.Context;
10 import android.content.pm.PackageManager; 9 import android.content.pm.PackageManager;
11 import android.test.MoreAsserts; 10 import android.test.MoreAsserts;
12 import android.test.suitebuilder.annotation.SmallTest; 11 import android.test.suitebuilder.annotation.SmallTest;
13 import android.view.View; 12 import android.view.View;
14 import android.widget.Button; 13 import android.widget.Button;
15 import android.widget.ListView; 14 import android.widget.ListView;
16 15
17 import org.chromium.base.ThreadUtils; 16 import org.chromium.base.ThreadUtils;
18 import org.chromium.chrome.R; 17 import org.chromium.chrome.R;
19 import org.chromium.chrome.test.ChromeActivityTestCaseBase; 18 import org.chromium.chrome.test.ChromeActivityTestCaseBase;
20 import org.chromium.components.location.LocationUtils;
21 import org.chromium.components.security_state.ConnectionSecurityLevel; 19 import org.chromium.components.security_state.ConnectionSecurityLevel;
22 import org.chromium.content.browser.test.util.Criteria; 20 import org.chromium.content.browser.test.util.Criteria;
23 import org.chromium.content.browser.test.util.CriteriaHelper; 21 import org.chromium.content.browser.test.util.CriteriaHelper;
24 import org.chromium.content.browser.test.util.TouchCommon; 22 import org.chromium.content.browser.test.util.TouchCommon;
25 import org.chromium.ui.base.ActivityWindowAndroid; 23 import org.chromium.ui.base.ActivityWindowAndroid;
26 import org.chromium.ui.base.AndroidPermissionDelegate; 24 import org.chromium.ui.base.AndroidPermissionDelegate;
27 import org.chromium.ui.base.WindowAndroid; 25 import org.chromium.ui.base.WindowAndroid;
28 import org.chromium.ui.base.WindowAndroid.PermissionCallback; 26 import org.chromium.ui.base.WindowAndroid.PermissionCallback;
29 import org.chromium.ui.widget.TextViewWithClickableSpans; 27 import org.chromium.ui.widget.TextViewWithClickableSpans;
30 28
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 void nativeShowBluetoothOverviewLink(long nativeBluetoothChooserAndroid) {} 61 void nativeShowBluetoothOverviewLink(long nativeBluetoothChooserAndroid) {}
64 62
65 @Override 63 @Override
66 void nativeShowBluetoothAdapterOffLink(long nativeBluetoothChooserAndroi d) {} 64 void nativeShowBluetoothAdapterOffLink(long nativeBluetoothChooserAndroi d) {}
67 65
68 @Override 66 @Override
69 void nativeShowNeedLocationPermissionLink(long nativeBluetoothChooserAnd roid) {} 67 void nativeShowNeedLocationPermissionLink(long nativeBluetoothChooserAnd roid) {}
70 } 68 }
71 69
72 private ActivityWindowAndroid mWindowAndroid; 70 private ActivityWindowAndroid mWindowAndroid;
73 private FakeLocationUtils mLocationUtils;
74 private BluetoothChooserDialogWithFakeNatives mChooserDialog; 71 private BluetoothChooserDialogWithFakeNatives mChooserDialog;
75 72
76 public BluetoothChooserDialogTest() { 73 public BluetoothChooserDialogTest() {
77 super(ChromeActivity.class); 74 super(ChromeActivity.class);
78 } 75 }
79 76
80 // ChromeActivityTestCaseBase: 77 // ChromeActivityTestCaseBase:
81 78
82 @Override 79 @Override
83 protected void setUp() throws Exception { 80 protected void setUp() throws Exception {
84 super.setUp(); 81 super.setUp();
85 mLocationUtils = new FakeLocationUtils();
86 LocationUtils.setFactory(new LocationUtils.Factory() {
87 @Override
88 public LocationUtils create() {
89 return mLocationUtils;
90 }
91 });
92 mChooserDialog = createDialog(); 82 mChooserDialog = createDialog();
93 } 83 }
94 84
95 @Override 85 @Override
96 protected void tearDown() throws Exception {
97 LocationUtils.setFactory(null);
98 super.tearDown();
99 }
100
101 @Override
102 public void startMainActivity() throws InterruptedException { 86 public void startMainActivity() throws InterruptedException {
103 startMainActivityOnBlankPage(); 87 startMainActivityOnBlankPage();
104 } 88 }
105 89
106 private BluetoothChooserDialogWithFakeNatives createDialog() { 90 private BluetoothChooserDialogWithFakeNatives createDialog() {
107 return ThreadUtils.runOnUiThreadBlockingNoException( 91 return ThreadUtils.runOnUiThreadBlockingNoException(
108 new Callable<BluetoothChooserDialogWithFakeNatives>() { 92 new Callable<BluetoothChooserDialogWithFakeNatives>() {
109 @Override 93 @Override
110 public BluetoothChooserDialogWithFakeNatives call() { 94 public BluetoothChooserDialogWithFakeNatives call() {
111 mWindowAndroid = new ActivityWindowAndroid(getActivity() ); 95 mWindowAndroid = new ActivityWindowAndroid(getActivity() );
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 public void run() { 258 public void run() {
275 errorView.getClickableSpans()[0].onClick(errorView); 259 errorView.getClickableSpans()[0].onClick(errorView);
276 } 260 }
277 }); 261 });
278 262
279 // Permission was requested. 263 // Permission was requested.
280 MoreAsserts.assertEquals(permissionDelegate.mPermissionsRequested, 264 MoreAsserts.assertEquals(permissionDelegate.mPermissionsRequested,
281 new String[] {Manifest.permission.ACCESS_COARSE_LOCATION}); 265 new String[] {Manifest.permission.ACCESS_COARSE_LOCATION});
282 assertNotNull(permissionDelegate.mCallback); 266 assertNotNull(permissionDelegate.mCallback);
283 // Grant permission. 267 // Grant permission.
284 mLocationUtils.mLocationGranted = true; 268 permissionDelegate.mLocationGranted = true;
285 ThreadUtils.runOnUiThreadBlocking(new Runnable() { 269 ThreadUtils.runOnUiThreadBlocking(new Runnable() {
286 @Override 270 @Override
287 public void run() { 271 public void run() {
288 permissionDelegate.mCallback.onRequestPermissionsResult( 272 permissionDelegate.mCallback.onRequestPermissionsResult(
289 new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, 273 new String[] {Manifest.permission.ACCESS_FINE_LOCATION},
290 new int[] {PackageManager.PERMISSION_GRANTED}); 274 new int[] {PackageManager.PERMISSION_GRANTED});
291 } 275 }
292 }); 276 });
293 277
294 assertEquals(removeLinkTags(getActivity().getString(R.string.bluetooth_a dapter_off_help)), 278 assertEquals(removeLinkTags(getActivity().getString(R.string.bluetooth_a dapter_off_help)),
295 statusView.getText().toString()); 279 statusView.getText().toString());
296 280
297 mChooserDialog.closeDialog(); 281 mChooserDialog.closeDialog();
298 } 282 }
299 283
300 // TODO(jyasskin): Test when the user denies Chrome the ability to ask for p ermission. 284 // TODO(jyasskin): Test when the user denies Chrome the ability to ask for p ermission.
301 285
302 private static class TestAndroidPermissionDelegate implements AndroidPermiss ionDelegate { 286 private static class TestAndroidPermissionDelegate implements AndroidPermiss ionDelegate {
287 boolean mLocationGranted = false;
303 PermissionCallback mCallback = null; 288 PermissionCallback mCallback = null;
304 String[] mPermissionsRequested = null; 289 String[] mPermissionsRequested = null;
305 290
306 @Override 291 @Override
307 public boolean hasPermission(String permission) { 292 public boolean hasPermission(String permission) {
308 return false; 293 return permission.equals(Manifest.permission.ACCESS_COARSE_LOCATION)
294 && mLocationGranted;
309 } 295 }
310
311 @Override 296 @Override
312 public boolean canRequestPermission(String permission) { 297 public boolean canRequestPermission(String permission) {
313 return true; 298 return true;
314 } 299 }
315 @Override 300 @Override
316 public boolean isPermissionRevokedByPolicy(String permission) { 301 public boolean isPermissionRevokedByPolicy(String permission) {
317 return false; 302 return false;
318 } 303 }
319 @Override 304 @Override
320 public void requestPermissions(String[] permissions, PermissionCallback callback) { 305 public void requestPermissions(String[] permissions, PermissionCallback callback) {
321 mPermissionsRequested = permissions; 306 mPermissionsRequested = permissions;
322 if (permissions.length == 1 307 if (permissions.length == 1
323 && permissions[0].equals(Manifest.permission.ACCESS_COARSE_L OCATION)) { 308 && permissions[0].equals(Manifest.permission.ACCESS_COARSE_L OCATION)) {
324 mCallback = callback; 309 mCallback = callback;
325 } 310 }
326 } 311 }
327 } 312 }
328
329 private static class FakeLocationUtils extends LocationUtils {
330 public boolean mLocationGranted = false;
331
332 @Override
333 public boolean hasAndroidLocationPermission(Context context) {
334 return mLocationGranted;
335 }
336 }
337 } 313 }
OLDNEW
« no previous file with comments | « chrome/android/javatests/DEPS ('k') | chrome/test/android/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698