summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGuang Zhu <guangzhu@google.com>2011-07-11 17:55:48 -0700
committerGuang Zhu <guangzhu@google.com>2011-07-11 17:55:48 -0700
commitcbba1f3ecd54bda183f877a4b873ac9732d77f52 (patch)
treeb91ff0bc1fe02b323cd9f979b65adc2ac0383318 /tests
parent9bcdcf6d0310b65d6582c72d183edb3e2632f3eb (diff)
downloadpackages_apps_Browser-cbba1f3ecd54bda183f877a4b873ac9732d77f52.tar.gz
packages_apps_Browser-cbba1f3ecd54bda183f877a4b873ac9732d77f52.tar.bz2
packages_apps_Browser-cbba1f3ecd54bda183f877a4b873ac9732d77f52.zip
Fix the calls to WebView from non-UI thread in test app
WebView is complaining that some calls used in test app is not from UI thread. Change-Id: I7ef61694e3988a663eeedf03463580a93e57fe46
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/browser/PopularUrlsTest.java44
1 files changed, 42 insertions, 2 deletions
diff --git a/tests/src/com/android/browser/PopularUrlsTest.java b/tests/src/com/android/browser/PopularUrlsTest.java
index f1ab71ba3..85dc4a3e7 100644
--- a/tests/src/com/android/browser/PopularUrlsTest.java
+++ b/tests/src/com/android/browser/PopularUrlsTest.java
@@ -458,7 +458,7 @@ public class PopularUrlsTest extends ActivityInstrumentationTestCase2<BrowserAct
while (mStatus.getIteration() < loopCount) {
if (clearCache) {
- webView.clearCache(true);
+ clearCacheUiThread(webView, true);
}
while(iterator.hasNext()) {
page = iterator.next();
@@ -480,7 +480,7 @@ public class PopularUrlsTest extends ActivityInstrumentationTestCase2<BrowserAct
waitForLoad();
long stopTime = System.currentTimeMillis();
- String url = webView.getUrl();
+ String url = getUrlUiThread(webView);
Log.i(TAG, "finish: " + url);
if (writer != null) {
@@ -534,4 +534,44 @@ public class PopularUrlsTest extends ActivityInstrumentationTestCase2<BrowserAct
}
}
}
+
+ 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");
+ }
+ }
}