1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 * except in compliance with the License. You may obtain a copy of the License at
6 *
7 *      http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software distributed under the
10 * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11 * KIND, either express or implied. See the License for the specific language governing
12 * permissions and limitations under the License.
13 */
14
15package com.android.systemui.qs;
16
17import static org.mockito.ArgumentMatchers.eq;
18import static org.mockito.Mockito.mock;
19import static org.mockito.Mockito.verify;
20import static org.mockito.Mockito.when;
21
22import android.support.test.filters.SmallTest;
23import android.testing.AndroidTestingRunner;
24import android.testing.TestableLooper;
25import android.testing.TestableLooper.RunWithLooper;
26
27import com.android.internal.logging.MetricsLogger;
28import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
29import com.android.systemui.SysuiTestCase;
30import com.android.systemui.qs.customize.QSCustomizer;
31
32import org.junit.Before;
33import org.junit.Ignore;
34import org.junit.Test;
35import org.junit.runner.RunWith;
36
37import java.util.Collections;
38
39@RunWith(AndroidTestingRunner.class)
40@RunWithLooper
41@SmallTest
42public class QSPanelTest extends SysuiTestCase {
43
44    private MetricsLogger mMetricsLogger;
45    private QSPanel mQsPanel;
46    private QSTileHost mHost;
47    private QSCustomizer mCustomizer;
48
49    @Before
50    public void setup() throws Exception {
51        TestableLooper.get(this).runWithLooper(() -> {
52            mMetricsLogger = mDependency.injectMockDependency(MetricsLogger.class);
53            mQsPanel = new QSPanel(mContext, null);
54            mHost = mock(QSTileHost.class);
55            when(mHost.getTiles()).thenReturn(Collections.emptyList());
56            mCustomizer = mock(QSCustomizer.class);
57            mQsPanel.setHost(mHost, mCustomizer);
58        });
59    }
60
61    @Test
62    public void testSetExpanded_Metrics() {
63        mQsPanel.setExpanded(true);
64        verify(mMetricsLogger).visibility(eq(MetricsEvent.QS_PANEL), eq(true));
65        mQsPanel.setExpanded(false);
66        verify(mMetricsLogger).visibility(eq(MetricsEvent.QS_PANEL), eq(false));
67    }
68}
69