diff options
| -rw-r--r-- | packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java index a54d9eff15b0..0e31cdf4a0e2 100644 --- a/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java +++ b/packages/Shell/tests/src/com/android/shell/BugreportReceiverTest.java @@ -49,6 +49,7 @@ import android.os.Bundle; import android.os.SystemProperties; import android.service.notification.StatusBarNotification; import android.support.test.uiautomator.UiDevice; +import android.support.test.uiautomator.UiObject; import android.test.InstrumentationTestCase; import android.util.Log; @@ -68,8 +69,7 @@ import com.android.shell.ActionSendMultipleConsumerActivity.CustomActionSendMult * <li>asserts the extras received by the custom activity * </ul> * <p> - * TODO: currently, these tests only work if the bug report sharing warning is disabled and the - * device screen is unlocked. + * <strong>NOTE</strong>: these tests only work if the device is unlocked. */ public class BugreportReceiverTest extends InstrumentationTestCase { @@ -99,6 +99,7 @@ public class BugreportReceiverTest extends InstrumentationTestCase { mUiBot = new UiBot(UiDevice.getInstance(instrumentation), TIMEOUT); mListener = ActionSendMultipleConsumerActivity.getListener(mContext); cancelExistingNotifications(); + BugreportPrefs.setWarningState(mContext, BugreportPrefs.STATE_HIDE); } public void testFullWorkflow() throws Exception { @@ -132,6 +133,36 @@ public class BugreportReceiverTest extends InstrumentationTestCase { // TODO: assert service is down } + public void testBugreportFinished_withWarning() throws Exception { + // Explicitly shows the warning. + BugreportPrefs.setWarningState(mContext, BugreportPrefs.STATE_SHOW); + + // Send notification and click on share. + createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT); + Intent intent = new Intent(INTENT_BUGREPORT_FINISHED); + intent.putExtra(EXTRA_BUGREPORT, PLAIN_TEXT_PATH); + mContext.sendBroadcast(intent); + mUiBot.clickOnNotification(mContext.getString(R.string.bugreport_finished_title)); + + // Handle the warning + mUiBot.getVisibleObject(mContext.getString(R.string.bugreport_confirm)); + // TODO: get ok and showMessageAgain from the dialog reference above + UiObject showMessageAgain = + mUiBot.getVisibleObject(mContext.getString(R.string.bugreport_confirm_repeat)); + mUiBot.click(showMessageAgain, "show-message-again"); + UiObject ok = mUiBot.getVisibleObject(mContext.getString(com.android.internal.R.string.ok)); + mUiBot.click(ok, "ok"); + + // Share the bugreport. + mUiBot.chooseActivity(UI_NAME); + Bundle extras = mListener.getExtras(); + assertActionSendMultiple(extras, BUGREPORT_CONTENT, null); + + // Make sure it's hidden now. + int newState = BugreportPrefs.getWarningState(mContext, BugreportPrefs.STATE_UNKNOWN); + assertEquals("Didn't change state", BugreportPrefs.STATE_HIDE, newState); + } + public void testBugreportFinished_plainBugreportAndScreenshot() throws Exception { createTextFile(PLAIN_TEXT_PATH, BUGREPORT_CONTENT); createTextFile(SCREENSHOT_PATH, SCREENSHOT_CONTENT); |