CollapsedStatusBarFragmentTest.java revision 60033fc07023c617e22629b919180054a7ccb11c
1/* 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; 19import static org.mockito.Mockito.atLeast; 20import static org.mockito.Mockito.mock; 21import static org.mockito.Mockito.when; 22 23import android.app.StatusBarManager; 24import android.view.View; 25import android.view.ViewPropertyAnimator; 26 27import com.android.systemui.R; 28import android.testing.AndroidTestingRunner; 29 30import com.android.systemui.SysuiBaseFragmentTest; 31import com.android.systemui.statusbar.CommandQueue; 32import com.android.systemui.tuner.TunerService; 33import android.testing.TestableLooper.RunWithLooper; 34 35import org.junit.Before; 36import org.junit.runner.RunWith; 37import org.junit.Test; 38import org.mockito.Mockito; 39 40@RunWith(AndroidTestingRunner.class) 41@RunWithLooper(setAsMainLooper = true) 42public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest { 43 44 private NotificationIconAreaController mMockNotificiationAreaController; 45 private View mNotificationAreaInner; 46 47 public CollapsedStatusBarFragmentTest() { 48 super(CollapsedStatusBarFragment.class); 49 } 50 51 @Before 52 public void setup() { 53 mSysuiContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); 54 mSysuiContext.putComponent(StatusBar.class, mock(StatusBar.class)); 55 mSysuiContext.putComponent(TunerService.class, mock(TunerService.class)); 56 injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES); 57 mMockNotificiationAreaController = mock(NotificationIconAreaController.class); 58 mNotificationAreaInner = mock(View.class); 59 when(mNotificationAreaInner.animate()).thenReturn(mock(ViewPropertyAnimator.class)); 60 when(mMockNotificiationAreaController.getNotificationInnerAreaView()).thenReturn( 61 mNotificationAreaInner); 62 } 63 64 @Test 65 public void testDisableNone() throws Exception { 66 mFragments.dispatchResume(); 67 processAllMessages(); 68 69 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment; 70 fragment.initNotificationIconArea(mMockNotificiationAreaController); 71 fragment.disable(0, 0, false); 72 73 assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area) 74 .getVisibility()); 75 } 76 77 @Test 78 public void testDisableSystemInfo() throws Exception { 79 mFragments.dispatchResume(); 80 processAllMessages(); 81 82 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment; 83 fragment.initNotificationIconArea(mMockNotificiationAreaController); 84 fragment.disable(StatusBarManager.DISABLE_SYSTEM_INFO, 0, false); 85 86 assertEquals(View.INVISIBLE, mFragment.getView().findViewById(R.id.system_icon_area) 87 .getVisibility()); 88 89 fragment.disable(0, 0, false); 90 91 assertEquals(View.VISIBLE, mFragment.getView().findViewById(R.id.system_icon_area) 92 .getVisibility()); 93 } 94 95 @Test 96 public void testDisableNotifications() throws Exception { 97 mFragments.dispatchResume(); 98 processAllMessages(); 99 100 CollapsedStatusBarFragment fragment = (CollapsedStatusBarFragment) mFragment; 101 fragment.initNotificationIconArea(mMockNotificiationAreaController); 102 fragment.disable(StatusBarManager.DISABLE_NOTIFICATION_ICONS, 0, false); 103 104 Mockito.verify(mNotificationAreaInner).setVisibility(eq(View.INVISIBLE)); 105 106 fragment.disable(0, 0, false); 107 108 Mockito.verify(mNotificationAreaInner, atLeast(1)).setVisibility(eq(View.VISIBLE)); 109 } 110} 111