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