OSDN Git Service

Merge "Added horizontal seperator in Face Settings" into qt-qpr1-dev
[android-x86/packages-apps-Settings.git] / tests / robotests / src / com / android / settings / privacy / PrivacyDashboardFragmentTest.java
1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.android.settings.privacy;
18
19 import static com.google.common.truth.Truth.assertThat;
20
21 import static org.mockito.ArgumentMatchers.any;
22 import static org.mockito.Mockito.spy;
23 import static org.mockito.Mockito.verify;
24 import static org.mockito.Mockito.when;
25
26 import android.content.Context;
27 import android.content.pm.UserInfo;
28 import android.os.Bundle;
29 import android.os.UserManager;
30 import android.permission.PermissionControllerManager;
31 import android.view.View;
32 import android.view.accessibility.AccessibilityManager;
33
34 import com.android.internal.widget.LockPatternUtils;
35 import com.android.settings.testutils.FakeFeatureFactory;
36 import com.android.settings.testutils.shadow.ShadowPermissionControllerManager;
37 import com.android.settings.testutils.shadow.ShadowUserManager;
38
39 import org.junit.Before;
40 import org.junit.Test;
41 import org.junit.runner.RunWith;
42 import org.mockito.Mock;
43 import org.mockito.MockitoAnnotations;
44 import org.robolectric.RobolectricTestRunner;
45 import org.robolectric.RuntimeEnvironment;
46 import org.robolectric.annotation.Config;
47 import org.robolectric.shadow.api.Shadow;
48 import org.robolectric.shadows.ShadowAccessibilityManager;
49 import org.robolectric.shadows.androidx.fragment.FragmentController;
50
51 import java.util.ArrayList;
52
53
54 @RunWith(RobolectricTestRunner.class)
55 @Config(shadows = {ShadowUserManager.class, ShadowPermissionControllerManager.class})
56 public class PrivacyDashboardFragmentTest {
57
58     @Mock
59     private LockPatternUtils mLockPatternUtils;
60     @Mock
61     private PermissionControllerManager mPCM;
62
63     private Context mContext;
64     private PrivacyDashboardFragment mFragment;
65
66     @Before
67     public void setUp() {
68         MockitoAnnotations.initMocks(this);
69         mContext = RuntimeEnvironment.application;
70         final UserManager userManager = mContext.getSystemService(UserManager.class);
71         final ShadowUserManager shadowUserManager = Shadow.extract(userManager);
72         final ShadowAccessibilityManager accessibilityManager = Shadow.extract(
73                 AccessibilityManager.getInstance(mContext));
74         accessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
75         shadowUserManager.addProfile(new UserInfo(123, null, 0));
76         when(FakeFeatureFactory.setupForTest().securityFeatureProvider.getLockPatternUtils(
77                 any(Context.class))).thenReturn(mLockPatternUtils);
78         mFragment = spy(FragmentController.of(new PrivacyDashboardFragment())
79                 .create().start().get());
80     }
81
82     @Test
83     public void onViewCreated_shouldSetActionBarShadowAnimation() {
84         mFragment.onViewCreated(new View(mContext), new Bundle());
85
86         assertThat(mFragment.getActivity().getActionBar().getElevation()).isEqualTo(0.f);
87     }
88
89     @Test
90     public void onViewCreated_shouldInitLinearProgressBar() {
91         mFragment.onViewCreated(new View(mContext), new Bundle());
92
93         verify(mFragment).initLoadingBar();
94     }
95
96     @Test
97     public void updateLinearProgressbar_isVisible_shouldShowProgressBar() {
98         mFragment.setLoadingEnabled(true /* enabled */);
99
100         assertThat(mFragment.mProgressHeader.getVisibility()).isEqualTo(View.VISIBLE);
101         assertThat(mFragment.mProgressAnimation.getVisibility()).isEqualTo(View.VISIBLE);
102     }
103
104     @Test
105     public void updateLinearProgressbar_isInVisible_shouldHideProgressBar() {
106         mFragment.setLoadingEnabled(false /* enabled */);
107
108         assertThat(mFragment.mProgressHeader.getVisibility()).isEqualTo(View.INVISIBLE);
109         assertThat(mFragment.mProgressAnimation.getVisibility()).isEqualTo(View.INVISIBLE);
110     }
111 }