blob: 2e2d4f36098113992e6fc837b284d04df68c3d9a [file] [log] [blame]
Jason Monkaa573e92017-01-27 17:00:29 -05001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 * except in compliance with the License. You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 * KIND, either express or implied. See the License for the specific language governing
12 * permissions and limitations under the License.
13 */
14
15package com.android.systemui.statusbar.phone;
16
17import static org.junit.Assert.assertEquals;
18import static org.mockito.Matchers.eq;
Jason Monk60033fc2017-03-24 11:26:35 -040019import static org.mockito.Mockito.atLeast;
Jason Monkaa573e92017-01-27 17:00:29 -050020import static org.mockito.Mockito.mock;
21import static org.mockito.Mockito.when;
22
23import android.app.StatusBarManager;
Brett Chabot8091d9e2019-02-26 14:52:33 -080024import android.testing.AndroidTestingRunner;
25import android.testing.TestableLooper.RunWithLooper;
Jason Monkaa573e92017-01-27 17:00:29 -050026import android.view.View;
27import android.view.ViewPropertyAnimator;
28
Brett Chabot8091d9e2019-02-26 14:52:33 -080029import androidx.test.filters.SmallTest;
Jason Monk340b0e52017-03-08 14:57:56 -050030
Brett Chabot8091d9e2019-02-26 14:52:33 -080031import com.android.systemui.R;
Jason Monk340b0e52017-03-08 14:57:56 -050032import com.android.systemui.SysuiBaseFragmentTest;
Jason Monkaa573e92017-01-27 17:00:29 -050033import com.android.systemui.statusbar.CommandQueue;
Jason Monkaa573e92017-01-27 17:00:29 -050034import com.android.systemui.tuner.TunerService;
35
36import org.junit.Before;
37import org.junit.Test;
Brett Chabot8091d9e2019-02-26 14:52:33 -080038import org.junit.runner.RunWith;
Jason Monkaa573e92017-01-27 17:00:29 -050039import org.mockito.Mockito;
40
Jason Monk340b0e52017-03-08 14:57:56 -050041@RunWith(AndroidTestingRunner.class)
Jason Monk28d5d222017-02-02 13:08:31 -050042@RunWithLooper(setAsMainLooper = true)
Jason Monkfba8faf2017-05-23 10:42:59 -040043@SmallTest
Jason Monk340b0e52017-03-08 14:57:56 -050044public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
Jason Monkaa573e92017-01-27 17:00:29 -050045
46 private NotificationIconAreaController mMockNotificiationAreaController;
47 private View mNotificationAreaInner;
48
49 public CollapsedStatusBarFragmentTest() {
50 super(CollapsedStatusBarFragment.class);
51 }
52
53 @Before
54 public void setup() {
Jason Monk340b0e52017-03-08 14:57:56 -050055 mSysuiContext.putComponent(CommandQueue.class, mock(CommandQueue.class));
56 mSysuiContext.putComponent(StatusBar.class, mock(StatusBar.class));
57 mSysuiContext.putComponent(TunerService.class, mock(TunerService.class));
Jason Monkaa573e92017-01-27 17:00:29 -050058 injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
59 mMockNotificiationAreaController = mock(NotificationIconAreaController.class);
60 mNotificationAreaInner = mock(View.class);
61 when(mNotificationAreaInner.animate()).thenReturn(mock(ViewPropertyAnimator.class));
62 when(mMockNotificiationAreaController.getNotificationInnerAreaView()).thenReturn(
63 mNotificationAreaInner);
64 }
65
66 @Test
67 public void testDisableNone() throws Exception {
Jason Monk28d5d222017-02-02 13:08:31 -050068 mFragments.dispatchResume();
69 processAllMessages();
Jason Monkaa573e92017-01-27 17:00:29 -050070
71 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
72 fragment.initNotificationIconArea(mMockNotificiationAreaController);
73 fragment.disable(0, 0, false);
74
75 assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
76 .getVisibility());
Evan Laird058c8ae2018-01-12 14:26:10 -050077 assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.clock)
78 .getVisibility());
Jason Monkaa573e92017-01-27 17:00:29 -050079 }
80
81 @Test
82 public void testDisableSystemInfo() throws Exception {
Jason Monk28d5d222017-02-02 13:08:31 -050083 mFragments.dispatchResume();
84 processAllMessages();
Jason Monkaa573e92017-01-27 17:00:29 -050085
86 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
87 fragment.initNotificationIconArea(mMockNotificiationAreaController);
88 fragment.disable(StatusBarManager.DISABLE_SYSTEM_INFO, 0, false);
89
90 assertEquals(View.INVISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
91 .getVisibility());
92
93 fragment.disable(0, 0, false);
94
95 assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area)
96 .getVisibility());
97 }
98
99 @Test
100 public void testDisableNotifications() throws Exception {
Jason Monk28d5d222017-02-02 13:08:31 -0500101 mFragments.dispatchResume();
102 processAllMessages();
Jason Monkaa573e92017-01-27 17:00:29 -0500103
104 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
105 fragment.initNotificationIconArea(mMockNotificiationAreaController);
106 fragment.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false);
107
108 Mockito.verify(mNotificationAreaInner).setVisibility(eq(View.INVISIBLE));
109
110 fragment.disable(0, 0, false);
111
Jason Monk60033fc2017-03-24 11:26:35 -0400112 Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.VISIBLE));
Jason Monkaa573e92017-01-27 17:00:29 -0500113 }
Evan Laird4b68e2f72018-03-29 18:21:48 -0400114
115 @Test
116 public void testDisableClock() throws Exception {
117 mFragments.dispatchResume();
118 processAllMessages();
119
120 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment;
121 fragment.initNotificationIconArea(mMockNotificiationAreaController);
122 fragment.disable(StatusBarManager.DISABLE_CLOCK, 0, false);
123
Evan Laird74435e62018-05-04 11:58:30 -0400124 assertEquals(View.GONE, mFragment.getView().findViewById(R.id.clock).getVisibility());
Evan Laird4b68e2f72018-03-29 18:21:48 -0400125
126 fragment.disable(0, 0, false);
127
128 assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.clock).getVisibility());
129 }
Jason Monkaa573e92017-01-27 17:00:29 -0500130}