1a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang/* 2a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * Copyright (C) 2017 The Android Open Source Project 3a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * 4a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 5a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * you may not use this file except in compliance with the License. 6a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * You may obtain a copy of the License at 7a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * 8a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * http://www.apache.org/licenses/LICENSE-2.0 9a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * 10a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * Unless required by applicable law or agreed to in writing, software 11a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 12a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * See the License for the specific language governing permissions and 14a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang * limitations under the License. 15a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang */ 16a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 17a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangpackage com.android.settings.display; 18a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 19a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport static com.google.common.truth.Truth.assertThat; 20a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport static org.mockito.Mockito.doReturn; 21a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport static org.mockito.Mockito.spy; 22a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 23a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport android.content.ContentResolver; 24a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport android.os.UserHandle; 25a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport android.provider.Settings; 26a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 27a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport com.android.internal.logging.nano.MetricsProto; 289f1e911759dc6fedaac9fa65afb79f6a93022bf4Andrew Sappersteinimport com.android.settings.testutils.SettingsRobolectricTestRunner; 29a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport com.android.settings.TestConfig; 30a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport com.android.settings.testutils.shadow.ShadowSecureSettings; 31a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 32a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport org.junit.Before; 33a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport org.junit.Test; 34a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport org.junit.runner.RunWith; 35a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport org.mockito.MockitoAnnotations; 36a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport org.robolectric.RuntimeEnvironment; 37a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport org.robolectric.annotation.Config; 38a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 39a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangimport java.util.List; 40a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 41a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang@RunWith(SettingsRobolectricTestRunner.class) 42a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 43a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhangpublic class VrDisplayPreferencePickerTest { 44a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 45a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang private VrDisplayPreferencePicker mPicker; 46a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 47a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang @Before 48a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang public void setUp() { 49a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang MockitoAnnotations.initMocks(this); 50a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 51a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang mPicker = spy(new VrDisplayPreferencePicker()); 52a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang doReturn(RuntimeEnvironment.application).when(mPicker).getContext(); 53a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang } 54a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 55a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang @Test 56a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang public void verifyMetricsConstant() { 57a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang assertThat(mPicker.getMetricsCategory()) 58a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang .isEqualTo(MetricsProto.MetricsEvent.VR_DISPLAY_PREFERENCE); 59a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang } 60a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 61a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang @Test 62a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang public void getCandidates_shouldReturnTwoCandidates() { 63a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang List<VrDisplayPreferencePicker.VrCandidateInfo> candidates = mPicker.getCandidates(); 64a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 65a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang assertThat(candidates.size()).isEqualTo(2); 66a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang assertThat(candidates.get(0).getKey()) 67a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang .isEqualTo(VrDisplayPreferencePicker.PREF_KEY_PREFIX + 0); 68a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang assertThat(candidates.get(1).getKey()) 69a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang .isEqualTo(VrDisplayPreferencePicker.PREF_KEY_PREFIX + 1); 70a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang } 71a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 72a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang @Test 73a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang @Config(shadows = ShadowSecureSettings.class) 74a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang public void getKey_shouldGetFromSettingsProvider() { 75a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang final ContentResolver cr = RuntimeEnvironment.application.getContentResolver(); 76a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang Settings.Secure.putIntForUser(cr, Settings.Secure.VR_DISPLAY_MODE, 1, 77a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang UserHandle.myUserId()); 78a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang 79a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang assertThat(mPicker.getDefaultKey()) 80a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang .isEqualTo(VrDisplayPreferencePicker.PREF_KEY_PREFIX + 1); 81a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang } 82a0c2c11bbfe0c4643b2f645bbf883b918f4ba857Fan Zhang} 83