1 package com.android.settings.location; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import static org.mockito.ArgumentMatchers.anyInt; 6 import static org.mockito.Mockito.doReturn; 7 import static org.mockito.Mockito.spy; 8 9 import android.content.Context; 10 import android.content.res.Resources; 11 import android.support.v4.graphics.drawable.IconCompat; 12 13 import com.android.settings.R; 14 import com.android.settings.testutils.SettingsRobolectricTestRunner; 15 import com.android.settings.testutils.SliceTester; 16 17 import org.junit.Before; 18 import org.junit.Test; 19 import org.junit.runner.RunWith; 20 import org.robolectric.RuntimeEnvironment; 21 22 import java.util.List; 23 24 import androidx.slice.Slice; 25 import androidx.slice.SliceItem; 26 import androidx.slice.SliceMetadata; 27 import androidx.slice.SliceProvider; 28 import androidx.slice.core.SliceAction; 29 import androidx.slice.widget.SliceLiveData; 30 31 @RunWith(SettingsRobolectricTestRunner.class) 32 public class LocationSliceBuilderTest { 33 34 private Context mContext; 35 36 @Before setUp()37 public void setUp() { 38 mContext = spy(RuntimeEnvironment.application); 39 40 // Prevent crash in SliceMetadata. 41 Resources resources = spy(mContext.getResources()); 42 doReturn(60).when(resources).getDimensionPixelSize(anyInt()); 43 doReturn(resources).when(mContext).getResources(); 44 45 // Set-up specs for SliceMetadata. 46 SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS); 47 } 48 49 @Test getLocationSlice_correctSliceContent()50 public void getLocationSlice_correctSliceContent() { 51 final Slice LocationSlice = LocationSliceBuilder.getSlice(mContext); 52 final SliceMetadata metadata = SliceMetadata.from(mContext, LocationSlice); 53 54 final List<SliceAction> toggles = metadata.getToggles(); 55 assertThat(toggles).isEmpty(); 56 57 final SliceAction primaryAction = metadata.getPrimaryAction(); 58 final IconCompat expectedToggleIcon = IconCompat.createWithResource(mContext, 59 R.drawable.ic_signal_location); 60 assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedToggleIcon.toString()); 61 62 final List<SliceItem> sliceItems = LocationSlice.getItems(); 63 SliceTester.assertTitle(sliceItems, mContext.getString(R.string.location_settings_title)); 64 } 65 } 66