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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java

Issue 2533523002: Add Geolocation.PermissionState histogram. (Closed)
Patch Set: Use ChromeActivityTestCaseBase<ChromeActivity> in tests. Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
index 272278efceef71bc3828194b07d68eae5d1fc9fc..5e1afca87d17fd99ee34b3eef4b0886cae61b836 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/geo/GeolocationHeaderTest.java
@@ -9,24 +9,29 @@ import android.location.Location;
import android.location.LocationManager;
import android.os.Build;
import android.os.SystemClock;
-import android.test.InstrumentationTestCase;
import android.test.UiThreadTest;
import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.library_loader.ProcessInitException;
+import org.chromium.base.metrics.RecordHistogram;
import org.chromium.base.test.util.Feature;
+import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.init.ChromeBrowserInitializer;
import org.chromium.chrome.browser.preferences.website.ContentSetting;
import org.chromium.chrome.browser.preferences.website.GeolocationInfo;
+import org.chromium.chrome.test.ChromeActivityTestCaseBase;
/**
* Tests for GeolocationHeader and GeolocationTracker.
*/
-public class GeolocationHeaderTest extends InstrumentationTestCase {
-
+public class GeolocationHeaderTest extends ChromeActivityTestCaseBase<ChromeActivity> {
private static final String SEARCH_URL_1 = "https://www.google.com/search?q=potatoes";
private static final String SEARCH_URL_2 = "https://www.google.co.jp/webhp?#q=dinosaurs";
+ public GeolocationHeaderTest() {
+ super(ChromeActivity.class);
+ }
+
@SmallTest
@Feature({"Location"})
@UiThreadTest
@@ -74,6 +79,12 @@ public class GeolocationHeaderTest extends InstrumentationTestCase {
assertNull(getHeaderWithLocation(20.3, 155.8, now - oneWeek));
GeolocationTracker.setLocationForTesting(null);
assertNullHeader(SEARCH_URL_1, false);
+
+ // The values in this Histogram assert will change if the asserts above are altered.
+ assertHistogramEquals("Geolocation.Header.PermissionState", 43,
+ "0:0 1:4 2:0 3:5 4:9 5:4 6:0 7:0 8:0 9:0 10:0 11:0 12:0 13:0 14:0 15:0 16:0 "
+ + "17:0 18:0 19:0 20:0 21:0 22:0 23:0 24:0 25:0 26:0 27:0 28:0 29:0 "
+ + "30:0 31:0 32:0 33:0 34:0 35:0 36:0 37:0 38:0 39:0 40:0 41:0 42:0 ");
}
private String getHeaderWithPermissions(ContentSetting httpsPermission,
@@ -83,13 +94,13 @@ public class GeolocationHeaderTest extends InstrumentationTestCase {
infoHttps.setContentSetting(httpsPermission);
infoHttp.setContentSetting(httpPermission);
return GeolocationHeader.getGeoHeader(getInstrumentation().getTargetContext(),
- "https://www.google.de/search?q=kartoffelsalat", false);
+ "https://www.google.de/search?q=kartoffelsalat", getActivity().getActivityTab());
}
private String getHeaderWithLocation(double latitute, double longitude, long time) {
setMockLocation(latitute, longitude, time);
- return GeolocationHeader.getGeoHeader(getInstrumentation().getTargetContext(),
- SEARCH_URL_1, false);
+ return GeolocationHeader.getGeoHeader(getInstrumentation().getTargetContext(), SEARCH_URL_1,
+ getActivity().getActivityTab());
}
private void setMockLocation(double latitute, double longitude, long time) {
@@ -106,12 +117,27 @@ public class GeolocationHeaderTest extends InstrumentationTestCase {
}
private void assertNullHeader(String url, boolean isIncognito) {
- Context targetContext = getInstrumentation().getTargetContext();
- assertNull(GeolocationHeader.getGeoHeader(targetContext, url, isIncognito));
+ assertNull(GeolocationHeader.getGeoHeader(
+ getInstrumentation().getTargetContext(), url, getActivity().getActivityTab()));
}
private void assertNonNullHeader(String url, boolean isIncognito) {
- Context targetContext = getInstrumentation().getTargetContext();
- assertNotNull(GeolocationHeader.getGeoHeader(targetContext, url, isIncognito));
+ assertNotNull(GeolocationHeader.getGeoHeader(
+ getInstrumentation().getTargetContext(), url, getActivity().getActivityTab()));
+ }
+
+ private void assertHistogramEquals(String name, int buckets, String output) {
+ String permissions = "";
+ for (int i = 0; i < buckets; i++) {
+ int count = RecordHistogram.getHistogramValueCountForTesting(name, i);
+ permissions =
+ permissions.concat(Integer.toString(i) + ":" + Integer.toString(count) + " ");
+ }
+ assertEquals(output, permissions);
+ }
+
+ @Override
+ public void startMainActivity() throws InterruptedException {
+ startMainActivityOnBlankPage();
}
}

Powered by Google App Engine
This is Rietveld 408576698