diff --git a/tests/robotests/src/com/android/settings/ZonePickerTest.java b/tests/robotests/src/com/android/settings/ZonePickerTest.java index 31606f1a41f..6f9ce4e1d22 100644 --- a/tests/robotests/src/com/android/settings/ZonePickerTest.java +++ b/tests/robotests/src/com/android/settings/ZonePickerTest.java @@ -29,6 +29,7 @@ import com.android.settings.datetime.ZonePicker; import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.shadow.ShadowLibcoreTimeZoneNames; import com.android.settings.testutils.shadow.ShadowTimeZoneNames; +import com.android.settings.testutils.shadow.ShadowZoneGetterData; import org.junit.Test; import org.junit.runner.RunWith; @@ -38,11 +39,12 @@ import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) @Config( manifest = TestConfig.MANIFEST_PATH, - sdk = TestConfig.SDK_VERSION, + sdk = TestConfig.SDK_VERSION_O, shadows = { ShadowLibcoreTimeZoneNames.class, ShadowLibcoreTimeZoneNames.ShadowZoneStringsCache.class, - ShadowTimeZoneNames.class + ShadowTimeZoneNames.class, + ShadowZoneGetterData.class, } ) public class ZonePickerTest { diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowZoneGetterData.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowZoneGetterData.java new file mode 100644 index 00000000000..1e6dbcedaf3 --- /dev/null +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowZoneGetterData.java @@ -0,0 +1,52 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.testutils.shadow; + + +import android.icu.util.TimeZone; + +import com.android.settingslib.datetime.ZoneGetter; + +import org.robolectric.annotation.Implementation; +import org.robolectric.annotation.Implements; + +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Implements(ZoneGetter.ZoneGetterData.class) +public class ShadowZoneGetterData { + private static final Map> TIME_ZONE_LOOKUP = new HashMap<>(); + + static { + TIME_ZONE_LOOKUP.put("FR", Collections.singletonList( + TimeZone.getTimeZone("Europe/Paris", TimeZone.TIMEZONE_JDK).getID())); + TIME_ZONE_LOOKUP.put("ML", Collections.singletonList( + TimeZone.getTimeZone("Europe/Amsterdam", TimeZone.TIMEZONE_JDK).getID())); + TIME_ZONE_LOOKUP.put("US", Arrays.asList( + TimeZone.getTimeZone("America/New_York", TimeZone.TIMEZONE_JDK).getID())); + TIME_ZONE_LOOKUP.put("JP", Collections.singletonList( + TimeZone.getTimeZone("Asia/Tokyo", TimeZone.TIMEZONE_JDK).getID())); + } + + @Implementation + public List lookupTimeZoneIdsByCountry(String country) { + return TIME_ZONE_LOOKUP.get(country); + } +}