summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2017-06-01 11:21:14 -0400
committerJason Monk <jmonk@google.com>2017-06-01 11:21:14 -0400
commit893f0bdcb73785ce0e06e9f935f5a7027cf77f14 (patch)
treec076b117cfb1aa07628e29c988c5b5829b305c45
parent8bc542695c2796fd26d230b86b5f2628ddb9fd1c (diff)
Add checks against incorrect context use in sysui tests
Fix incorrect usages found by this check. Test: runtest systemui Bug: 62251903 Change-Id: I45a762f96838e617833c1cbe003e583087bb8176
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java20
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java20
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java4
-rw-r--r--tests/testables/src/android/testing/ViewUtils.java6
4 files changed, 43 insertions, 7 deletions
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java
index 15cebc70e8bc..8905d725de97 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiBaseFragmentTest.java
@@ -14,13 +14,18 @@
package com.android.systemui;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
import android.app.Fragment;
+import android.app.Instrumentation;
import android.support.test.InstrumentationRegistry;
import android.testing.BaseFragmentTest;
import com.android.systemui.utils.leaks.LeakCheckedTest;
import com.android.systemui.utils.leaks.LeakCheckedTest.SysuiLeakCheck;
+import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -33,6 +38,7 @@ public abstract class SysuiBaseFragmentTest extends BaseFragmentTest {
protected final TestableDependency mDependency = new TestableDependency(mContext);
protected SysuiTestableContext mSysuiContext;
+ private Instrumentation mRealInstrumentation;
public SysuiBaseFragmentTest(Class<? extends Fragment> cls) {
super(cls);
@@ -44,6 +50,20 @@ public abstract class SysuiBaseFragmentTest extends BaseFragmentTest {
SystemUIFactory.createFromConfig(mContext);
// TODO: Figure out another way to give reference to a SysuiTestableContext.
mSysuiContext = (SysuiTestableContext) mContext;
+
+ mRealInstrumentation = InstrumentationRegistry.getInstrumentation();
+ Instrumentation inst = spy(mRealInstrumentation);
+ when(inst.getContext()).thenThrow(new RuntimeException(
+ "SysUI Tests should use SysuiTestCase#getContext or SysuiTestCase#mContext"));
+ when(inst.getTargetContext()).thenThrow(new RuntimeException(
+ "SysUI Tests should use SysuiTestCase#getContext or SysuiTestCase#mContext"));
+ InstrumentationRegistry.registerInstance(inst, InstrumentationRegistry.getArguments());
+ }
+
+ @After
+ public void SysuiTeardown() {
+ InstrumentationRegistry.registerInstance(mRealInstrumentation,
+ InstrumentationRegistry.getArguments());
}
@Override
diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
index 9b675295d26a..361a20fb7bdc 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java
@@ -15,6 +15,10 @@
*/
package com.android.systemui;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.app.Instrumentation;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
@@ -24,6 +28,7 @@ import android.support.test.filters.SmallTest;
import android.testing.LeakCheck;
import android.util.Log;
+import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
@@ -42,11 +47,26 @@ public abstract class SysuiTestCase {
public SysuiTestableContext mContext = new SysuiTestableContext(
InstrumentationRegistry.getContext(), getLeakCheck());
public TestableDependency mDependency = new TestableDependency(mContext);
+ private Instrumentation mRealInstrumentation;
@Before
public void SysuiSetup() throws Exception {
System.setProperty("dexmaker.share_classloader", "true");
SystemUIFactory.createFromConfig(mContext);
+
+ mRealInstrumentation = InstrumentationRegistry.getInstrumentation();
+ Instrumentation inst = spy(mRealInstrumentation);
+ when(inst.getContext()).thenThrow(new RuntimeException(
+ "SysUI Tests should use SysuiTestCase#getContext or SysuiTestCase#mContext"));
+ when(inst.getTargetContext()).thenThrow(new RuntimeException(
+ "SysUI Tests should use SysuiTestCase#getContext or SysuiTestCase#mContext"));
+ InstrumentationRegistry.registerInstance(inst, InstrumentationRegistry.getArguments());
+ }
+
+ @After
+ public void SysuiTeardown() {
+ InstrumentationRegistry.registerInstance(mRealInstrumentation,
+ InstrumentationRegistry.getArguments());
}
protected LeakCheck getLeakCheck() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java
index 9b7c5970270f..d925364b0e69 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/util/wakelock/WakeLockTest.java
@@ -41,9 +41,7 @@ public class WakeLockTest extends SysuiTestCase {
@Before
public void setUp() {
- Context context = InstrumentationRegistry.getContext();
-
- mInner = WakeLock.createPartialInner(context, WakeLockTest.class.getName());
+ mInner = WakeLock.createPartialInner(mContext, WakeLockTest.class.getName());
mWakeLock = WakeLock.wrap(mInner);
}
diff --git a/tests/testables/src/android/testing/ViewUtils.java b/tests/testables/src/android/testing/ViewUtils.java
index 5a651aacc74f..fca44aed0447 100644
--- a/tests/testables/src/android/testing/ViewUtils.java
+++ b/tests/testables/src/android/testing/ViewUtils.java
@@ -31,12 +31,10 @@ public class ViewUtils {
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
LayoutParams.TYPE_APPLICATION_OVERLAY,
0, PixelFormat.TRANSLUCENT);
- InstrumentationRegistry.getContext()
- .getSystemService(WindowManager.class).addView(view, lp);
+ view.getContext().getSystemService(WindowManager.class).addView(view, lp);
}
public static void detachView(View view) {
- InstrumentationRegistry.getContext()
- .getSystemService(WindowManager.class).removeViewImmediate(view);
+ view.getContext().getSystemService(WindowManager.class).removeViewImmediate(view);
}
}