18c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk/* 28c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * Copyright (C) 2017 The Android Open Source Project 38c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * 48c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file 58c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * except in compliance with the License. You may obtain a copy of the License at 68c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * 78c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * http://www.apache.org/licenses/LICENSE-2.0 88c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * 98c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * Unless required by applicable law or agreed to in writing, software distributed under the 108c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 118c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * KIND, either express or implied. See the License for the specific language governing 128c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk * permissions and limitations under the License. 138c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk */ 148c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 158c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkpackage com.android.systemui.qs; 168c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 178c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport static org.mockito.ArgumentMatchers.eq; 188c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport static org.mockito.Mockito.mock; 198c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport static org.mockito.Mockito.verify; 2025a52b65b2cac1f49f37f4532cfa62282432957aJason Monkimport static org.mockito.Mockito.when; 218c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 2225a52b65b2cac1f49f37f4532cfa62282432957aJason Monkimport android.support.test.filters.SmallTest; 238c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport android.testing.AndroidTestingRunner; 248c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport android.testing.TestableLooper; 258c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport android.testing.TestableLooper.RunWithLooper; 268c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 278c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport com.android.internal.logging.MetricsLogger; 288c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport com.android.internal.logging.nano.MetricsProto.MetricsEvent; 298c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport com.android.systemui.SysuiTestCase; 308c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport com.android.systemui.qs.customize.QSCustomizer; 318c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 328c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport org.junit.Before; 33351a321371c307e92ee73ea6d179de41518d1ef3Geoffrey Pitschimport org.junit.Ignore; 348c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport org.junit.Test; 358c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport org.junit.runner.RunWith; 368c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 378c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport java.util.Collections; 388c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 398c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk@RunWith(AndroidTestingRunner.class) 408c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk@RunWithLooper 4125a52b65b2cac1f49f37f4532cfa62282432957aJason Monk@SmallTest 428c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkpublic class QSPanelTest extends SysuiTestCase { 438c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 448c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private MetricsLogger mMetricsLogger; 458c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private QSPanel mQsPanel; 468c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private QSTileHost mHost; 478c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private QSCustomizer mCustomizer; 488c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 498c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk @Before 508c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk public void setup() throws Exception { 518c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk TestableLooper.get(this).runWithLooper(() -> { 528c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class); 538c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel = new QSPanel(mContext, null); 548c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mHost = mock(QSTileHost.class); 558c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk when(mHost.getTiles()).thenReturn(Collections.emptyList()); 568c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mCustomizer = mock(QSCustomizer.class); 578c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel.setHost(mHost, mCustomizer); 588c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk }); 598c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk } 608c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 618c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk @Test 628c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk public void testSetExpanded_Metrics() { 638c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel.setExpanded(true); 648c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk verify(mMetricsLogger).visibility(eq(MetricsEvent.QS_PANEL), eq(true)); 658c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel.setExpanded(false); 668c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk verify(mMetricsLogger).visibility(eq(MetricsEvent.QS_PANEL), eq(false)); 678c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk } 688c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk} 69