diff --git a/src/main/java/com/mapzen/fragment/MapFragment.java b/src/main/java/com/mapzen/fragment/MapFragment.java index 19c18350..916f29e1 100644 --- a/src/main/java/com/mapzen/fragment/MapFragment.java +++ b/src/main/java/com/mapzen/fragment/MapFragment.java @@ -21,6 +21,7 @@ import org.oscim.renderer.MapRenderer; import org.oscim.theme.IRenderTheme; import org.oscim.theme.ThemeLoader; +import org.oscim.tiling.source.OkHttpEngine; import org.oscim.tiling.source.oscimap4.OSciMap4TileSource; import android.content.SharedPreferences; @@ -163,7 +164,10 @@ public void setTheme(MapzenTheme theme) { } private void setupMap() { - baseLayer = map.setBaseMap(new OSciMap4TileSource(getTileBaseSource())); + final OSciMap4TileSource tileSource = new OSciMap4TileSource(getTileBaseSource()); + tileSource.setHttpEngine(new OkHttpEngine.OkHttpFactory()); + baseLayer = map.setBaseMap(tileSource); + map.layers().add(new BuildingLayer(map, baseLayer)); map.layers().add(new LabelLayer(map, baseLayer)); diff --git a/src/test/java/com/mapzen/fragment/MapFragmentTest.java b/src/test/java/com/mapzen/fragment/MapFragmentTest.java index 585ea56a..e4719993 100644 --- a/src/test/java/com/mapzen/fragment/MapFragmentTest.java +++ b/src/test/java/com/mapzen/fragment/MapFragmentTest.java @@ -5,6 +5,7 @@ import com.mapzen.search.OnPoiClickListener; import com.mapzen.support.FakeMotionEvent; import com.mapzen.support.MapzenTestRunner; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -12,7 +13,12 @@ import org.oscim.event.Gesture; import org.oscim.layers.marker.ItemizedLayer; import org.oscim.layers.marker.MarkerItem; +import org.oscim.layers.tile.vector.VectorTileLayer; +import org.oscim.map.Map; import org.oscim.map.TestMap; +import org.oscim.tiling.TileSource; +import org.oscim.tiling.source.HttpEngine; +import org.oscim.tiling.source.OkHttpEngine; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowLog; @@ -23,6 +29,7 @@ import static com.mapzen.support.TestHelper.initBaseActivity; import static org.fest.assertions.api.ANDROID.assertThat; import static org.fest.assertions.api.Assertions.assertThat; +import static org.fest.reflect.core.Reflection.field; import static org.robolectric.util.FragmentTestUtil.startFragment; @Config(emulateSdk = 18) @@ -153,6 +160,17 @@ public void shouldPointToConfiguredTileService() throws Exception { assertThat(mapFragment.getTileBaseSource()).isEqualTo(expected); } + @Test + public void shouldUseOkHttp() throws Exception { + Map map = mapFragment.getMap(); + VectorTileLayer baseLayer = field("mBaseLayer").ofType(VectorTileLayer.class).in(map).get(); + TileSource tileSource = field("mTileSource").ofType(TileSource.class).in(baseLayer).get(); + HttpEngine.Factory factory = field("mHttpFactory").ofType(HttpEngine.Factory.class) + .in(tileSource).get(); + + assertThat(factory).isInstanceOf(OkHttpEngine.OkHttpFactory.class); + } + private void setTileSourceConfiguration(String source) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( activity); diff --git a/src/test/java/com/mapzen/shadows/ShadowMapView.java b/src/test/java/com/mapzen/shadows/ShadowMapView.java index 3a7f57c7..f62131eb 100644 --- a/src/test/java/com/mapzen/shadows/ShadowMapView.java +++ b/src/test/java/com/mapzen/shadows/ShadowMapView.java @@ -1,18 +1,17 @@ package com.mapzen.shadows; -import android.content.Context; -import android.util.AttributeSet; -import org.oscim.android.AndroidAssetAdapter; +import org.oscim.android.AndroidAssets; import org.oscim.android.MapView; import org.oscim.android.canvas.AndroidGraphics; -import org.oscim.backend.AssetAdapter; -import org.oscim.backend.CanvasAdapter; import org.oscim.map.Map; import org.oscim.map.TestMap; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; import org.robolectric.shadows.ShadowView; +import android.content.Context; +import android.util.AttributeSet; + /** * Custom shadow implementation for {@link org.oscim.android.MapView}. */ @@ -20,12 +19,12 @@ @Implements(MapView.class) public class ShadowMapView extends ShadowView { public void __constructor__(Context context, AttributeSet attributeSet) { - CanvasAdapter.g = AndroidGraphics.INSTANCE; - AssetAdapter.g = new AndroidAssetAdapter(context); + AndroidGraphics.init(); + AndroidAssets.init(context); } @Implementation - public Map getMap() { + public Map map() { return new TestMap(); } }