diff options
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); } } |