1bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee/* 2bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * Copyright (C) 2015 The Android Open Source Project 3bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * 4bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * Licensed under the Apache License, Version 2.0 (the "License"); 5bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * you may not use this file except in compliance with the License. 6bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * You may obtain a copy of the License at 7bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * 8bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * http://www.apache.org/licenses/LICENSE-2.0 9bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * 10bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * Unless required by applicable law or agreed to in writing, software 11bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * distributed under the License is distributed on an "AS IS" BASIS, 12bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * See the License for the specific language governing permissions and 14bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee * limitations under the License 15bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee */ 16bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 17bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leepackage com.android.incallui; 18bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 19bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport static org.mockito.Mockito.anyBoolean; 20bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport static org.mockito.Mockito.never; 21bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport static org.mockito.Mockito.times; 22bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport static org.mockito.Mockito.verify; 23bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 24bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport android.test.InstrumentationTestCase; 257753b65fb379b5d6a87702ee7e2f8fb1098ebca2Yorke Leeimport android.test.suitebuilder.annotation.MediumTest; 26bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 27bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport com.android.incallui.InCallPresenter.InCallState; 28bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 29bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport org.mockito.Mock; 30bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport org.mockito.Mockito; 31bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leeimport org.mockito.MockitoAnnotations; 32bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 337753b65fb379b5d6a87702ee7e2f8fb1098ebca2Yorke Lee@MediumTest 34bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Leepublic class ProximitySensorTest extends InstrumentationTestCase { 35bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee @Mock private AccelerometerListener mAccelerometerListener; 36bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee private MockCallListWrapper mCallList; 37bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 38bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee @Override 39bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee protected void setUp() throws Exception { 40bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee super.setUp(); 41bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee System.setProperty("dexmaker.dexcache", 42bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee getInstrumentation().getTargetContext().getCacheDir().getPath()); 43bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee MockitoAnnotations.initMocks(this); 44bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee mCallList = new MockCallListWrapper(); 45bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee } 46bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 47bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee public void testAccelerometerBehaviorOnDisplayChange() { 48bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee final ProximitySensor proximitySensor = 49bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee new ProximitySensor( 50bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee getInstrumentation().getContext(), 51bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee new AudioModeProvider(), 52bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee mAccelerometerListener); 53bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener, never()).enable(anyBoolean()); 54bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee proximitySensor.onStateChange(null, InCallState.OUTGOING, mCallList.getCallList()); 55bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener).enable(true); 56bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener, never()).enable(false); 57bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 58bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee proximitySensor.onDisplayStateChanged(false); 59bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener).enable(true); 60bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener).enable(false); 61bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee 62bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee proximitySensor.onDisplayStateChanged(true); 63bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener, times(2)).enable(true); 64bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee verify(mAccelerometerListener).enable(false); 65bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee } 66bc6ad72707bb3eebce0b3dd8ef408b49957148a7Yorke Lee} 67