Merge "DO NOT MERGE - Fixed SessionLifecycleTest so it always finishes OutOfProcessLoginActivity."
diff --git a/tests/autofillservice/src/android/autofillservice/cts/MyWebView.java b/tests/autofillservice/src/android/autofillservice/cts/MyWebView.java
index 754d5e9..c46a516 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/MyWebView.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/MyWebView.java
@@ -21,7 +21,9 @@
import android.content.Context;
import android.util.AttributeSet;
+import android.util.Log;
import android.util.SparseArray;
+import android.view.autofill.AutofillManager;
import android.view.autofill.AutofillValue;
import android.webkit.WebView;
@@ -33,6 +35,7 @@
*/
public class MyWebView extends WebView {
+ private static final String TAG = "MyWebView";
private FillExpectation mExpectation;
public MyWebView(Context context) {
@@ -41,6 +44,7 @@
public MyWebView(Context context, AttributeSet attrs) {
super(context, attrs);
+ Log.d(TAG, "isAutofillEnabled() on constructor? " + isAutofillEnabled());
}
public void expectAutofill(String username, String password) {
@@ -95,6 +99,10 @@
}
}
+ boolean isAutofillEnabled() {
+ return getContext().getSystemService(AutofillManager.class).isEnabled();
+ }
+
private class FillExpectation {
private final CountDownLatch mLatch = new CountDownLatch(1);
private final String mExpectedUsername;
diff --git a/tests/autofillservice/src/android/autofillservice/cts/WebViewActivityTest.java b/tests/autofillservice/src/android/autofillservice/cts/WebViewActivityTest.java
index 8623967..7149899 100644
--- a/tests/autofillservice/src/android/autofillservice/cts/WebViewActivityTest.java
+++ b/tests/autofillservice/src/android/autofillservice/cts/WebViewActivityTest.java
@@ -29,6 +29,7 @@
import android.autofillservice.cts.InstrumentedAutoFillService.SaveRequest;
import android.platform.test.annotations.AppModeFull;
import android.support.test.uiautomator.UiObject2;
+import android.util.Log;
import android.view.KeyEvent;
import android.view.ViewStructure.HtmlInfo;
import android.view.autofill.AutofillManager;
@@ -43,13 +44,27 @@
@AppModeFull(reason = "Flaky in instant mode")
public class WebViewActivityTest extends AutoFillServiceTestCase {
+ private static final String TAG = "WebViewActivityTest";
+
// TODO(b/64951517): WebView currently does not trigger the autofill callbacks when values are
// set using accessibility.
private static final boolean INJECT_EVENTS = true;
@Rule
public final AutofillActivityTestRule<WebViewActivity> mActivityRule =
- new AutofillActivityTestRule<WebViewActivity>(WebViewActivity.class);
+ new AutofillActivityTestRule<WebViewActivity>(WebViewActivity.class) {
+ // TODO(b/111838239): latest WebView implementation calls AutofillManager.isEnabled() to
+ // disable autofill for optimization when it returns false, and unfortunately the value
+ // returned by that method does not change when the service is enabled / disabled, so we
+ // need to start enable the service before launching the activity.
+ // Once that's fixed, remove this overridden method.
+ @Override
+ protected void beforeActivityLaunched() {
+ super.beforeActivityLaunched();
+ Log.i(TAG, "Setting service before launching the activity");
+ enableService();
+ }
+ };
private WebViewActivity mActivity;