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.doze; 18 19import static org.junit.Assert.assertEquals; 20import static org.junit.Assert.assertSame; 21import static org.mockito.Mockito.mock; 22import static org.mockito.Mockito.verify; 23import static org.mockito.Mockito.when; 24 25import android.support.test.filters.SmallTest; 26import android.view.Display; 27 28import com.android.systemui.SysuiTestCase; 29import com.android.systemui.statusbar.phone.DozeParameters; 30 31import org.junit.Before; 32import org.junit.Test; 33 34@SmallTest 35public class DozeScreenStatePreventingAdapterTest extends SysuiTestCase { 36 37 private DozeMachine.Service mInner; 38 private DozeScreenStatePreventingAdapter mWrapper; 39 40 @Before 41 public void setup() throws Exception { 42 mInner = mock(DozeMachine.Service.class); 43 mWrapper = new DozeScreenStatePreventingAdapter(mInner); 44 } 45 46 @Test 47 public void forwards_finish() throws Exception { 48 mWrapper.finish(); 49 verify(mInner).finish(); 50 } 51 52 @Test 53 public void forwards_setDozeScreenState_on() throws Exception { 54 mWrapper.setDozeScreenState(Display.STATE_ON); 55 verify(mInner).setDozeScreenState(Display.STATE_ON); 56 } 57 58 @Test 59 public void forwards_setDozeScreenState_off() throws Exception { 60 mWrapper.setDozeScreenState(Display.STATE_OFF); 61 verify(mInner).setDozeScreenState(Display.STATE_OFF); 62 } 63 64 @Test 65 public void forwards_setDozeScreenState_doze() throws Exception { 66 mWrapper.setDozeScreenState(Display.STATE_DOZE); 67 verify(mInner).setDozeScreenState(Display.STATE_ON); 68 } 69 70 @Test 71 public void forwards_setDozeScreenState_doze_suspend() throws Exception { 72 mWrapper.setDozeScreenState(Display.STATE_DOZE_SUSPEND); 73 verify(mInner).setDozeScreenState(Display.STATE_ON_SUSPEND); 74 } 75 76 @Test 77 public void forwards_requestWakeUp() throws Exception { 78 mWrapper.requestWakeUp(); 79 verify(mInner).requestWakeUp(); 80 } 81 82 @Test 83 public void wrapIfNeeded_needed() throws Exception { 84 DozeParameters params = mock(DozeParameters.class); 85 when(params.getDisplayStateSupported()).thenReturn(false); 86 87 assertEquals(DozeScreenStatePreventingAdapter.class, 88 DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params).getClass()); 89 } 90 91 @Test 92 public void wrapIfNeeded_not_needed() throws Exception { 93 DozeParameters params = mock(DozeParameters.class); 94 when(params.getDisplayStateSupported()).thenReturn(true); 95 96 assertSame(mInner, DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params)); 97 } 98} 99