AssistGestureSettingsTest.java revision a9831d40d081cc8c7ca32891e64c09b5e1d19abb
1a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn/* 2a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * Copyright (C) 2017 The Android Open Source Project 3a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * 4a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * Licensed under the Apache License, Version 2.0 (the "License"); 5a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * you may not use this file except in compliance with the License. 6a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * You may obtain a copy of the License at 7a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * 8a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * http://www.apache.org/licenses/LICENSE-2.0 9a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * 10a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * Unless required by applicable law or agreed to in writing, software 11a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * distributed under the License is distributed on an "AS IS" BASIS, 12a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * See the License for the specific language governing permissions and 14a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn * limitations under the License. 15a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn */ 16a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 17a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnpackage com.android.settings.gestures; 18a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 19a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport android.content.Context; 20a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport android.provider.SearchIndexableResource; 21a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 22a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport com.android.settings.R; 23a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport com.android.settings.SettingsRobolectricTestRunner; 24a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport com.android.settings.TestConfig; 25a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport com.android.settings.core.PreferenceController; 26a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport com.android.settings.testutils.FakeFeatureFactory; 27a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 28a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.junit.Before; 29a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.junit.Test; 30a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.junit.runner.RunWith; 31a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.mockito.Answers; 32a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.mockito.Mock; 33a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.mockito.MockitoAnnotations; 34a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.robolectric.annotation.Config; 35a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport org.robolectric.shadows.ShadowApplication; 36a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 37a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport java.util.List; 38a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 39a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport static com.google.common.truth.Truth.assertThat; 40a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnimport static org.mockito.Mockito.when; 41a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 42a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn@RunWith(SettingsRobolectricTestRunner.class) 43a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 44a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinnpublic class AssistGestureSettingsTest { 45a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn @Mock(answer = Answers.RETURNS_DEEP_STUBS) 46a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn private Context mContext; 47a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn private AssistGestureSettings mSettings; 48a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 49a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn @Before 50a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn public void setUp() { 51a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn MockitoAnnotations.initMocks(this); 52a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn FakeFeatureFactory.setupForTest(mContext); 53a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn final FakeFeatureFactory factory = 54a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext); 55a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn when(factory.dashboardFeatureProvider.isEnabled()).thenReturn(true); 56a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn mSettings = new AssistGestureSettings(); 57a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn } 58a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 59a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn @Test 60a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn public void testGetPreferenceScreenResId() { 61a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn assertThat(mSettings.getPreferenceScreenResId()) 62a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn .isEqualTo(R.xml.assist_gesture_settings); 63a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn } 64a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 65a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn @Test 66a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn public void testGetPreferenceControllers_shouldAllBeCreated() { 67a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn final List<PreferenceController> controllers = 68a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn mSettings.getPreferenceControllers(mContext); 69a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn assertThat(controllers.isEmpty()).isFalse(); 70a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn } 71a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 72a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn @Test 73a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn public void testSearchIndexProvider_shouldIndexResource() { 74a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn final List<SearchIndexableResource> indexRes = 75a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn AssistGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex( 76a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn ShadowApplication.getInstance().getApplicationContext(), 77a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn true /* enabled */); 78a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 79a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn assertThat(indexRes).isNotNull(); 80a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId()); 81a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn } 82a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn} 83a9831d40d081cc8c7ca32891e64c09b5e1d19abbPhilip Quinn 84