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..a74ed73885abd9449d99a553b9f808b82305114e 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,23 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom |
@Override |
protected void setUp() throws Exception { |
super.setUp(); |
+ mLocationUtils = new FakeLocationUtils(); |
+ LocationUtils.setFactory(new LocationUtils.Factory() { |
+ @Override |
+ public LocationUtils create() { |
+ return mLocationUtils; |
+ } |
+ }); |
mChooserDialog = createDialog(); |
} |
@Override |
+ protected void tearDown() throws Exception { |
+ LocationUtils.setFactory(null); |
+ super.tearDown(); |
+ } |
+ |
+ @Override |
public void startMainActivity() throws InterruptedException { |
startMainActivityOnBlankPage(); |
} |
@@ -265,7 +281,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 +300,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 +325,13 @@ public class BluetoothChooserDialogTest extends ChromeActivityTestCaseBase<Chrom |
} |
} |
} |
+ |
+ private static class FakeLocationUtils extends LocationUtils { |
+ public boolean mLocationGranted = false; |
+ |
+ @Override |
+ public boolean hasAndroidLocationPermission(Context context) { |
+ return mLocationGranted; |
+ } |
+ } |
} |