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; 20fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkimport static org.mockito.Mockito.when; 218c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 22fba8faf5c5f58f115fa3c099da9ef0953b484147Jason 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; 338c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport org.junit.Test; 348c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport org.junit.runner.RunWith; 358c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 368c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkimport java.util.Collections; 378c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 388c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk@RunWith(AndroidTestingRunner.class) 398c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk@RunWithLooper 40fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monk@SmallTest 418c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monkpublic class QSPanelTest extends SysuiTestCase { 428c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 438c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private MetricsLogger mMetricsLogger; 448c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private QSPanel mQsPanel; 458c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private QSTileHost mHost; 468c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk private QSCustomizer mCustomizer; 478c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 488c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk @Before 498c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk public void setup() throws Exception { 508c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk TestableLooper.get(this).runWithLooper(() -> { 518c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class); 528c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel = new QSPanel(mContext, null); 538c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mHost = mock(QSTileHost.class); 548c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk when(mHost.getTiles()).thenReturn(Collections.emptyList()); 558c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mCustomizer = mock(QSCustomizer.class); 568c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel.setHost(mHost, mCustomizer); 578c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk }); 588c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk } 598c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk 608c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk @Test 618c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk public void testSetExpanded_Metrics() { 628c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel.setExpanded(true); 638c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk verify(mMetricsLogger).visibility(eq(MetricsEvent.QS_PANEL), eq(true)); 648c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk mQsPanel.setExpanded(false); 658c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk verify(mMetricsLogger).visibility(eq(MetricsEvent.QS_PANEL), eq(false)); 668c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk } 678c09ac7435c62a8ba2e34d57a7ac3be2ddf23adcJason Monk} 68