Chromium Code Reviews| 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..707c30b057126f086047f529a42555f437cd81bc 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 |
| @@ -14,10 +14,13 @@ 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.init.ChromeBrowserInitializer; |
| import org.chromium.chrome.browser.preferences.website.ContentSetting; |
| import org.chromium.chrome.browser.preferences.website.GeolocationInfo; |
| +import org.chromium.chrome.browser.tab.Tab; |
| +import org.chromium.ui.base.WindowAndroid; |
| /** |
| * Tests for GeolocationHeader and GeolocationTracker. |
| @@ -74,6 +77,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:4 1:0 2:5 3:9 4:4 5:0 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, |
| @@ -82,14 +91,19 @@ public class GeolocationHeaderTest extends InstrumentationTestCase { |
| GeolocationInfo infoHttp = new GeolocationInfo("http://www.google.de", null, false); |
| infoHttps.setContentSetting(httpsPermission); |
| infoHttp.setContentSetting(httpPermission); |
| - return GeolocationHeader.getGeoHeader(getInstrumentation().getTargetContext(), |
| - "https://www.google.de/search?q=kartoffelsalat", false); |
| + Context targetContext = getInstrumentation().getTargetContext(); |
| + WindowAndroid window = new WindowAndroid(targetContext); |
| + Tab tab = new Tab(0, false, window); |
|
dominickn
2016/12/01 00:30:26
You'll be able to get rid of these WindowAndroid /
|
| + return GeolocationHeader.getGeoHeader( |
| + targetContext, "https://www.google.de/search?q=kartoffelsalat", tab); |
| } |
| private String getHeaderWithLocation(double latitute, double longitude, long time) { |
| setMockLocation(latitute, longitude, time); |
| - return GeolocationHeader.getGeoHeader(getInstrumentation().getTargetContext(), |
| - SEARCH_URL_1, false); |
| + Context targetContext = getInstrumentation().getTargetContext(); |
| + WindowAndroid window = new WindowAndroid(targetContext); |
| + Tab tab = new Tab(0, false, window); |
| + return GeolocationHeader.getGeoHeader(targetContext, SEARCH_URL_1, tab); |
| } |
| private void setMockLocation(double latitute, double longitude, long time) { |
| @@ -107,11 +121,25 @@ public class GeolocationHeaderTest extends InstrumentationTestCase { |
| private void assertNullHeader(String url, boolean isIncognito) { |
| Context targetContext = getInstrumentation().getTargetContext(); |
| - assertNull(GeolocationHeader.getGeoHeader(targetContext, url, isIncognito)); |
| + WindowAndroid window = new WindowAndroid(targetContext); |
| + Tab tab = new Tab(0, isIncognito, window); |
| + assertNull(GeolocationHeader.getGeoHeader(targetContext, url, tab)); |
| } |
| private void assertNonNullHeader(String url, boolean isIncognito) { |
| Context targetContext = getInstrumentation().getTargetContext(); |
| - assertNotNull(GeolocationHeader.getGeoHeader(targetContext, url, isIncognito)); |
| + WindowAndroid window = new WindowAndroid(targetContext); |
| + Tab tab = new Tab(0, isIncognito, window); |
| + assertNotNull(GeolocationHeader.getGeoHeader(targetContext, url, tab)); |
| + } |
| + |
| + 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); |
| } |
| } |