blob: 7f7a3e7e7cd6f3a8dea80b5230066da060452ded [file] [log] [blame]
Julia Reynolds12ad7ca2019-01-28 09:29:16 -05001/*
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
17package com.android.systemui.statusbar.phone;
18
19import static android.provider.Settings.Secure.NOTIFICATION_NEW_INTERRUPTION_MODEL;
20
21import static org.junit.Assert.assertFalse;
22import static org.junit.Assert.assertTrue;
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050023
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050024import android.provider.Settings;
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050025import android.testing.AndroidTestingRunner;
26import android.testing.TestableLooper;
27
Brett Chabot84151d92019-02-27 15:37:59 -080028import androidx.test.filters.SmallTest;
29
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050030import com.android.systemui.SysuiTestCase;
Beverly8fdb5332019-02-04 14:29:49 -050031import com.android.systemui.plugins.statusbar.StatusBarStateController;
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050032import com.android.systemui.statusbar.NotificationListener;
Lucas Dupin20403372019-02-14 19:59:18 -080033import com.android.systemui.statusbar.NotificationMediaManager;
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050034
35import org.junit.Before;
36import org.junit.Test;
37import org.junit.runner.RunWith;
38import org.mockito.Mock;
39import org.mockito.MockitoAnnotations;
40
41@SmallTest
42@RunWith(AndroidTestingRunner.class)
43@TestableLooper.RunWithLooper
44public class NotificationIconAreaControllerTest extends SysuiTestCase {
45
46 @Mock
47 private NotificationListener mListener;
48 @Mock
49 StatusBar mStatusBar;
50 @Mock
51 StatusBarStateController mStatusBarStateController;
Lucas Dupin20403372019-02-14 19:59:18 -080052 @Mock
53 private NotificationMediaManager mMediaManager;
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050054 private NotificationIconAreaController mController;
55
56 @Before
57 public void setup() {
58 MockitoAnnotations.initMocks(this);
59
60 mController = new NotificationIconAreaController(mContext, mStatusBar,
Lucas Dupin20403372019-02-14 19:59:18 -080061 mStatusBarStateController, mListener, mMediaManager);
Julia Reynolds12ad7ca2019-01-28 09:29:16 -050062 }
63
64 @Test
65 public void testNotificationIcons_featureOff() {
66 Settings.Secure.putInt(
67 mContext.getContentResolver(), NOTIFICATION_NEW_INTERRUPTION_MODEL, 0);
68 assertTrue(mController.shouldShouldLowPriorityIcons());
69 }
70
71 @Test
72 public void testNotificationIcons_featureOn_settingHideIcons() {
73 Settings.Secure.putInt(
74 mContext.getContentResolver(), NOTIFICATION_NEW_INTERRUPTION_MODEL, 1);
75 mController.mSettingsListener.onStatusBarIconsBehaviorChanged(true);
76
77 assertFalse(mController.shouldShouldLowPriorityIcons());
78 }
79
80 @Test
81 public void testNotificationIcons_featureOn_settingShowIcons() {
82 Settings.Secure.putInt(
83 mContext.getContentResolver(), NOTIFICATION_NEW_INTERRUPTION_MODEL, 1);
84 mController.mSettingsListener.onStatusBarIconsBehaviorChanged(false);
85
86 assertTrue(mController.shouldShouldLowPriorityIcons());
87 }
88}