OSDN Git Service

DO NOT MERGE:backport test imrpovements from newer platform
authorGuang Zhu <guangzhu@google.com>
Thu, 27 Jan 2011 23:45:05 +0000 (15:45 -0800)
committerGuang Zhu <guangzhu@google.com>
Thu, 27 Jan 2011 23:45:05 +0000 (15:45 -0800)
This change contains the following changes:
I41758a87 some improvements for browser test harness
I7785f66c prevent browser test from launching non-http urls
Id2f49549 throw RuntimeException if failed to stop a timedout site

Change-Id: Ic44f747c5da4328be8fa15b882ce72f56204b142

tests/src/com/android/browser/PopularUrlsTest.java

index 98a0e9f..590542a 100644 (file)
@@ -23,6 +23,7 @@ import android.net.http.SslError;
 import android.os.Environment;
 import android.test.ActivityInstrumentationTestCase2;
 import android.util.Log;
+import android.webkit.DownloadListener;
 import android.webkit.HttpAuthHandler;
 import android.webkit.JsPromptResult;
 import android.webkit.JsResult;
@@ -180,6 +181,16 @@ public class PopularUrlsTest extends ActivityInstrumentationTestCase2<BrowserAct
 
                 return true;
             }
+
+            /*
+             * Skip the unload confirmation
+             */
+            @Override
+            public boolean onJsBeforeUnload(
+                    WebView view, String url, String message, JsResult result) {
+                result.confirm();
+                return true;
+            }
         });
 
         webView.setWebViewClient(new TestWebViewClient(webView.getWebViewClient()) {
@@ -228,6 +239,23 @@ public class PopularUrlsTest extends ActivityInstrumentationTestCase2<BrowserAct
                 }
             }
 
+            @Override
+            public boolean shouldOverrideUrlLoading(WebView view, String url) {
+                if (!(url.startsWith("http://") || url.startsWith("https://"))) {
+                    Log.v(TAG, String.format("suppressing non-http url scheme: %s", url));
+                    return true;
+                }
+                return super.shouldOverrideUrlLoading(view, url);
+            }
+        });
+
+        webView.setDownloadListener(new DownloadListener() {
+
+            @Override
+            public void onDownloadStart(String url, String userAgent, String contentDisposition,
+                    String mimetype, long contentLength) {
+                Log.v(TAG, String.format("Download request ignored: %s", url));
+            }
         });
     }
 
@@ -258,7 +286,7 @@ public class PopularUrlsTest extends ActivityInstrumentationTestCase2<BrowserAct
             // try to wait for count down latch again
             timedout = !mLatch.await(5000, TimeUnit.MILLISECONDS);
             if (timedout) {
-                Log.e(TAG, "failed to stop the timedout site in 5s");
+                throw new RuntimeException("failed to stop timedout site, is browser pegged?");
             }
         }
     }