126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos/* 226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * Copyright (C) 2017 The Android Open Source Project 326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * 426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * Licensed under the Apache License, Version 2.0 (the "License"); 526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * you may not use this file except in compliance with the License. 626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * You may obtain a copy of the License at 726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * 826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * http://www.apache.org/licenses/LICENSE-2.0 926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * 1026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * Unless required by applicable law or agreed to in writing, software 1126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * distributed under the License is distributed on an "AS IS" BASIS, 1226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * See the License for the specific language governing permissions and 1426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos * limitations under the License 1526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos */ 1626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 1726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roospackage com.android.systemui.doze; 1826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 1926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport static org.junit.Assert.assertEquals; 2026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport static org.junit.Assert.assertSame; 2126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport static org.mockito.Mockito.mock; 2226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport static org.mockito.Mockito.verify; 2326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport static org.mockito.Mockito.when; 2426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 2526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport android.support.test.filters.SmallTest; 2626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport android.view.Display; 2726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 28fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkimport com.android.systemui.SysuiTestCase; 2926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport com.android.systemui.statusbar.phone.DozeParameters; 3026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 3126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport org.junit.Before; 3226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roosimport org.junit.Test; 3326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 3426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos@SmallTest 35fba8faf5c5f58f115fa3c099da9ef0953b484147Jason Monkpublic class DozeScreenStatePreventingAdapterTest extends SysuiTestCase { 3626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 3726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos private DozeMachine.Service mInner; 3826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos private DozeScreenStatePreventingAdapter mWrapper; 3926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 4026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Before 4126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void setup() throws Exception { 4226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mInner = mock(DozeMachine.Service.class); 4326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper = new DozeScreenStatePreventingAdapter(mInner); 4426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 4526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 4626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 4726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void forwards_finish() throws Exception { 4826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper.finish(); 4926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos verify(mInner).finish(); 5026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 5126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 5226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 5326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void forwards_setDozeScreenState_on() throws Exception { 5426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper.setDozeScreenState(Display.STATE_ON); 5526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_ON); 5626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 5726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 5826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 5926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void forwards_setDozeScreenState_off() throws Exception { 6026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper.setDozeScreenState(Display.STATE_OFF); 6126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_OFF); 6226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 6326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 6426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 6526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void forwards_setDozeScreenState_doze() throws Exception { 6626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper.setDozeScreenState(Display.STATE_DOZE); 6726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_ON); 6826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 6926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 7026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 7126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void forwards_setDozeScreenState_doze_suspend() throws Exception { 7226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper.setDozeScreenState(Display.STATE_DOZE_SUSPEND); 7326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos verify(mInner).setDozeScreenState(Display.STATE_ON); 7426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 7526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 7626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 7726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void forwards_requestWakeUp() throws Exception { 7826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos mWrapper.requestWakeUp(); 7926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos verify(mInner).requestWakeUp(); 8026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 8126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 8226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 8326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void wrapIfNeeded_needed() throws Exception { 8426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos DozeParameters params = mock(DozeParameters.class); 8526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos when(params.getDisplayStateSupported()).thenReturn(false); 8626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 8726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos assertEquals(DozeScreenStatePreventingAdapter.class, 8826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params).getClass()); 8926d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 9026d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 9126d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos @Test 9226d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos public void wrapIfNeeded_not_needed() throws Exception { 9326d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos DozeParameters params = mock(DozeParameters.class); 9426d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos when(params.getDisplayStateSupported()).thenReturn(true); 9526d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos 9626d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos assertSame(mInner, DozeScreenStatePreventingAdapter.wrapIfNeeded(mInner, params)); 9726d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos } 9826d8184d46d48aae37cc739cb548edf891fc2ce1Adrian Roos}