Add wake locks

pull/37/head
Mattia Iavarone 8 years ago
parent 0b0a941be6
commit 50111aadf0
  1. 5
      .travis.yml
  2. 1
      cameraview/src/androidTest/AndroidManifest.xml
  3. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/AspectRatioTest.java
  4. 32
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/BaseTest.java
  5. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraLoggerTest.java
  6. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraOptions1Test.java
  7. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/ExtraProperties1Test.java
  8. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/Mapper1Test.java
  9. 2
      cameraview/src/androidTest/java/com/otaliastudios/cameraview/WorkerHandlerTest.java

@ -59,8 +59,9 @@ before_script:
# Would be great to use -v color to adb logcat but looks not supported on travis. # Would be great to use -v color to adb logcat but looks not supported on travis.
- sleep 20 # Sleep 20 seconds just in case - sleep 20 # Sleep 20 seconds just in case
- adb shell input keyevent 82 & # Dispatch unlock event - adb shell input keyevent 82 & # Dispatch unlock event
- adb logcat -c # Clear logcat until now - adb logcat --help # See if this version supports color
- adb logcat Test:V TestRunner:V CameraView:V CameraController:V Camera1:V WorkerHandler:V *:E & - adb logcat -c # Clear logcat
- adb logcat Test:V TestRunner:V CameraView:V CameraController:V Camera1:V WorkerHandler:V THREAD_STATE:S *:E &
# - export LOGCAT_PID=$! # Save PID of the logcat process. Should kill later with kill $LOGCAT_PID # - export LOGCAT_PID=$! # Save PID of the logcat process. Should kill later with kill $LOGCAT_PID

@ -4,6 +4,7 @@
<uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
<application> <application>
<activity <activity

@ -16,7 +16,7 @@ import static org.junit.Assert.*;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class AspectRatioTest { public class AspectRatioTest extends BaseTest {
@Test @Test
public void testConstructor() { public void testConstructor() {

@ -1,6 +1,7 @@
package com.otaliastudios.cameraview; package com.otaliastudios.cameraview;
import android.app.KeyguardManager;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.Rect; import android.graphics.Rect;
@ -8,13 +9,17 @@ import android.graphics.YuvImage;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.os.PowerManager;
import android.support.test.InstrumentationRegistry; import android.support.test.InstrumentationRegistry;
import android.support.test.annotation.UiThreadTest; import android.support.test.annotation.UiThreadTest;
import android.support.test.espresso.core.internal.deps.guava.collect.ObjectArrays; import android.support.test.espresso.core.internal.deps.guava.collect.ObjectArrays;
import android.support.test.rule.ActivityTestRule; import android.support.test.rule.ActivityTestRule;
import android.view.View; import android.view.View;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule; import org.junit.Rule;
import org.mockito.invocation.InvocationOnMock; import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;
@ -24,6 +29,8 @@ import java.io.ByteArrayOutputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import static android.content.Context.KEYGUARD_SERVICE;
import static android.content.Context.POWER_SERVICE;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doAnswer;
@ -32,6 +39,31 @@ import static org.mockito.Mockito.when;
public class BaseTest { public class BaseTest {
private static KeyguardManager.KeyguardLock keyguardLock;
private static PowerManager.WakeLock wakeLock;
// https://github.com/linkedin/test-butler/blob/bc2bb4df13d0a554d2e2b0ea710795017717e710/test-butler-app/src/main/java/com/linkedin/android/testbutler/ButlerService.java#L121
@BeforeClass
public static void wakeUp() {
// Acquire a keyguard lock to prevent the lock screen from randomly appearing and breaking tests
KeyguardManager keyguardManager = (KeyguardManager) context().getSystemService(KEYGUARD_SERVICE);
keyguardLock = keyguardManager.newKeyguardLock("CameraViewLock");
keyguardLock.disableKeyguard();
// Acquire a wake lock to prevent the cpu from going to sleep and breaking tests
PowerManager powerManager = (PowerManager) context().getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP
| PowerManager.ON_AFTER_RELEASE, "CameraViewLock");
wakeLock.acquire();
}
@AfterClass
public static void releaseWakeUp() {
wakeLock.release();
keyguardLock.reenableKeyguard();
}
public static void ui(Runnable runnable) { public static void ui(Runnable runnable) {
InstrumentationRegistry.getInstrumentation().runOnMainSync(runnable); InstrumentationRegistry.getInstrumentation().runOnMainSync(runnable);
} }

@ -11,7 +11,7 @@ import static org.junit.Assert.*;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class CameraLoggerTest { public class CameraLoggerTest extends BaseTest {
@Test @Test
public void testLoggerLevels() { public void testLoggerLevels() {

@ -21,7 +21,7 @@ import static org.junit.Assert.*;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class CameraOptions1Test { public class CameraOptions1Test extends BaseTest {
@Test @Test
public void testEmpty() { public void testEmpty() {

@ -17,7 +17,7 @@ import static org.junit.Assert.*;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class ExtraProperties1Test { public class ExtraProperties1Test extends BaseTest {
@Test @Test
public void testConstructor1() { public void testConstructor1() {

@ -13,7 +13,7 @@ import static org.junit.Assert.*;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class Mapper1Test { public class Mapper1Test extends BaseTest {
private Mapper mapper = new Mapper.Mapper1(); private Mapper mapper = new Mapper.Mapper1();

@ -11,7 +11,7 @@ import static org.junit.Assert.*;
@RunWith(AndroidJUnit4.class) @RunWith(AndroidJUnit4.class)
@SmallTest @SmallTest
public class WorkerHandlerTest { public class WorkerHandlerTest extends BaseTest {
@Test @Test
public void testCache() { public void testCache() {

Loading…
Cancel
Save