| Index: chrome/android/javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java
|
| index 2e555f5daecc66d3b2f6fdfedeea20178a588579..6095efb4f2c359fa18f722bf8459c8e4032d5f42 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/BluetoothChooserDialogTest.java
|
| @@ -6,6 +6,7 @@ package org.chromium.chrome.browser;
|
|
|
| import android.Manifest;
|
| import android.app.Dialog;
|
| +import android.content.Context;
|
| import android.content.pm.PackageManager;
|
| import android.test.MoreAsserts;
|
| import android.test.suitebuilder.annotation.SmallTest;
|
| @@ -16,6 +17,7 @@ import android.widget.ListView;
|
| import org.chromium.base.ThreadUtils;
|
| import org.chromium.chrome.R;
|
| import org.chromium.chrome.test.ChromeActivityTestCaseBase;
|
| +import org.chromium.components.location.LocationUtils;
|
| import org.chromium.components.security_state.ConnectionSecurityLevel;
|
| import org.chromium.content.browser.test.util.Criteria;
|
| import org.chromium.content.browser.test.util.CriteriaHelper;
|
| @@ -68,6 +70,7 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom
|
| }
|
|
|
| private ActivityWindowAndroid mWindowAndroid;
|
| + private FakeLocationUtils mLocationUtils;
|
| private BluetoothChooserDialogWithFakeNatives mChooserDialog;
|
|
|
| public BluetoothChooserDialogTest() {
|
| @@ -79,10 +82,18 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom
|
| @Override
|
| protected void setUp() throws Exception {
|
| super.setUp();
|
| + mLocationUtils = new FakeLocationUtils();
|
| + LocationUtils.setInstanceForTesting(mLocationUtils);
|
| mChooserDialog = createDialog();
|
| }
|
|
|
| @Override
|
| + protected void tearDown() throws Exception {
|
| + LocationUtils.setInstanceForTesting(null);
|
| + super.tearDown();
|
| + }
|
| +
|
| + @Override
|
| public void startMainActivity() throws InterruptedException {
|
| startMainActivityOnBlankPage();
|
| }
|
| @@ -265,7 +276,7 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom
|
| new String[] {Manifest.permission.ACCESS_COARSE_LOCATION});
|
| assertNotNull(permissionDelegate.mCallback);
|
| // Grant permission.
|
| - permissionDelegate.mLocationGranted = true;
|
| + mLocationUtils.mLocationGranted = true;
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| @@ -284,15 +295,14 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom
|
| // TODO(jyasskin): Test when the user denies Chrome the ability to ask for permission.
|
|
|
| private static class TestAndroidPermissionDelegate implements AndroidPermissionDelegate {
|
| - boolean mLocationGranted = false;
|
| PermissionCallback mCallback = null;
|
| String[] mPermissionsRequested = null;
|
|
|
| @Override
|
| public boolean hasPermission(String permission) {
|
| - return permission.equals(Manifest.permission.ACCESS_COARSE_LOCATION)
|
| - && mLocationGranted;
|
| + return false;
|
| }
|
| +
|
| @Override
|
| public boolean canRequestPermission(String permission) {
|
| return true;
|
| @@ -310,4 +320,13 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom
|
| }
|
| }
|
| }
|
| +
|
| + private static class FakeLocationUtils extends LocationUtils {
|
| + public boolean mLocationGranted = false;
|
| +
|
| + @Override
|
| + public boolean chromiumHasLocationPermission(Context context) {
|
| + return mLocationGranted;
|
| + }
|
| + }
|
| }
|
|
|