1a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos/* 2a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * Copyright (C) 2017 The Android Open Source Project 3a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * 4a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * Licensed under the Apache License, Version 2.0 (the "License"); 5a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * you may not use this file except in compliance with the License. 6a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * You may obtain a copy of the License at 7a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * 8a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * http://www.apache.org/licenses/LICENSE-2.0 9a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * 10a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * Unless required by applicable law or agreed to in writing, software 11a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * distributed under the License is distributed on an "AS IS" BASIS, 12a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * See the License for the specific language governing permissions and 14a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos * limitations under the License. 15a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos */ 16a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 17a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roospackage com.android.systemui.doze; 18a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 19a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport static org.junit.Assert.assertEquals; 20a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport static org.junit.Assert.assertSame; 21a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport static org.mockito.Mockito.mock; 22a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport static org.mockito.Mockito.verify; 23a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport static org.mockito.Mockito.when; 24a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 25a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport android.support.test.filters.SmallTest; 26a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport android.view.Display; 27a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 28fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkimport com.android.systemui.SysuiTestCase; 29a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport com.android.systemui.statusbar.phone.DozeParameters; 30a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 31a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport org.junit.Before; 32a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roosimport org.junit.Test; 33a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 34a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos@SmallTest 35fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkpublic class DozeSuspendScreenStatePreventingAdapterTest extends SysuiTestCase { 36a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 37a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos private DozeMachine.Service mInner; 38a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos private DozeSuspendScreenStatePreventingAdapter mWrapper; 39a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 40a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Before 41a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void setup() throws Exception { 42a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mInner = mock(DozeMachine.Service.class); 43a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper = new DozeSuspendScreenStatePreventingAdapter(mInner); 44a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 45a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 46a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 47a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void forwards_finish() throws Exception { 48a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper.finish(); 49a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos verify(mInner).finish(); 50a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 51a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 52a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 53a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void forwards_setDozeScreenState_on() throws Exception { 54a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper.setDozeScreenState(Display.STATE_ON); 55a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_ON); 56a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 57a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 58a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 59a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void forwards_setDozeScreenState_off() throws Exception { 60a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper.setDozeScreenState(Display.STATE_OFF); 61a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_OFF); 62a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 63a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 64a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 65a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void forwards_setDozeScreenState_doze() throws Exception { 66a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper.setDozeScreenState(Display.STATE_DOZE); 67a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_DOZE); 68a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 69a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 70a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 71a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void forwards_setDozeScreenState_doze_suspend() throws Exception { 72a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper.setDozeScreenState(Display.STATE_DOZE_SUSPEND); 73a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_DOZE); 74a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 75a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 76a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 77a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void forwards_requestWakeUp() throws Exception { 78a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos mWrapper.requestWakeUp(); 79a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos verify(mInner).requestWakeUp(); 80a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 81a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 82a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 83a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void wrapIfNeeded_needed() throws Exception { 84a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos DozeParameters params = mock(DozeParameters.class); 85a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos when(params.getDozeSuspendDisplayStateSupported()).thenReturn(false); 86a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 87a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos assertEquals(DozeSuspendScreenStatePreventingAdapter.class, 88a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(mInner, params).getClass()); 89a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 90a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 91a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos @Test 92a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos public void wrapIfNeeded_not_needed() throws Exception { 93a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos DozeParameters params = mock(DozeParameters.class); 94a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos when(params.getDozeSuspendDisplayStateSupported()).thenReturn(true); 95a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos 96a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos assertSame(mInner, DozeSuspendScreenStatePreventingAdapter.wrapIfNeeded(mInner, params)); 97a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos } 98a1e6b3157cd5cfc7a3a70f0a9671447d0849c642Adrian Roos}