From 685db72eb7ddfeef29af1d191e67e0a041191f58 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Mon, 23 Jan 2017 17:36:50 -0500 Subject: [PATCH] Fix up the tests (yet again) Turns out there was an actual bug in QSFooter where it was using the wrong handler class (and not showing any of its security features), and it would have been caught by presubmit if it was working... Test: runtest systemui Change-Id: Icbb19db1cc6f3f2a5f984618428ceb2899af69ab --- .../src/com/android/systemui/qs/QSFooter.java | 4 ++-- .../statusbar/phone/QuickStatusBarHeader.java | 12 ++++-------- packages/SystemUI/tests/AndroidManifest.xml | 3 +++ .../src/com/android/systemui/DependencyTest.java | 7 +++++-- .../src/com/android/systemui/SysuiTestCase.java | 1 + .../src/com/android/systemui/qs/QSFragmentTest.java | 1 + .../statusbar/phone/NavigationBarFragmentTest.java | 1 + 7 files changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java index 0bf3f15a5889c..1835afd937c17 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSFooter.java @@ -60,7 +60,7 @@ public class QSFooter implements OnClickListener, DialogInterface.OnClickListene private AlertDialog mDialog; private QSTileHost mHost; - protected Handler mHandler; + protected H mHandler; private boolean mIsVisible; private boolean mIsIconVisible; @@ -83,7 +83,7 @@ public class QSFooter implements OnClickListener, DialogInterface.OnClickListene mMainHandler = new Handler(Looper.getMainLooper()); mActivityStarter = Dependency.get(ActivityStarter.class); mSecurityController = Dependency.get(SecurityController.class); - mHandler = new Handler((Looper) Dependency.get(Dependency.BG_LOOPER)); + mHandler = new H(Dependency.get(Dependency.BG_LOOPER)); } public void setHostEnvironment(QSTileHost host) { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java index 9e9380295f0c6..70a5bbee9e18e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -162,6 +162,10 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements BatteryMeterView battery = (BatteryMeterView) findViewById(R.id.battery); int colorSecondary = Utils.getColorAttr(getContext(), android.R.attr.textColorSecondary); battery.setRawColors(colorForeground, colorSecondary); + + mNextAlarmController = Dependency.get(NextAlarmController.class); + mUserInfoController = Dependency.get(UserInfoController.class); + mActivityStarter = Dependency.get(ActivityStarter.class); } @Override @@ -259,14 +263,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements mExpandIndicator.setExpanded(headerExpansionFraction > EXPAND_INDICATOR_THRESHOLD); } - @Override - protected void onAttachedToWindow() { - super.onAttachedToWindow(); - mNextAlarmController = Dependency.get(NextAlarmController.class); - mUserInfoController = Dependency.get(UserInfoController.class); - mActivityStarter = Dependency.get(ActivityStarter.class); - } - @Override @VisibleForTesting public void onDetachedFromWindow() { diff --git a/packages/SystemUI/tests/AndroidManifest.xml b/packages/SystemUI/tests/AndroidManifest.xml index 6516369d0e2ec..90e93217485d3 100644 --- a/packages/SystemUI/tests/AndroidManifest.xml +++ b/packages/SystemUI/tests/AndroidManifest.xml @@ -30,6 +30,9 @@ + + + diff --git a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java index 973f1f26033ce..fb4b6bdf3f1b8 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/DependencyTest.java @@ -15,6 +15,7 @@ package com.android.systemui; import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -25,6 +26,8 @@ import com.android.systemui.statusbar.policy.FlashlightController; import org.junit.Test; +import java.io.PrintWriter; + public class DependencyTest extends SysuiTestCase { @Test @@ -46,8 +49,8 @@ public class DependencyTest extends SysuiTestCase { Dumpable d = mock(Dumpable.class); injectTestDependency("test", d); Dependency.get("test"); - mDependency.dump(null, null, null); - verify(d).dump(eq(null), eq(null), eq(null)); + mDependency.dump(null, mock(PrintWriter.class), null); + verify(d).dump(eq(null), any(), eq(null)); } @Test diff --git a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java index 5fe5174c3d279..f258e5d17be41 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java +++ b/packages/SystemUI/tests/src/com/android/systemui/SysuiTestCase.java @@ -43,6 +43,7 @@ public abstract class SysuiTestCase { public void SysuiSetup() throws Exception { System.setProperty("dexmaker.share_classloader", "true"); mContext = new TestableContext(InstrumentationRegistry.getTargetContext(), this); + SystemUIFactory.createFromConfig(mContext); mDependency = new TestDependency(); mDependency.mContext = mContext; mDependency.start(); diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java index e3ee8514fe3b2..53450317ccf84 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/QSFragmentTest.java @@ -58,6 +58,7 @@ public class QSFragmentTest extends FragmentTestCase { @Before public void addLeakCheckDependencies() { + injectTestDependency(Dependency.BG_LOOPER, Looper.getMainLooper()); injectMockDependency(UserSwitcherController.class); injectLeakCheckedDependencies(BluetoothController.class, LocationController.class, RotationLockController.class, NetworkController.class, ZenModeController.class, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java index 9fcb5f75ff229..525a361c1a02b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarFragmentTest.java @@ -40,6 +40,7 @@ public class NavigationBarFragmentTest extends FragmentTestCase { mContext.putComponent(PhoneStatusBar.class, mock(PhoneStatusBar.class)); mContext.putComponent(Recents.class, mock(Recents.class)); mContext.putComponent(Divider.class, mock(Divider.class)); + mContext.addMockSystemService(Context.WINDOW_SERVICE, mock(WindowManager.class)); } @Test