diff options
| author | 2016-08-08 15:39:13 -0700 | |
|---|---|---|
| committer | 2016-08-08 17:16:46 -0700 | |
| commit | 2c0f3a372ce66febe4640d6fd38f055ab466669d (patch) | |
| tree | 3c765171fe1d99c9daff7086d7770e940ee0b5c2 | |
| parent | 0c282087e4b9bdb946e8eabad2a00498dca9dfbc (diff) | |
Kill service before trying to cancel notifications.
BUG: 30639703
Change-Id: Ib564371797e31e1dde37416efdb89641fb3024b1
| -rw-r--r-- | packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java index c7c7fc5e7491..902c71d64ae9 100644 --- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java +++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java @@ -588,6 +588,10 @@ public class BugreportReceiverTest extends InstrumentationTestCase { } private void cancelExistingNotifications() { + // Must kill service first, because notifications from a foreground service cannot be + // canceled. + killService(); + NotificationManager nm = NotificationManager.from(mContext); StatusBarNotification[] activeNotifications = nm.getActiveNotifications(); if (activeNotifications.length == 0) { @@ -899,6 +903,26 @@ public class BugreportReceiverTest extends InstrumentationTestCase { fail("Service status didn't change to " + expectRunning); } + private void killService() { + String service = BugreportProgressService.class.getName(); + + if (!isServiceRunning(service)) return; + + Log.w(TAG, "Service '" + service + "' is still running, killing it"); + silentlyExecuteShellCommand("am stopservice com.android.shell/.BugreportProgressService"); + + waitForService(false); + } + + private void silentlyExecuteShellCommand(String cmd) { + Log.w(TAG, "silentlyExecuteShellCommand: '" + cmd + "'"); + try { + UiDevice.getInstance(getInstrumentation()).executeShellCommand(cmd); + } catch (IOException e) { + Log.w(TAG, "error executing shell comamand '" + cmd + "'", e); + } + } + private void createTextFile(String path, String content) throws IOException { Log.v(TAG, "createFile(" + path + ")"); try (Writer writer = new BufferedWriter(new OutputStreamWriter( |