1ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang/*
2ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * Copyright (C) 2016 The Android Open Source Project
3ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang *
4ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * Licensed under the Apache License, Version 2.0 (the "License");
5ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * you may not use this file except in compliance with the License.
6ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * You may obtain a copy of the License at
7ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang *
8ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang *      http://www.apache.org/licenses/LICENSE-2.0
9ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang *
10ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * Unless required by applicable law or agreed to in writing, software
11ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * distributed under the License is distributed on an "AS IS" BASIS,
12ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * See the License for the specific language governing permissions and
14ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang * limitations under the License.
15ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang */
16ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
17ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangpackage com.android.settings;
18ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
19ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport android.support.v14.preference.SwitchPreference;
20ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport android.support.v7.preference.Preference;
21ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport android.support.v7.preference.PreferenceScreen;
22ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
23ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport org.junit.Before;
24ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport org.junit.Test;
25ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport org.junit.runner.RunWith;
26ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport org.mockito.Mock;
27ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport org.mockito.MockitoAnnotations;
28ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport org.robolectric.annotation.Config;
29ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
30ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport static org.mockito.Mockito.mock;
31ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangimport static org.mockito.Mockito.when;
32ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
339f1e911759dc6fedaac9fa65afb79f6a93022bf4Andrew Sappersteinimport com.android.settings.testutils.SettingsRobolectricTestRunner;
349f1e911759dc6fedaac9fa65afb79f6a93022bf4Andrew Sapperstein
35ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang@RunWith(SettingsRobolectricTestRunner.class)
36ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
37ac81f26e30352dd441c099012c4489701d9aee2fFan Zhangpublic class PrivacySettingsTest {
38ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
39ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    @Mock
40ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    private PreferenceScreen mScreen;
41ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    private PrivacySettings mSettings;
42ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
43ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    @Before
44ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    public void setUp() {
45ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        MockitoAnnotations.initMocks(this);
46ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        when(mScreen.findPreference(PrivacySettings.BACKUP_DATA))
47ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang                .thenReturn(mock(Preference.class));
48ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        when(mScreen.findPreference(PrivacySettings.CONFIGURE_ACCOUNT))
49ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang                .thenReturn(mock(Preference.class));
50ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        when(mScreen.findPreference(PrivacySettings.DATA_MANAGEMENT))
51ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang                .thenReturn(mock(Preference.class));
52ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        when(mScreen.findPreference(PrivacySettings.AUTO_RESTORE))
53ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang                .thenReturn(mock(SwitchPreference.class));
54ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        mSettings = new PrivacySettings();
55ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    }
56ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
57ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    @Test
58ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    public void testSetPreference_noCrash() {
59ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang        mSettings.setPreferenceReferences(mScreen);
60ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang    }
61ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang
62ac81f26e30352dd441c099012c4489701d9aee2fFan Zhang}
63