Use buttons for EncryptionInterstitial
Bug: 30742121
Test: Run EncryptionInterstitialTest via `am instrument`
Change-Id: I04d304da4153ebc7f8809ce9c640bccc5e1f5685
(cherry picked from commit 9be96e06bb
)
This commit is contained in:
@@ -16,38 +16,89 @@
|
||||
|
||||
package com.android.settings;
|
||||
|
||||
import static android.support.test.espresso.Espresso.onView;
|
||||
import static android.support.test.espresso.action.ViewActions.click;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.Instrumentation;
|
||||
import android.app.Instrumentation.ActivityMonitor;
|
||||
import android.app.Instrumentation.ActivityResult;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.filters.SmallTest;
|
||||
import android.support.test.filters.MediumTest;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static android.support.test.espresso.Espresso.onView;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@SmallTest
|
||||
@MediumTest
|
||||
public class EncryptionInterstitialTest {
|
||||
|
||||
private Instrumentation mInstrumentation;
|
||||
private Context mContext;
|
||||
private TestActivityMonitor mActivityMonitor;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
mInstrumentation = InstrumentationRegistry.getInstrumentation();
|
||||
mContext = mInstrumentation.getTargetContext();
|
||||
mActivityMonitor = new TestActivityMonitor();
|
||||
mInstrumentation.addMonitor(mActivityMonitor);
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() {
|
||||
mInstrumentation.removeMonitor(mActivityMonitor);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clickHeader_shouldNotCrash() {
|
||||
public void clickYes_shouldRequirePassword() {
|
||||
mInstrumentation.startActivitySync(
|
||||
new Intent().setClassName(mContext, EncryptionInterstitial.class.getName()));
|
||||
onView(withId(R.id.encryption_interstitial_header));
|
||||
// Nothing should happen
|
||||
new Intent(mContext, EncryptionInterstitial.class)
|
||||
.putExtra("extra_unlock_method_intent", new Intent("test.unlock.intent")));
|
||||
onView(withId(R.id.encrypt_require_password)).perform(click());
|
||||
|
||||
mActivityMonitor.waitForActivityWithTimeout(1000);
|
||||
assertEquals(1, mActivityMonitor.getHits());
|
||||
|
||||
assertTrue(mActivityMonitor.mMatchedIntent.getBooleanExtra(
|
||||
EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clickNo_shouldNotRequirePassword() {
|
||||
mInstrumentation.startActivitySync(
|
||||
new Intent(mContext, EncryptionInterstitial.class)
|
||||
.putExtra("extra_unlock_method_intent", new Intent("test.unlock.intent")));
|
||||
onView(withId(R.id.encrypt_dont_require_password)).perform(click());
|
||||
|
||||
mActivityMonitor.waitForActivityWithTimeout(1000);
|
||||
assertEquals(1, mActivityMonitor.getHits());
|
||||
|
||||
assertFalse(mActivityMonitor.mMatchedIntent.getBooleanExtra(
|
||||
EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, true));
|
||||
}
|
||||
|
||||
private static class TestActivityMonitor extends ActivityMonitor {
|
||||
|
||||
Intent mMatchedIntent = null;
|
||||
|
||||
@Override
|
||||
public ActivityResult onMatchIntent(Intent intent) {
|
||||
if ("test.unlock.intent".equals(intent.getAction())) {
|
||||
mMatchedIntent = intent;
|
||||
return new ActivityResult(Activity.RESULT_OK, null);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user