Merge "Clear recents folder when changing account"
diff --git a/tests/src/com/android/browser/PopularUrlsTest.java b/tests/src/com/android/browser/PopularUrlsTest.java
index f1ab71b..cbe8324 100644
--- a/tests/src/com/android/browser/PopularUrlsTest.java
+++ b/tests/src/com/android/browser/PopularUrlsTest.java
@@ -21,6 +21,7 @@
import android.net.Uri;
import android.net.http.SslError;
import android.os.Environment;
+import android.provider.Browser;
import android.test.ActivityInstrumentationTestCase2;
import android.text.TextUtils;
import android.util.Log;
@@ -458,7 +459,7 @@
while (mStatus.getIteration() < loopCount) {
if (clearCache) {
- webView.clearCache(true);
+ clearCacheUiThread(webView, true);
}
while(iterator.hasNext()) {
page = iterator.next();
@@ -467,6 +468,8 @@
Log.i(TAG, "start: " + page);
Uri uri = Uri.parse(page);
final Intent intent = new Intent(Intent.ACTION_VIEW, uri);
+ intent.putExtra(Browser.EXTRA_APPLICATION_ID,
+ getInstrumentation().getTargetContext().getPackageName());
long startTime = System.currentTimeMillis();
resetForNewPage();
@@ -480,7 +483,7 @@
waitForLoad();
long stopTime = System.currentTimeMillis();
- String url = webView.getUrl();
+ String url = getUrlUiThread(webView);
Log.i(TAG, "finish: " + url);
if (writer != null) {
@@ -534,4 +537,44 @@
}
}
}
+
+ private void clearCacheUiThread(final WebView webView, final boolean includeDiskFiles) {
+ Runnable runner = new Runnable() {
+
+ @Override
+ public void run() {
+ webView.clearCache(includeDiskFiles);
+ }
+ };
+ getInstrumentation().runOnMainSync(runner);
+ }
+
+ private String getUrlUiThread(final WebView webView) {
+ WebViewUrlGetter urlGetter = new WebViewUrlGetter(webView);
+ getInstrumentation().runOnMainSync(urlGetter);
+ return urlGetter.getUrl();
+ }
+
+ private class WebViewUrlGetter implements Runnable {
+
+ private WebView mWebView;
+ private String mUrl;
+
+ public WebViewUrlGetter(WebView webView) {
+ mWebView = webView;
+ }
+
+ @Override
+ public void run() {
+ mUrl = null;
+ mUrl = mWebView.getUrl();
+ }
+
+ public String getUrl() {
+ if (mUrl != null) {
+ return mUrl;
+ } else
+ throw new IllegalStateException("url has not been fetched yet");
+ }
+ }
}