1369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos/* 2369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * Copyright (C) 2017 The Android Open Source Project 3369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * 4369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * Licensed under the Apache License, Version 2.0 (the "License"); 5369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * you may not use this file except in compliance with the License. 6369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * You may obtain a copy of the License at 7369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * 8369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * http://www.apache.org/licenses/LICENSE-2.0 9369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * 10369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * Unless required by applicable law or agreed to in writing, software 11369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * distributed under the License is distributed on an "AS IS" BASIS, 12369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * See the License for the specific language governing permissions and 14369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos * limitations under the License. 15369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos */ 16369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 17369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roospackage com.android.systemui.keyguard; 18369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 19369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport static org.junit.Assert.assertEquals; 20369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport static org.mockito.Mockito.mock; 21369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport static org.mockito.Mockito.verify; 22369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport static org.mockito.Mockito.verifyNoMoreInteractions; 23369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 24369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport android.support.test.filters.SmallTest; 25369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport android.testing.AndroidTestingRunner; 26369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 27369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport com.android.systemui.SysuiTestCase; 28369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 29369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport org.junit.Before; 30369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport org.junit.Test; 31369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport org.junit.runner.RunWith; 32369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 33369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport java.io.ByteArrayOutputStream; 34369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roosimport java.io.PrintWriter; 35369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 36369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos@RunWith(AndroidTestingRunner.class) 37369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos@SmallTest 38369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roospublic class ScreenLifecycleTest extends SysuiTestCase { 39369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 40369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos private ScreenLifecycle mScreen; 41369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos private ScreenLifecycle.Observer mScreenObserverMock; 42369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 43369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Before 44369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void setUp() throws Exception { 45369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen = new ScreenLifecycle(); 46369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreenObserverMock = mock(ScreenLifecycle.Observer.class); 47369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.addObserver(mScreenObserverMock); 48369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 49369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 50369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Test 51369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void baseState() throws Exception { 52369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos assertEquals(ScreenLifecycle.SCREEN_OFF, mScreen.getScreenState()); 53369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos verifyNoMoreInteractions(mScreenObserverMock); 54369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 55369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 56369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Test 57369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void screenTurningOn() throws Exception { 58369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurningOn(); 59369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 60369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos assertEquals(ScreenLifecycle.SCREEN_TURNING_ON, mScreen.getScreenState()); 61369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos verify(mScreenObserverMock).onScreenTurningOn(); 62369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 63369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 64369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Test 65369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void screenTurnedOn() throws Exception { 66369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurningOn(); 67369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurnedOn(); 68369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 69369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos assertEquals(ScreenLifecycle.SCREEN_ON, mScreen.getScreenState()); 70369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos verify(mScreenObserverMock).onScreenTurnedOn(); 71369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 72369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 73369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Test 74369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void screenTurningOff() throws Exception { 75369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurningOn(); 76369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurnedOn(); 77369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurningOff(); 78369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 79369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos assertEquals(ScreenLifecycle.SCREEN_TURNING_OFF, mScreen.getScreenState()); 80369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos verify(mScreenObserverMock).onScreenTurningOff(); 81369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 82369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 83369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Test 84369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void screenTurnedOff() throws Exception { 85369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurningOn(); 86369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurnedOn(); 87369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurningOff(); 88369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dispatchScreenTurnedOff(); 89369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 90369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos assertEquals(ScreenLifecycle.SCREEN_OFF, mScreen.getScreenState()); 91369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos verify(mScreenObserverMock).onScreenTurnedOff(); 92369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 93369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos 94369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos @Test 95369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos public void dump() throws Exception { 96369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos mScreen.dump(null, new PrintWriter(new ByteArrayOutputStream()), new String[0]); 97369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos } 98369907f02efd7f25d8063f38ecef6cf65c703572Adrian Roos}