1/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.systemui.statusbar.phone;
18
19import static org.mockito.Mockito.mock;
20import static org.mockito.Mockito.verify;
21import static org.mockito.Mockito.when;
22
23import android.content.Context;
24import android.os.SystemClock;
25import android.service.notification.StatusBarNotification;
26import android.support.test.InstrumentationRegistry;
27import android.support.test.filters.SmallTest;
28import android.support.test.runner.AndroidJUnit4;
29import android.view.MotionEvent;
30import android.view.View;
31
32import com.android.systemui.SysuiTestCase;
33import com.android.systemui.statusbar.DragDownHelper;
34import com.android.systemui.statusbar.ExpandableNotificationRow;
35import com.android.systemui.statusbar.NotificationData;
36import com.android.systemui.statusbar.StatusBarState;
37
38import org.junit.Before;
39import org.junit.Test;
40import org.junit.runner.RunWith;
41
42@RunWith(AndroidJUnit4.class)
43@SmallTest
44public class StatusBarWindowViewTest extends SysuiTestCase {
45
46    private StatusBarWindowView mView;
47    private StatusBar mStatusBar;
48    private DragDownHelper mDragDownHelper;
49
50    @Before
51    public void setUp() {
52        mView = new StatusBarWindowView(getContext(), null);
53        mStatusBar = mock(StatusBar.class);
54        mView.setService(mStatusBar);
55        mDragDownHelper = mock(DragDownHelper.class);
56        mView.setDragDownHelper(mDragDownHelper);
57    }
58
59    @Test
60    public void testDragDownHelperCalledWhenDraggingDown() throws Exception {
61        when(mStatusBar.getBarState()).thenReturn(StatusBarState.SHADE);
62        when(mDragDownHelper.isDraggingDown()).thenReturn(true);
63        long now = SystemClock.elapsedRealtime();
64        MotionEvent ev = MotionEvent.obtain(now, now, MotionEvent.ACTION_UP, 0 /* x */, 0 /* y */,
65                0 /* meta */);
66        mView.onTouchEvent(ev);
67        verify(mDragDownHelper).onTouchEvent(ev);
68        ev.recycle();
69    }
70}
71