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