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